Простой бот для IB

В этот раз напишем на Python простого бота для торговли через платформу Interactive Brokers TWS. Торговать будем внутри дня на американском фондовом рынке акциями и ETF. Наш код сможет работать в среде Jupyter Notebook вместе с пакетом IB.API. Для примера, реализуем стратегию на основе пересечений SMA (простых скользящих средних).

Стратегия очень проста. Используем комбинацию скользящих средних (SMA) разных периодов. Например, 26-периодной (длинная) и 9-периодной (короткая). Когда короткая средняя выше длинной, это показатель восходящего тренда. Если короткая средняя пересекает длинную сверху вниз, считаем это сигналом на продажу и наоборот, если короткая пересекает длинную снизу вверх, сигнал на покупку. На основании пересечений алгоритм будет давать сигнал терминалу TWS от Interactive Brokers на покупку или продажу актива.

Читать далее «Простой бот для IB»

Python в помощь тестированию структурных продуктов

Тестирование структурных продуктов

Воодушевлённый статьёй с рекламой структурных продуктов на Хабре 🤔, адаптировал 🐍python-скрипт для их самостоятельного тестирования. Основная идея в том, что подобные продукты предлагают 100% защиту капитала💰.  А учитывая 10 лет бычьего рынка, исторические показатели подобных продуктов одурманивают безрисковым раем.

Скрипт подойдёт для быстрого и понятного тестирования своих портфелей с ребалансировкой в разные периоды. Ну а кому-то данный инструмент может пригодиться для самостоятельного построения подобных стратегий. Их наипростейшей формы. Однако брокеры пишут, что это не каждому под силу💪.

Код выложен в GitHub в виде 🐍Jupyter-блокнота. Поехали!

Читать далее «Python в помощь тестированию структурных продуктов»

Простая моментум-стратегия с хэджированием

Данную стратегию порекомендовали читатели телеграм-канала📣 @Mindspace_ru, откликнувшиеся на вопрос Оксаны Гафаити. Алгоритм щедро сдобрен🍩 комментариями и позволяет лучше познакомиться с Quantopian. От себя добавил примитивную логику хэджирования на росте волатильности, подсказанную удивительным человеком, за что Никите отдельная благодарность.

Всё как всегда на Python🐍. Поехали!

Читать далее «Простая моментум-стратегия с хэджированием»

Маркет-нейтральная стратегия на производных VIX

В этой статье рассмотрим простейшую маркет-нейтральную 📈стратегию из производных инструментов на индекса страха😱 для S&P 500 (VIX). В основу положим контанго фьючерсов на VIX. Будем опережать SPY.

Использовать будем ETF на фьючерсы разных сроков. Всё это мы приготовим в Quantopian🐍. Поехали!

Читать далее «Маркет-нейтральная стратегия на производных VIX»

Простая стратегия с фундаменталом для Quantopian

Данный алгоритм появился из стороннего примера, найденного на Quantopian. Я его оптимизировал и сопроводил обильными комментариями на русском. Это не лучшее использование воронок (Pipeline). Но зато использует произвольные факторы (CustomFactor).

Всё это появилось по просьбе автора MindSpace.ru, Оксаны Гафаити. Поехали!

Читать далее «Простая стратегия с фундаменталом для Quantopian»

Защитит ли портфель от просадок крипты?

Криптовалюта 08.2017-2018: график

Ни для кого не секрет, что рынок криптовалют обладает феноменальной волатильностью, по причине своей молодости и отсутствию регулирования. На регулируемых рынках в борьбе с волатильностью помогает портфель, представляющий собой набор активов с периодической ребалансировкой.

Поможет ли портфель на рынке криптовалют? И позволит ли он сохранить и приумножить биткойн (BTC)? Мы в команде решили это проверить. Одним из условий создания портфеля была простота его поддержания. Подбор и поиск активов мы проводили с помощью Jupyter на Python. Разбору кода мы посвятим следующую статью. А в этот раз рассмотрим, какие портфели нам удалось получить.

Читать далее «Защитит ли портфель от просадок крипты?»

Как Python помогает заменить финконсультантов

В продолжение статьи о вреде избыточной диверсификации создадим полезный инструментарий🛠️ по подбору акций. После этого сделаем простую ребалансировку⚖️ и добавим уникальные условия технических индикаторов📈, которых так часто не хватает в популярных сервисах. А затем сравним доходность отдельных активов и различных портфелей💼.

Во всем этом задействуем Pandas и минимизируем количество циклов. Погруппируем времянные ряды и порисуем графиков. Познакомимся с мультииндексами и их поведением. И всё это в Jupyter на Python 3.6🐍.

Читать далее «Как Python помогает заменить финконсультантов»

Завещание Баффета или о чём молчат финконсультанты

У. Баффет завещал жене после своей смерти🕯️ вложить все средства  в биржевой фонд ETF на S&P 500 VOO и жить в своё удовольствие🏖️. Однако книги, интернет и финконсультанты призывают нас составлять диверсифицированные портфели💼 с обязательным включением в них облигаций. К слову, о диверсификации Баффет тоже отзывается не лестно и призывает все яйца🥚 хранить в одной корзине, просто внимательно за ней присматривать👀.

В данной статье мы попробуем разобраться, стоит ли верить оракулу из Омахи или прислушаться к финансовым консультантам👔. А поможет нам в этом Python🐍 и Quantopian.

Читать далее «Завещание Баффета или о чём молчат финконсультанты»

Индикатор KST и другие приключения с ROC

В этот раз повторим на Python🐍 индикатор KST (Know Sure Thing), созданный Мартином Прингом. Если вы подписаны на StockCharts.com, то вы получаете платную рассылку обзоров рынка от Джона Мэрфи и Мартина Принга. Принг в своих анализах постоянно ссылается на свой индикатор KST. И у него всегда всё складно и точно совпадает.

Я же в бессонных😴 поисках граалей🏆 решил повторить индикатор KST и провести коротенький анализ за предыдущие 14 лет.

Читать далее «Индикатор KST и другие приключения с ROC»

Простой бэктестинг Rate-of-Change (ROC) на Python

Данная статья продолжает цикл анализа простых стратегий со стандартными индикаторами. Тестируем стратегии в Quantopian, а пишем на Python🐍. В этот раз мы сравним индикатор Rate-of-Change (ROC) и популярное пересечение скользящих средних SMA(50) и SMA(200).

Дополнительно рассмотрим подход быстрого получения доходности📈 и просадки📉 простых стратегий в блокноте Jupyter.

Читать далее «Простой бэктестинг Rate-of-Change (ROC) на Python»