Разбил много ☕кружек в поисках решения для ️быстрого получения длинных историй цен для большого количества активов в Python. Ещё имел смелость желать работать с ценами в numpy-массивах, а лучше сразу в pandas.
Стандартные подходы в лоб работали разочаровывающе, что приводило к выполнению запроса к БД в течение 30 секунд и более. Не желая мириться, я нашёл несколько решений, которые полностью меня удовлетворили.
Наткнулся на статью о лучезарных возможностях арбитража ETH/USD между криптобиржами Exmo и Kraken от аналитика банка New York Mellon. Исключив комиссии за 5 месяцев он получил доходность в 39%.
Но если на поверхности такие лучезарные возможности, то где же все?
В этот раз будем тестировать стратегию разворотов по сигналам 3-х-дневного индикатора RSI. Начнем с проведения анализа пересечения границ перепроданности/перекупленности методом, описанным в предыдущей статье.
Анализ и тесты будем проводить на Python, используем библиотеку Zipline и Quantopian.
При бэктестингах индикатора RSI заметил разное поведение на разных активах. На некоторых активах сигналы перекупленности и перепроданности по RSI за короткий период (2-5 дней) работают одинаково хорошо в обе стороны, а иногда преобладает только один сигнал. На крупных индексах за последние 10 лет лучше работает сигнал перепроданности⤴.
При поиске ответа на «Почему?» удалось найти решение для определения оптимального периода RSI и лучших порогов. Итак, проанализируем это вместе на Python.
В этой статье мы рассмотрим, как правильно работать с историей цен в связке PostgreSQL и Python. Разберём, как хранить цены и ускорить их получение в Python.
Дополнительно приложен блокнот на IPython с исходным кодом и измерениями.
При переходе на Python я был вдохновлен удобством языка и огромным количеством готовых пакетов. Писать было легко и удобно, а работало все быстро. Но всё омрачало катастрофически медленное получение большого массива цен из базы данных (БД) в Python.
В статье показаны примеры для PostgreSQL, но материал будет полезен для любой БД, включая MySQL, при работе в связке с Python.
Мы будем работать с пакетами psycopg2 и numpy.
Этой статьей мы продолжим улучшать результы автоматического поиска пар для торговли. Дополнительным фильтром будем использовать измерения, доступные после построения регрессии методом statsmodels.api.OLS(). Этот же фильтр будем применять к парам во время торговли.
Найденные пары проверим в Quantopian, а исходный код напишем на Python.
При торговле по стратегии «Парного трейдинга» часто встречаются пары, где цены каждого актива сильно отличаются друг от друга. Для получения лучшей доходности и сокращения риска необходимо правильно определить размер сделки по каждому активу.
Сегодня мы рассмотрим расчет дельты позиций используя метод наименьших квадратов (МНК).
Тестировать будем в Quantopian, а код пишем на Python.
В прошлый раз мы проверили трендовую природу индикатора RSI. Нами были получены интересные результаты, особенно при торговле основными секторами. В этот раз мы продолжим двигаться в направлении изменения индикатора RSI, но будем использовать сигнал разворота тенденции.
Рассмотрим пересечение индикаторов RSI разных периодов. Алгоритмы пишем в Quantopian на Python.
В этот раз:
В прошлый раз мы рассмотрели алгоритм торговли разворотов по сигналам RSI. В этой статье посмотрим, можно ли следовать в направлении движения RSI. Ведь индикатор показывает именно направление изменения цены. Алгоритмы пишем в Quantopian на Python.
В этот раз:
В этот раз мы протестируем стратегию торговли уровней перекупленности и перепроданности. Разворачивать нас будет индикатор RSI (Индекс относительной силы). Тестировать будем в Quantopian, а код писать на Python.
На повестке дня: