Избранное трейдера Rox
Тестировать будем крипту на Bitmex, так как там можно без проблем достать тики с направлениями на халяву.
Собственно, идея очень простая:
— покупаем, если сумма объемов последних 5 сделок больше 500,000
— продаем, если сумма объемов последних 5 сделок меньше -500,000
Торгуем одним условным битком (тикер XBTUSD).
Использовать будем R и пакет QuantTools.
Пишем немножко кода:
Результаты:
Наконец дошли руки сделать работающий прототип на нейронных сетях — сразу же получился результат близкий к текущей используемой модели на основе градиентного бустинга. Учитывая, что в нейронные сети подавалась только часть информации по сравнению с той, которая используется для построения признаков для градиентного бустинга, и пара простых архитектур без всякой оптимизации, то есть все шансы в перспективе обойти градиентный бустинг. Из минусов — сетки обучаются в разы медленнее бустинга, но для моей инвестиционной стратегии это не принципиально.
Сходил недавно на семинар по эволюционному поиску нейросетевых архитектур — очень проникся темой. Пока останусь на градиентном бустинге, но буду двигаться в сторону сетей и эволюционного поиска их архитектур. В какой-то момент столкну бустинг и сети в эволюционном процессе, а там посмотрим, кто победит.
Хотелось, традиционно, подвести итоги 2019 года, но нового и интересного ничего не произошло, результаты на МОЕКС практически не отличаются от года 2018-го. Поэтому расскажу, насколько важно для HFT торговли написать правильный бэктест. Результаты тоже будут, но на примере отдельных алгоритмов, из набора работающих на Московской бирже.
Для высокочастотной торговли, наверное, самый главный показатель это мгновенная ликвидность. Не буду углубляться в проблему ее измерения, это отдельная задача. В общем случае, чем выше мгновенная ликвидность, тем большую прибыль приносит высокочастотная стратегия. И ваш тест должен правильно обрабатывать весь поток ликвидности, который присутствует в сохраненной маркетдате, чтобы верно эту мгновенную ликвидность отразить. В матчинге бэктеста необходимо сводить в сделки собственные (тестовые) ордера в первую очередь по потоку рыночных сделок используемого актива, и во вторую — по текущей книге заявок. Нарезки в тесте не должно быть никакой, то есть внутреннее время теста должно идти соответственно последней считанной записи в максимальном разрешении, которое транслируется биржей (миллисекунды или даже микросекунды).Также нужно учесть задержку прихода ордеров на биржу после их отправки и задержку коллбэка. Нюансов здесь много, и я как обычно, о них не расскажу:)
Большое спасибо Виталию Курбаковскому, что опубликовал свою обобщенную модель ценообразования опционов (1, 2, 3, 4, 5). Давно хотелось подобную модель, с минимум параметров, физический смысл которых был бы более-менее понятен. Чтобы можно было осознано свои параметры модели задавать, а не подгоняться под рынок и слепо за ним идти. Модель, которую использует биржа (с шестью параметрами ABCDES) под такой запрос не подходит. Попробуй там пойми, все ли шесть параметров сейчас имеют справедливые и оправданные значения, или с каким-то из параметров можно поспорить. И слишком уж она гибкая. Бывало смотришь — выскочила какая-то котировка за модель, только соберешься по ней ударить, а программа параметры модели подкорректировала и услужливо изогнула кривую с учетом новой котировки. И то, что только что
выбивалось за модель, стало ей соответствовать. Пробовал еще модель китайской улыбки, там и параметров поменьше и смысл у них попонятнее, но очень уж плохо она подгоняется под рынок. И тут, на счастье, Виталий поделился своей моделью и все подробно объяснил. Реализовал у себя и оказалось — то что надо. И в рынок хорошо вписывается, и параметры имеет понятные.