Блог им. diamante |Как я торговал крипту

Вспомнился мне тут алгоритм, который я торговал на крипте в 2017 году.

2017 год, время когда BTC и вся остальная крипта летела to the moon. Алгоритмически было практически нереально обогнать B&H, но все прекрасно понимали, что когда-нибудь пузырь сдуется. У меня не было никакого желания строить алго в такое время, для бектестов просто не было данных, отражающих разные стадии рынка. Но все же за криптой я следил, хоть и немного со стороны — подписался на разные каналы в телеге и время от времени почитывал. Как это принято в телеге, один канал пиарит другой и так мне на глаза попались Pump каналы. Ребята разгоняли тонкие шиткоины на Bittrex, YoBit и еще нескольких биржах на 150-400% в течение нескольких минут. Казалось бы — деньги на ладоне, включай телеграм бота и входи на момент публикации сообщения с тикером. Но все было не так радостно — спреды гигантские и войти по хорошим ценам просто нереально. Легко сообразить что, собственники каналов закупались намного раньше и на спайке сливали все свои монеты. Для толпы были красивые графики и цифры роста, но заработать было, конечно, очень трудно. Само же существование таких каналов давало неплохой эйдж -пампы анонсировались заранее, обычно за несколько дней, было точно известно время пампа и биржа. Дальше уже дело было за техникой — я собрал котировки всех шиткоинов за последние полгода, нашел промежутки, когда монеты пампили и разбил все это на время дня. Наибольшее количество пампов приходилось на 13-00 по мск, что в общем-то неплохо коррелировало с тем, что я видел в каналах. Сама идея стратегии очень проста — покупаем монеты, которые потенциально могут быть разогнаны в наиболее вероятное время (а по началу это всегда была либо середина, либо начало часа), выходим по тейку (вроде 120%) или после окончания памп периода. Первичный тест на широком портфеле (порядка 150 тикеров, если память не изменяет) был достаточно неплох, но большая комиссия + тонкий рынок съедали очень много прибыли от выстреливших монет (иногда их было несколько за один день). Логичным решением было сузить круг торгуемых тикеров, что я и сделал. Сначала убрал тикеры, с большой ликвидностью (их тяжело разгонять и далеко они не улетают), затем убрал тикеры с совсем маленькой ликвидностью (улетают хорошо, но тяжело выходить, если не полетели), затем убрал тикеры, пампы по которым были не так давно, ну и наконец отфильтровал тикеры по диапазону цены (чем дешевле, тем лучше летали). Таким образом в каждый день выходило всего около 20 тикеров, из которых стрелял 1-2. Суммарный результат получался, конечно, не таким впечатляющим как 100% на сделку, но в целом выглядел неплохо. За пару дней я написал коннектор к бирже (Bittrex) + простенький движок конкретно для этой стратегии. Это был октябрь или ноябрь 2017. В итоге я проторговал эту стратегию где-то до февраля, а сломалась она где-то в январе. В переводе, на биток доходность за этот период была порядка 400%, в долларах — намного больше за счет роста самого битка. Увы, емкость стратегии была очень мала.



( Читать дальше )

Блог им. diamante |Binance: архив котировок по всем BTC парам

Собственно все в заголовке поста:)

Архив (17Gb) можно скачать с kaggle https://www.kaggle.com/jorijnsmit/binance-full-history

Имхо, неплохой подгон. Можно, конечно, самому выкачать, но это очень трудозатрано по времени.

ну и секунда самопиара — моя телега, пишу редко. Больше по алготрейдингу, коду, ссылочки полезные, ну и так мысли иногда разные. Ничего не продаю, не обучаю, просто для души.


Блог им. diamante |Как не обмануть себя бектестом на NYSE

Спросили меня тут как правильно тестить NYSE… всех деталей не скажу, но могу дать пару советов, которые сэкономят вам время и деньги.

 

1. Не доверяйте High и Low свечей. На америке есть ADF и некоторые трейды могут влиять на High и Low дня (и любой свечи соотвественно). Чем ниже цена бумаги и чем ниже ликвидность — тем меньше у вас должно быть доверия к свечкам. Чаще всего это выглядит как большая тень — да, по этой цене были сделки и кто-то там поторговал, но с большой вероятностью это order internalization внутри какого-нибудь брокера. Особенно часто они в первые минуты торгов High и Low не дают никакой гарантии исполнения. На жирных бумагах такого в разы меньше, но иногда встречается. Отдельным пунктом идут внебиржевые сделки, которые всегда рисуют большие тени. Поставщики данных страются их фильтровать, но не всегда выходит. В идеале нужно собирать все свечи самому с отфильтрованных тиков, но очень трудозатратно для америки. Второй вариант — не учитывать H/L для свечей с очень большими теням + смотреть на рейндж соседних свечей. Подготовка данных для тестов целое искусство, серьезно.



( Читать дальше )

Блог им. diamante |Архив котировок компонентов sp500

По просьбам трудящихся упаковал минутки компонентов sp500. Файл будет доступен несколько дней, потом я его удалю. Размер архива около 5Гб

Несколько моментов:


1) Нет истории за несколько последних месяцев. Увы, нет времени дампить с сервака постоянно.
3) Квоты от ActiveTick, качество средненькое. Так что перед бектестом данные надо причесать.
4) Список акций брал из википедии на текущий момент. В истории вы не найдете тикеров, которые были исключены из индекса в последние несколько лет.

Тык

Телега, куда выкладываю полезные (и не только) штуки по алго, когда не лень:)


Блог им. diamante |Python фреймворк для алготрейдинга (VNPY)

Перевел тут (в автоматическом режиме) питонячий китайский фреймворк для алготрейдинга.

Python фреймворк для алготрейдинга (VNPY)

Что он может:

1) Тестить и пускать в лайв страты (а-ля plug and play)
2) Есть коннекторы к крипте, каким-то китайским брокерам, IB, Alpaca
3) UI на pyQT5
4) Качать/хранить котировки

в общем все что надо для базового (и не только) алготрейдинга. все это бесплатно и под MIT лицензией

Перевод пока так себе, но лучше чем китайский оригинал. Теперь хоть что-то можно понять в интерфейсе.  Запустил пару предустановленных страт, загрузил данные, написал простенькую стратегию — все работает, багов не нашел пока. Постепенно улучшаю перевод в ручном режиме.

vnpy — лучшее из python open source для трейдинга что я видел. Понятная и логичная структура, ожидаемая архитектура, хорошо написанный UI. Часть логики коннекторов написана на C++ (поэтому гитхаб и говорит что оно С++, но это не так)



( Читать дальше )

Блог им. diamante |Алготрейдинг на стероидах

Алготрейдинг на стероидах



Когда выкатил библиотечку по поиску уровней многие писали, что она на питоне и по сути бесполезна, ведь терминалы поддерживают в основном C# и Java. Что ж, я решил подкинуть идею, как все это заставить работать вместе. Запушил пример склейки питона с Multicharts.Net и TSLab. Работает все просто и красиво и легко можно посадить любой терминал и фреймворк на стероиды ML и стат моделей.  По аналогии можно приклеить любой терминал/язык с минимальным количеством кода. Суть проста: на питоне поднимаем http сервер и слушаем данные, с терминала данные пушим и читаем что насчитал питон. 

Про преимущества такой склейки в виде безболезненного переноса логики с одного терминала на другой, идемпотентность и 100% тестируемость я вообще промолчу :)

Юзайте короче

Телеграмчик где ничего не продаю, не рекламирую и пишу когда мне не лень.

Блог им. diamante |Python: поиск поддержки и сопротивления

Написал тут питонячью библиотечку небольшую для поиска поддержки/сопротивления.

Там пара алгоритмов для поиска уровней, один алгоритм для скоринга и возможность отрисовать уровни на чарте.

Общая концепция такая:
1. Ищем разворотные точки
2. Обучаем Agglomerative Clustering, собираем уровни из точек

Находит оно примерно следующее:
Python: поиск поддержки и сопротивления


Юзайте в общем. Работает на Python 3.6+

Когда не лень выкладываю что-то по трейдингу в телегу

Блог им. diamante |Архив котировок компонентов NASDAQ100

Выложил архив минуток NASDAQ100(в текущем составе) за несколько лет. Размер архива около 1Гб. Все сессии, включая пре и постмаркет.
Для тестов надо данные готовить, убирать хвосты с внебиржевыми сделками. Скачано все с ActiveTick.

Архив удалю из общего доступа через несколько дней. В телегу тоже выкидываю иногда котировки, аналогично с ограниченным сроком действия:)

Блог им. diamante |Обучение с подкреплением (код)

Интересный код, для тех, кто в теме.


Это подборка различных RL алгоритмов в реализации для трейдинга. Если пишете свой алго, возможно, тут есть что позаимствовать. Код, понятное дело, на Python.  Для тех, кто не знает, что такое reinforcement learning — погуглите, это действительно крутая штука. Имхо, это единственная технология machine learning, которая может дать что-то стоящее в трейдинге. Порог входа достаточно серьезный, но дорогу осилит идущий:)

Часть, которая завязана на принятии решении, сильно упрощена, но это реально неплохая стартовая точка.

Блог им. diamante |Бесплатное API для амеростоков

Какое-то время назад для децентрализации алго инфраструктуры поднял API  для получения информации об американских акциях.

Как оно работает? Собирает из открытых источников данные по дивидендам, сплитам, новостям, актуализирует список торгуемых акций и обновляет это все в базе. С прошлой недели еще тащит данные по HTB у IB.  Данные доступны через веб интрефейс и через REST API.

Писал для себя, доки нет и не будет. Но думаю кому надо, тот разберется. За стабильность работы тоже ответственности не несу, я основной потребитель и если что-то потребуется переписать, то возможно интерфейсы доступа к данным изменятся.

Ну а вообще пока работает пользуйтесь, но не злоупотребляйте. Есть рейтлимиты и при большом количестве запросов вы будете забанены.

....все тэги
UPDONW
Новый дизайн