Торговый алгоритм на Python для API TWS от Interactive Brokers: начало

Данной статьей мы открываем серию материалов по использованию API от брокера Interactive Brokers и написанию простых торговых алгоритмов.

Цель — описать все процессы: от установки и настройки необходимого программного окружения до создания базовых алгоритмов, которые выполняют полезный функционал в связке с IB Trader Workstation.

В отличии от тысяч других мануалов данная серия статей проведет вас от самого начала, показав, как ставить все программное окружение на машину, до логического завершения — готового алгоритма, который даст понимание, как и что надо написать на 🐍Python 3+, чтобы получить желаемое от терминала.

Читать далее «Торговый алгоритм на Python для API TWS от Interactive Brokers: начало»

ClickHouse и Python для хранения истории цен

Продолжая поиски быстрой базы данных для хранения цен я попробовал применить для своих нужд ClickHouse от Яндекса. Это open-source колоночная база данных для хранения и обработки временных рядов в реальном времени.

У ClickHouse огромный список ограничений, к которым мы не привыкли работая с реляционными базами данных. Но кто нас остановит?

Так же попробуем подружить ClickHouse с Python🐍.

Читать далее «ClickHouse и Python для хранения истории цен»

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🐍.

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