Вспомнился мне тут алгоритм, который я торговал на крипте в 2017 году.
2017 год, время когда BTC и вся остальная крипта летела to the moon. Алгоритмически было практически нереально обогнать B&H, но все прекрасно понимали, что когда-нибудь пузырь сдуется. У меня не было никакого желания строить алго в такое время, для бектестов просто не было данных, отражающих разные стадии рынка. Но все же за криптой я следил, хоть и немного со стороны — подписался на разные каналы в телеге и время от времени почитывал. Как это принято в телеге, один канал пиарит другой и так мне на глаза попались Pump каналы. Ребята разгоняли тонкие шиткоины на Bittrex, YoBit и еще нескольких биржах на 150-400% в течение нескольких минут. Казалось бы — деньги на ладоне, включай телеграм бота и входи на момент публикации сообщения с тикером. Но все было не так радостно — спреды гигантские и войти по хорошим ценам просто нереально. Легко сообразить что, собственники каналов закупались намного раньше и на спайке сливали все свои монеты. Для толпы были красивые графики и цифры роста, но заработать было, конечно, очень трудно. Само же существование таких каналов давало неплохой эйдж -пампы анонсировались заранее, обычно за несколько дней, было точно известно время пампа и биржа. Дальше уже дело было за техникой — я собрал котировки всех шиткоинов за последние полгода, нашел промежутки, когда монеты пампили и разбил все это на время дня. Наибольшее количество пампов приходилось на 13-00 по мск, что в общем-то неплохо коррелировало с тем, что я видел в каналах. Сама идея стратегии очень проста — покупаем монеты, которые потенциально могут быть разогнаны в наиболее вероятное время (а по началу это всегда была либо середина, либо начало часа), выходим по тейку (вроде 120%) или после окончания памп периода. Первичный тест на широком портфеле (порядка 150 тикеров, если память не изменяет) был достаточно неплох, но большая комиссия + тонкий рынок съедали очень много прибыли от выстреливших монет (иногда их было несколько за один день). Логичным решением было сузить круг торгуемых тикеров, что я и сделал. Сначала убрал тикеры, с большой ликвидностью (их тяжело разгонять и далеко они не улетают), затем убрал тикеры с совсем маленькой ликвидностью (улетают хорошо, но тяжело выходить, если не полетели), затем убрал тикеры, пампы по которым были не так давно, ну и наконец отфильтровал тикеры по диапазону цены (чем дешевле, тем лучше летали). Таким образом в каждый день выходило всего около 20 тикеров, из которых стрелял 1-2. Суммарный результат получался, конечно, не таким впечатляющим как 100% на сделку, но в целом выглядел неплохо. За пару дней я написал коннектор к бирже (Bittrex) + простенький движок конкретно для этой стратегии. Это был октябрь или ноябрь 2017. В итоге я проторговал эту стратегию где-то до февраля, а сломалась она где-то в январе. В переводе, на биток доходность за этот период была порядка 400%, в долларах — намного больше за счет роста самого битка. Увы, емкость стратегии была очень мала.
Собственно все в заголовке поста:)
Архив (17Gb) можно скачать с kaggle https://www.kaggle.com/jorijnsmit/binance-full-history
Имхо, неплохой подгон. Можно, конечно, самому выкачать, но это очень трудозатрано по времени.
ну и секунда самопиара — моя телега, пишу редко. Больше по алготрейдингу, коду, ссылочки полезные, ну и так мысли иногда разные. Ничего не продаю, не обучаю, просто для души.
Спросили меня тут как правильно тестить NYSE… всех деталей не скажу, но могу дать пару советов, которые сэкономят вам время и деньги.
1. Не доверяйте High и Low свечей. На америке есть ADF и некоторые трейды могут влиять на High и Low дня (и любой свечи соотвественно). Чем ниже цена бумаги и чем ниже ликвидность — тем меньше у вас должно быть доверия к свечкам. Чаще всего это выглядит как большая тень — да, по этой цене были сделки и кто-то там поторговал, но с большой вероятностью это order internalization внутри какого-нибудь брокера. Особенно часто они в первые минуты торгов High и Low не дают никакой гарантии исполнения. На жирных бумагах такого в разы меньше, но иногда встречается. Отдельным пунктом идут внебиржевые сделки, которые всегда рисуют большие тени. Поставщики данных страются их фильтровать, но не всегда выходит. В идеале нужно собирать все свечи самому с отфильтрованных тиков, но очень трудозатратно для америки. Второй вариант — не учитывать H/L для свечей с очень большими теням + смотреть на рейндж соседних свечей. Подготовка данных для тестов целое искусство, серьезно.
По просьбам трудящихся упаковал минутки компонентов sp500. Файл будет доступен несколько дней, потом я его удалю. Размер архива около 5Гб
Несколько моментов:
1) Нет истории за несколько последних месяцев. Увы, нет времени дампить с сервака постоянно.
3) Квоты от ActiveTick, качество средненькое. Так что перед бектестом данные надо причесать.
4) Список акций брал из википедии на текущий момент. В истории вы не найдете тикеров, которые были исключены из индекса в последние несколько лет.
Тык
Телега, куда выкладываю полезные (и не только) штуки по алго, когда не лень:)
Перевел тут (в автоматическом режиме) питонячий китайский фреймворк для алготрейдинга.
Что он может:
1) Тестить и пускать в лайв страты (а-ля plug and play)
2) Есть коннекторы к крипте, каким-то китайским брокерам, IB, Alpaca
3) UI на pyQT5
4) Качать/хранить котировки
в общем все что надо для базового (и не только) алготрейдинга. все это бесплатно и под MIT лицензией
Перевод пока так себе, но лучше чем китайский оригинал. Теперь хоть что-то можно понять в интерфейсе. Запустил пару предустановленных страт, загрузил данные, написал простенькую стратегию — все работает, багов не нашел пока. Постепенно улучшаю перевод в ручном режиме.
vnpy — лучшее из python open source для трейдинга что я видел. Понятная и логичная структура, ожидаемая архитектура, хорошо написанный UI. Часть логики коннекторов написана на C++ (поэтому гитхаб и говорит что оно С++, но это не так)