ГлавнаяHigh Frequency › О пользе правильного бэктеста (+ итоги 2019)

О пользе правильного бэктеста (+ итоги 2019)

   Хотелось,  традиционно, подвести итоги 2019 года, но  нового и интересного ничего не произошло, результаты на МОЕКС практически не отличаются от года 2018-го. Поэтому расскажу, насколько важно для HFT торговли написать правильный бэктест. Результаты тоже будут, но на примере отдельных алгоритмов, из набора работающих на Московской бирже.

  Для высокочастотной торговли, наверное, самый главный показатель это мгновенная ликвидность. Не буду углубляться в проблему ее измерения, это отдельная задача. В общем случае, чем выше мгновенная ликвидность, тем большую прибыль приносит высокочастотная стратегия. И ваш тест должен правильно обрабатывать весь поток ликвидности, который присутствует в сохраненной маркетдате, чтобы верно эту мгновенную ликвидность отразить. В матчинге бэктеста необходимо сводить в сделки собственные (тестовые) ордера в первую очередь по потоку рыночных сделок используемого актива, и во вторую - по текущей книге заявок. Нарезки в тесте не должно быть никакой, то есть внутреннее время теста должно идти соответственно последней считанной записи в максимальном разрешении, которое транслируется биржей (миллисекунды или даже микросекунды).Также нужно учесть задержку прихода ордеров на биржу после их отправки и задержку коллбэка. Нюансов здесь много, и я как обычно, о них не расскажу:)

  Всегда сравнивайте результаты реальной торговли и результаты, полученные на бэктесте. Под результатами понимается эквити стратегии за определенный период времени. Если реал в течение дня постоянно демонстрирует результаты хуже теста, пускай даже на несколько процентов, то, скорее всего использовать такой тест для HFT нельзя, так как на годовом периоде эти несколько процентов превратятся в сотни. Совпадение за год может выглядеть как на графике в заглавии поста. Или так:

(графики отдельных экземпляров наших алгоритмов. Красная кривая - реал, черная - тест. Под графиком результат в рублевом выражении без учета комисии/комиссия биржи в рублях.  Алгоритмы показаны на  периоде меньше года, если происходила смена рабочего набора)

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

  На быстрых движениях рынка мы видим серьезную разницу с тестом. Можно сделать вывод, что на таких движениях серьезно возрастает задержка выставления ордера на биржу, либо есть более быстрые участники, которые маскируют наши заявки на хорошей движухе, где можно собрать больше профита. Скорее всего в какой-то мере присутствуют оба фактора (и первый из них можно эмулировать в бэктесте).

  Итак, при правильном бэктесте довольно просто разработать работающий высокочастотный алгоритм. Если же этот инструмент не высокоточный, то поиск стратегии станет практически нерешаемой задачей.

8 Комментарии[ Ваш комментарий ]

  1. Максим

    "Итак, при правильном бэктесте довольно просто разработать работающий высокочастотный алгоритм. Если же этот инструмент не высокоточный, то поиск стратегии станет практически нерешаемой задачей." 

    Тоесть алгоритм HFT сам по себе достаточно прост .. Наверно обычная линейная регрессия итд. Потому основное внимание уделяют скорости и точному исполнению заявок 

  2. Дмитрий

    Добрый день! Скажите, пожалуйста, Ваше мнение.

    Реально ли, чтобы HFT алгоритм зарабатывал с обычным подключением брокера? Задержки на выставление заявок около 120 миллисекунд.

    Или любая HFT стратегия станет нежизнесобной в таких условиях?

  3. Дмитрий

    Бьюсь над алгоритмом не первый год. Последняя версия, процент успешных сделок 95%, ср прибыль равна одному шагу цены на фьючерсе РТС. Стараюсь по максимуму в работе алгоритма исключить  вероятность неисполнения заявок. Бектест показывает хорошие резуальтаты, но запускаешь в реале и он потихоньку льет...( Думаю, что дело все же в латенси... Но проверить это просто и без финансовых затрат конечно не получится.

Сообщение

Обратите внимание: вы можете использоватьHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>