LevNNN
LevNNN личный блог
11 февраля 2021, 20:06

Пример разбора трех вариантов тестирования алгоритма на исторических данных OHLC

Всем добрый вечер!

В последнее время на форуме было опубликовано несколько статей по поводу тестирования алгоритмических стратегий, приблизительно следующего содержания — «На тестах все хорошо и алгоритм дает прибыль +100%, в реальной жизни все плохо — и алгоритм дает убытки -100%».В этом посте я попытаюсь вставить свои «пять копеек», почему так случается. С торговлей на бирже знаком с 1994 года. Не скажу, что весь этот опыт был удачный, скорее совсем наоборот и поэтому с 2016 года занимаюсь разработкой алгоритмических стратегий, ну или по простому — пишу торговый собственный робот. В реальных торгах участвую, но только с помощью собственного робота. Разработка роботов — это не бизнес, а скорее хобби, пишу для себя. Торгую на ММВБ через Quik. Робот написан на C#, для тестирования использовал данные с сайтов finam и pitrading (покупал).
Так как я сам разработчик кода, то мне легко внести небольшие коррекции в свой же алгоритм и провести небольшой эксперимент. Я взял исторические минутные данные (OHLC) по трем инструментам — Apple, AUD/USD и XAUG/ USD за последние 4 года и рассмотрел три варианта заключения сделок при тестировании:

Вариант Average. Мы заключаем сделки ( продажа или покупка) по средней цене — (Open + High + Low + Close) / 4;

Вариант Best. Мы покупаем всегда по Low, а продаем по High.

Вариант Worst. Мы покупаем всегда по High, а продаем по Low.

Интуитивно понятно, что вариант Best должен дать самую хорошую доходность, а вариант Worst — худшую. Так и получилось. Результаты тестирования я свел в таблицу и получилось следующее :

Apple      Average  Best      Worst     Market
2017       28.03     38.7      16.62     46.32
2018       5.79       43.29    -33.52   -7.26
2019       61.32     97.87    23.63     85.87
2020       84.07     174.05   -7.23     70.68


AUD/USD Average Best      Worst     Market
2017       3.5         8.65      -2.08     7.98
2018       3.2         5.61      -3.68     -9.68
2019       12.84     16.24    10.69    -0.37
2020       29.34     47.56    8.71       9.86

XUG/USD Average Best      Worst     Market
2017        4.07      30.22    -10.2     6.36
2018        0.87      8.63      -8.2       -5.31
2019        8.64      27.5      -7.94     15.18
2020        85.25    252.56   -99.21   48.28

В таблице отражены доходности в процентах, положительно значение соответствует прибыли, отрицательное — убыткам. Для справки я также привел как изменялся рынок ( колонка Market) за отчетный год. При тестирование предполагалось, что Вы отдадите комиссию в размере 0.05% брокеру с каждой сделки.

Результаты в принципе получились ожидаемые. Алгоритм Best всегда лучше Average, и соответственно Worst хуже всех. Понятно, что в реальной жизни Вам никогда не удастся заключать сделки по алгоритму Best. Но я думаю, что Вы не настолько неудачны, чтобы заключать сделки по худшей цене, как в алгоритме Worst. При алгоритме Worst лучше всего ведет себя австралийский доллар — в целом алгоритм остается прибыльным даже при самом худшем сценарии, на серебре при алгоритме Worst Вы разоритесь, а на Best озолотитесь.

Из всего вышесказанного напрашивается простой вывод — манипулировать с ценами при тестировании своих стратегий нельзя, если Вы не хотите получить отрицательный результат в реальной жизни. Важны мельчайшие подробности. Прежде чем начинать торговлю, прогоните свои алгоритмы на исторических данных и они должны давать стабильно положительный результат как минимум за 5 лет без какой либо подгонки параметров.

Всем удачи в торгах!

13 Комментариев
  • u-gyn
    11 февраля 2021, 20:33
    Правильное тестирование только вариант worst.
    я все тестирую только так, если при самом худшем раскладе ТС плюсует, значит плюс будет по любому, т.к. даже хронический неудачник не способен всегда покупать по максимальной цене и продавать по минимальной.
  • ves2010
    11 февраля 2021, 21:55
    про pitrading не знал
    что есть такое

    но у тя баг в логике
    в реальных торгах тыж не знаешь хай, лоу, клос свечи на которой выставляешь заявку
    единственое что ты знаешь это опен — если бот считает по открытиям свечек

    т.е ты как бы подглядываешь в будущее

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

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