Привет, новая неделя – новый бэктест факторной стратегии. На этот раз не только на Мосбирже и не только в акциях. Первоначально тут планировался большой текст про взаимодействие Моментума, торгового оборота и волатильности на неликвидных рынках и последующий Шарп сильно за 2.
Но в последний момент решили выпускать стратегии по нарастанию их сложности. Сегодня речь не об «иксах», но об очень устойчивой штуке – получению доходности выше рыночной за длинный промежуток по разным классам активов без принятия рисков отдельных компаний или стран.
Традиционный график с результатом перед стеной текста:
Источник: Sentimetrica
Синяя линия – модификация Моментума на глобальных рынках, зеленая – индекс глобальных акций MSCI World, красная – равновзвешенный портфель из акций, казначейских векселей США и сырьевой корзины.
Из всех стратегий американских биржевых гуру – самыми полюбившимися для меня стали идеи получения ВСЕЙ рыночной доходности Джона Богла и CANSLIM Уильяма Онил. У фраз «Индекс в долгосроке всегда растет» и «Лучшие компании остаются лучшими» много общего, верно? Попробуем оформить объединенную стратегию на основе классиков.
Доброго времени суток!
Пишу этот пост с целью поделиться своей стратегией и live трансляцией сделок. Начну с небольшого предисловия: с 2015 года мы занимались (и занимаемся) разработкой крупных и сложнотехнических онлайн проектов, параллельно приобщаясь к криптовалюте и в дальнейшем к трейдингу. Нарабатывая опыт и совмещая программирование с торговлей на биржах, мы тестировали кучу разных стратегий и арбитражей. В итоге, всё оказалось гораздо проще, чем мы могли представить. Как писал Насим Таллеб: "… миром правят самые простые технологии, которые логичнее назвать инструментами...", и это действительно так, на мой взгляд.
Сейчас я попытаюсь описать концепцию алгоритма, который нам удалось автоматизировать и доработать. За основу мы взяли консервативную стратегию сетки ордеров, которая берет своё начало со времен Форекса и добавили в нее бесконечное множество открываемых ордеров после исполнениях основных (стартовых). Новые ордера служат некими «противовесами» для старых и создают основную прибыль в любом направлении рынка. Ниже я опишу, что для нас является прибылью и на что влияет то или иное направление рынка.
Начинающие (да и не только) инвесторы часто задаются вопросом о том, как отобрать для себя идеальное соотношение активов входящих в портфель. Часто (или не очень, но знаю про двух точно) у некоторых брокеров эту функцию выполняет торговый робот. Но заложенные в них алгоритмы не раскрываются.
В этом посте будет рассмотрено то, как оптимизировать портфель при помощи Python и симуляции Монте Карло. Под оптимизацией портфеля понимается такое соотношение весов, которое будет удовлетворять одному из условий:
Для расчета возьмем девять акций, которые рекомендовал торговый робот одного из брокеров на начало января 2020 года и так же он устанавливал по ним оптимальные веса в портфеле: 'ATVI','BA','CNP','CMA', 'STZ','GPN','MPC','NEM' и 'PKI'. Для анализа будет взяты данные по акциям за последние три года.
#Загружаем библиотеки import pandas as pd import yfinance as yf import numpy as np import matplotlib.pyplot as plt # Получаем данные по акциям ticker = ['ATVI','BA','CNP','CMA', 'STZ','GPN','MPC','NEM', 'PKI'] stock = yf.download(ticker,'2017-01-01', '2019-01-31')
Вспомнился мне тут алгоритм, который я торговал на крипте в 2017 году.
2017 год, время когда BTC и вся остальная крипта летела to the moon. Алгоритмически было практически нереально обогнать B&H, но все прекрасно понимали, что когда-нибудь пузырь сдуется. У меня не было никакого желания строить алго в такое время, для бектестов просто не было данных, отражающих разные стадии рынка. Но все же за криптой я следил, хоть и немного со стороны — подписался на разные каналы в телеге и время от времени почитывал. Как это принято в телеге, один канал пиарит другой и так мне на глаза попались Pump каналы. Ребята разгоняли тонкие шиткоины на Bittrex, YoBit и еще нескольких биржах на 150-400% в течение нескольких минут. Казалось бы — деньги на ладоне, включай телеграм бота и входи на момент публикации сообщения с тикером. Но все было не так радостно — спреды гигантские и войти по хорошим ценам просто нереально. Легко сообразить что, собственники каналов закупались намного раньше и на спайке сливали все свои монеты. Для толпы были красивые графики и цифры роста, но заработать было, конечно, очень трудно. Само же существование таких каналов давало неплохой эйдж -пампы анонсировались заранее, обычно за несколько дней, было точно известно время пампа и биржа. Дальше уже дело было за техникой — я собрал котировки всех шиткоинов за последние полгода, нашел промежутки, когда монеты пампили и разбил все это на время дня. Наибольшее количество пампов приходилось на 13-00 по мск, что в общем-то неплохо коррелировало с тем, что я видел в каналах. Сама идея стратегии очень проста — покупаем монеты, которые потенциально могут быть разогнаны в наиболее вероятное время (а по началу это всегда была либо середина, либо начало часа), выходим по тейку (вроде 120%) или после окончания памп периода. Первичный тест на широком портфеле (порядка 150 тикеров, если память не изменяет) был достаточно неплох, но большая комиссия + тонкий рынок съедали очень много прибыли от выстреливших монет (иногда их было несколько за один день). Логичным решением было сузить круг торгуемых тикеров, что я и сделал. Сначала убрал тикеры, с большой ликвидностью (их тяжело разгонять и далеко они не улетают), затем убрал тикеры с совсем маленькой ликвидностью (улетают хорошо, но тяжело выходить, если не полетели), затем убрал тикеры, пампы по которым были не так давно, ну и наконец отфильтровал тикеры по диапазону цены (чем дешевле, тем лучше летали). Таким образом в каждый день выходило всего около 20 тикеров, из которых стрелял 1-2. Суммарный результат получался, конечно, не таким впечатляющим как 100% на сделку, но в целом выглядел неплохо. За пару дней я написал коннектор к бирже (Bittrex) + простенький движок конкретно для этой стратегии. Это был октябрь или ноябрь 2017. В итоге я проторговал эту стратегию где-то до февраля, а сломалась она где-то в январе. В переводе, на биток доходность за этот период была порядка 400%, в долларах — намного больше за счет роста самого битка. Увы, емкость стратегии была очень мала.