Чтобы тестирование системы на исторических данных было максимально правдоподобным, необходимо обязательно учитывать проскальзывание и комиссионные, которые входят в нашу формулу (TC). Для большинства краткосрочных стратегий они оказывают существенное влияние на результат101
. Условия тестирования также могут отличаться от реальных торгов из-за задержки, которая существует между появлением сигнала на вход/выход и реальной сделкой. Кроме того, вам необходимо убедиться в том, что архивные данные, на которых вы тестируете свой метод, не содержат ошибок (например, потребуется учесть некорректное отражение гэпов или некорректную «склейку» фьючерсных контрактов). Некоторые алготрейдеры рекомендуют для тестирования систем обязательно использовать тиковые данные или даже полный ордерлог102.Если система переносит позиции через ночь, вам необходимо достоверно протестировать отработку гэпов на открытии торгов103
.Чеклист бэкстестинга:
1. Проверить корректность данных.
2. Учесть задержки.
3. Учесть комиссионные и проскальзывания.
4. Корректно учесть гэпы.
Полезные ссылки:
Полный список программ для тестирования систем:
Тестирование системы в Метастоке:
10.3 Критерии оценки
Здесь перед нами встают сразу две проблемы.
Во-первых, вы протестировали торговую систему на данном инструменте и получили положительную теоретическую кривую депозита. Можно ли доверять этим результатам?
Во-вторых, допустим, что вы по очереди тестируете две системы на одном инструменте. И получили два результата – две положительных теоретических кривых вашего депозита. Какой результат лучше, какую из систем запустить в работу?
Цель Механизма диктует нам требования к следующим факторам:
• устойчивость работы системы во времени;
• минимизация риска и издержек;
• максимизации прибыли.
Таким образом, чем лучше соотношение доходность/риск системы и чем более устойчивы результаты во времени, тем больше система отвечает нашей цели.
Проблема 1
Давайте вспомним тезис № 5. Рынок подвержен случайности. И результаты одной отдельно взятой системы, протестированной на истории, также могут оказаться случайными. Наша задача – убедиться в том, что результат все же неслучайный.
Вернемся к формуле и сгенерируем кривую изменения депозита, которая была построена на основании 1000 случайных сделок (средний профит = средний убыток (AP = AL), и вероятность убытка равна вероятности прибыли (PP = LP)[7]
.Рис. 80. Это кривая – случайный результат 1000 случайных сделок
Банальная логика эксперимента позволяет нам сделать несколько выводов.
1. Если бы мы сделали всего лишь 250 первых сделок на истории (первая четверть графика), то мы бы подумали, что изобрели гениальный торговый метод. На самом же деле нам просто повезло. Важно не принимать случайность за успех[8]
.2. В случае запуска этого «гениального» торгового метода с 251-й сделки он принес бы нам убытки, и нам стало бы очевидно, что он не работает.
3. Если бы наш тест показал сделки в интевале 251–500 или 501–750, то мы бы сразу поняли, что эта торговая система никуда не годится. Тест на основании интервала 751–1000 также привел бы нас в ловушку случайности, и результат показался бы нам хорошим.
Давайте добавим в систему немного положительного математического ожидания и посмотрим, как изменится характер графика. Если мы введем вероятность прибыльной сделки, равную 60 %, то мы увидим невероятно гладкую растущую кривую, которую на реальных торгах получить невероятно сложно.
Рис. 81. Кривая результатов системы с вероятностью прибыльной сделки 60%
Скачать данный эмулятор в файле Excel и самостоятельно поупражняться вы можете на странице «Смартлаба»105
. В этом файле две страницы: на первой – 1000 сделок с нулевым матожиданием, на второй – установлено матожидание PP = 0,6. На этом же листе вы можете самостоятельно менять параметры PP, AP, LP.Продолжаем делать наши логические выводы на основании приведенных примеров:
1. Если система совершает 60 % прибыльных сделок, то она с большой вероятностью будет прибыльна на каждом из интервалов: 1–250, 251–500, 501–750, 751–1000.
2. Чем выше положительное матожидание системы, тем меньше сделок требуется, чтобы устойчиво показывать положительный результат на тесте. Это утверждение справедливо для нашего примера, где тейк-профит = стоп-лосс. Чем реже система будет собирать тейк-профиты и чем чаще стоп-лоссы, тем более неравномерной будет форма кривой даже при наличии большого положительного матожидания. То есть психологически дискомфортная система с коротким и слишком частым стоп-лоссом может давать неравномерную кривую на тестах.
3. Напротив, когда положительное матожидание системы незначительное – например, PP = 51 %, – то для того, чтобы результат теста выглядел закономерным, нам придется брать большее количество сделок.