В этот раз будем тестировать стратегию разворотов по сигналам 3-х-дневного индикатора RSI. Начнем с проведения анализа пересечения границ перепроданности/перекупленности методом, описанным в предыдущей статье.
Анализ и тесты будем проводить на Python, используем библиотеку Zipline и Quantopian.
pw = pg.plot()
timer = pg.QtCore.QTimer()
def update():
pw.plot(x, y, clear=True)
timer.timeout.connect(update)
timer.start(100)conda update conda
conda update anaconda— добавляем рисовалку
conda install pyqtgraph— делаем первый чарт
import pyqtgraph as pg
from pyqtgraph.Qt import QtGui, QtCore
# объявляем тип проги
app = QtGui.QApplication([])
# объявляем базовое окно
win = pg.GraphicsWindow()
# ... и даем ему заголовок
win.setWindowTitle('Мой Окно!')
# открываем первую панель для рисования
pane = win.addPlot()
# от балды значения по 'x' и 'y'
x = [1,2,3,4,5,6,7,8,9]
y = [1,4,9,16,25,36,49,64,81]
# нарисуем в панельке
pane.plot(x,y,pen=('r'), symbol='o')
# ...три...два...один...пуск .... п.ш..ш..ш :)
app.exec_()![#пора_граммировать [8] ... веселые картинки [0] #пора_граммировать [8] ... веселые картинки [0]](/uploads/images/00/83/40/2017/11/11/4375ce.png)
При бэктестингах индикатора RSI заметил разное поведение на разных активах. На некоторых активах сигналы перекупленности и перепроданности по RSI за короткий период (2-5 дней) работают одинаково хорошо в обе стороны, а иногда преобладает только один сигнал. На крупных индексах за последние 10 лет лучше работает сигнал перепроданности⤴.
При поиске ответа на «Почему?» удалось найти решение для определения оптимального периода RSI и лучших порогов. Итак, проанализируем это вместе на Python.
В этой статье мы рассмотрим, как правильно работать с историей цен в связке PostgreSQL и Python. Разберём, как хранить цены и ускорить их получение в Python.
Дополнительно приложен блокнот на IPython с исходным кодом и измерениями.
При переходе на Python я был вдохновлен удобством языка и огромным количеством готовых пакетов. Писать было легко и удобно, а работало все быстро. Но всё омрачало катастрофически медленное получение большого массива цен из базы данных (БД) в Python.
В статье показаны примеры для PostgreSQL, но материал будет полезен для любой БД, включая MySQL, при работе в связке с Python.
Мы будем работать с пакетами psycopg2 и numpy.
Этой статьей мы продолжим улучшать результы автоматического поиска пар для торговли. Дополнительным фильтром будем использовать измерения, доступные после построения регрессии методом statsmodels.api.OLS(). Этот же фильтр будем применять к парам во время торговли.
Найденные пары проверим в Quantopian, а исходный код напишем на Python.