uralpro
uralpro личный блог
17 января 2020, 12:37

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

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

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

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

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

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

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

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

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

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

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

Стратегии и алгоритмы автоматической торговли смотрите на моем сайте www.quantalgos.ru

25 Комментариев
  • bstone
    17 января 2020, 13:18
    С этим не поспоришь! Все рабочие алгоритмы торгуются на отдельных суб-счетах или на выходе агрегация ордеров?
  • Arbitrg
    17 января 2020, 13:21
    >Нюансов здесь много, и я как обычно, о них не расскажу
    Ну вот, самое интересно и «не расскажу»....)
  • pavard
    17 января 2020, 13:42
    бектест никогда не может совпасть с реальной торговлей, тк в реальной торговле ты вносишь изменения в рынок своими заявками и сделками.
  • Носорог
    17 января 2020, 14:03
    Спасибо, прочитал с интересом! 

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн