C/C++ и Python = Boost.Python на Windows

Для многих не секрет, что Python🐍 не блещет скоростью обработки большого количества данных. При этом обладает преимуществом легкого подключения расширений на C/C++. Я писал о расширениях C в этой статье, а здесь рассмотрен альтернативный способ с помощью популярной С++ библиотеки Boost.

Рассказывает Роман Щеголихин. А расширение будет подключаться к Python 2.7🐍.

Читать далее «C/C++ и Python = Boost.Python на Windows»

Как быстро скачать котировки с IEX

Многие расстроились😭, когда Yahoo.Finance закрыл🚫 все лазейки для получения бесплатных котировок. Но к всеобщему счастью🎉, уже есть альтернативы бесплатных данных. В этот раз мы скачаем бесплатную дневную историю с биржи IEX для ~8 тысяч американских активов примерно за ~2 минуты⏱️. Поможет нам в этом Python 2.7🐍. А рассказывать будет Роман Щеголихин.

Пытливые умы на сайте биржи могут найти бесплатную историю тиков за предыдущие 10 месяцев в формате pcap (tcpdump).

☝️На бирже IEX совершается примерно ~2.5% оборота акций, что необходимо учесть. Тики не дадут построить идеальную историю изменения цены из-за недостатка данных по остальным биржам.

Читать далее «Как быстро скачать котировки с IEX»

Настройка Cassandra для хранения цен акций

Продолжая поиски баз данных, наиболее подходящих для хранения истории цен, получил комментарий от Романа Щеголихина. Роман был любезен и подготовил инструкцию по установке и настройке БД Cassandra и несколько примеров использования на Python 2.7🐍.

Cassandra👁️ — это NoSQL база данных, предназначенная для распределенного хранения огромных массивов данных. Отлично подходит для хранения времянных рядов.

Читать далее «Настройка Cassandra для хранения цен акций»

История цен с Quandl и IEX

Я сейчас выбираю базу данных для хранения ⏳временных рядов, к которым относится история цен📈. Для себя подготовил несколько классов для скачивания и хранения данных, чтобы упростить дальнейшие тестирования. Со мной Python🐍.

В этот раз мы рассмотрим:

  • Класс для скачивания бесплатной истории цен с Quandl единым архивом.
  • Класс-обертка для хранения данных в HDF5.
  • Класс скачивания цен с биржи IEX.

Читать далее «История цен с Quandl и IEX»

Алготрейдинг: о чём расскажет RSI?

При бэктестингах индикатора RSI заметил разное поведение на разных активах. На некоторых активах сигналы перекупленности и перепроданности по RSI за короткий период (2-5 дней) работают одинаково хорошо в обе🎏 стороны, а иногда преобладает только один🐟 сигнал. На крупных индексах за последние 10 лет лучше работает сигнал перепроданности⤴.

При поиске🔎 ответа на «Почему?» удалось найти решение для определения оптимального периода RSI и лучших порогов. Итак, проанализируем это вместе на Python🐍.

Читать далее «Алготрейдинг: о чём расскажет RSI?»

Работа с ценами в Python и PostgreSQL

В этой статье мы рассмотрим, как правильно работать с историей цен📈 в связке PostgreSQL🐘 и Python🐍. Разберём, как хранить цены и ускорить их получение в Python🐍.

Дополнительно приложен блокнот на IPython с исходным кодом и измерениями.

Читать далее «Работа с ценами в Python и PostgreSQL»

Парный трейдинг: фильтруем пары по смешанной корреляции

Этой статьей мы продолжим улучшать результы автоматического поиска пар🎏 для торговли. Дополнительным фильтром будем использовать 📐измерения, доступные после построения регрессии методом statsmodels.api.OLS(). Этот же фильтр будем применять к парам во время торговли📈.

Найденные пары проверим в Quantopian, а исходный код напишем на Python🐍.

Читать далее «Парный трейдинг: фильтруем пары по смешанной корреляции»

Парный трейдинг: использование МНК для расчета дельты позиций

При торговле по стратегии «Парного трейдинга» часто встречаются пары🎏, где цены каждого актива сильно отличаются друг от друга. Для получения лучшей доходности📈 и сокращения риска📉 необходимо правильно определить размер⚖ сделки по каждому активу.

Сегодня мы рассмотрим расчет дельты позиций используя метод наименьших квадратов (МНК).

Тестировать будем в Quantopian, а код пишем на Python🐍.

Читать далее «Парный трейдинг: использование МНК для расчета дельты позиций»

Бэктестинг: пересечение RSI разных периодов

В прошлый раз мы проверили трендовую📈 природу индикатора RSI. Нами были получены интересные результаты, особенно при торговле основными секторами. В этот раз мы продолжим двигаться👣 в направлении изменения индикатора RSI, но будем использовать сигнал🛎 разворота тенденции.

Рассмотрим пересечение индикаторов RSI разных периодов. Алгоритмы пишем в Quantopian на Python🐍.

В этот раз:

  • Попробуем быть на шаг впереди, используя 13-дневный и 65-дневный периоды RSI.
  • Попробуем использовать стандартные 14-дневный и 70-дневный периоды RSI.
  • Посмотрим на лучший период прошлого теста и используем 20-дневный и 100-дневный RSI.
  • Попробуем отфильтровать тренды с помощью скользящих средних.

Читать далее «Бэктестинг: пересечение RSI разных периодов»

Бэктестинг: парный трейдинг по сглаженным сигналам

Настало время оптимизации🛠 алгоритма «Парного трейдинга». Прошлые наблюдения давали много ложных👎 сигналов. Сократить их помогут скользящие средние. Мы построим z-оценку по спреду цен пары🎏, сглаженному скользящими средними. Бэктестинг будем проводить в Quantopian, а весь код напишем на Python🐍.

Рассмотрим разницу сигналов по z-оценке:

  • Спред цен.
  • Спред доходности.
  • Скользящие средние на спреде цен.
  • Скользящие средние на спреде доходности.

Читать далее «Бэктестинг: парный трейдинг по сглаженным сигналам»