Торговая система трейдера: фактор успеха
Шрифт:
Полное тестирование торговой системы — процесс долгий и нудный. Поэтому этот процесс стоит разбить на несколько шагов и выполнять их по очереди. Если на каком-то шаге система показала результаты, которые нас не удовлетворяют, нет смысла выполнять остальные.
Шаг 1 — формулировка торговой системы. Да, я повторяюсь, но этим я хочу подчеркнуть важность данного шага. В ТС должно входить 4 правила:
• когда открывать длинную позицию;
• когда закрывать длинную позицию;
• когда открывать короткую позицию;
• когда закрывать короткую позицию.
Правила могут быть простыми или сложными, но в любом случае они должны быть записаны. Это помогает строго их формулировать. Для примера рассмотрим очень простую торговую систему. Вот ее правила:
•
• Закрываем длинную позицию, когда RSI пересекает уровень перекупленности сверху вниз или срабатывает стоп-лосс. Стоп-лосс ставим на 5 пунктов выше предыдущего локального максимума.
• Открываем короткую позицию, когда RSI пересекает уровень перекупленности сверху вниз.
• Закрываем короткую позицию, когда RSI пересекает уровень перепроданности снизу вверх или срабатывает стоп-лосс. Стоп-лосс ставим на 5 пунктов ниже предыдущего локального минимума.
Эта торговая система в итоге не приносит прибыли, но на ее примере легко рассмотреть основные этапы тестирования.
Шаг 2. Загружаем на экран свечки по выбранной валюте за предыдущий год (мы для примера тестируем внутридневную ТС, поэтому в большинстве случаев для начала года хватит). Затем рисуем те индикаторы, которые будем использовать в ТС, с выбранными значениями параметров. Подходящие (НЕ ОПТИМАЛЬНЫЕ!!!) значения можно взять из литературы или спросить на форуме. Возможно, в дальнейшем эти параметры придется изменить, но для начала можно использовать рекомендованные значения. Для нашей торговой системы выберем для RSI параметр 7, стандартные значения уровней перепроданности и перекупленности — 30 и 70, а тестировать систему будем на часовых свечках евро за 2004 год. На рисунке 1 показана часть часового графика евро в начале 2004 года и RSI с соответствующими параметрами. Конечно, на этом графике видно, когда график идет вниз или вверх, но при тестировании нам это не должно мешать.
Шаг 3. Начиная с левого края данных, находим свечки, для которых выполняются условия открытия позиции, определяем точку стоп-лосса и смотрим, была ли у нас возможность закрыть позицию без убытка до того, как сработал стоп-лосс.
Я считаю, что такая возможность была, если цена после открытия позиции прошла в нужном направлении 30 пунктов. Затем ищем следующую свечку, на которой можно открыть позицию, и так далее.
Мы начнем тестирование с 5 января 2004 года. Первые несколько дней в новом году лучше не торговать, так как возможны неожиданные резкие движения. На рисунке 2 приведены первые 5 сделок.
Стрелками на индикаторе указаны точки, в которых индикатор пересекает уровни поддержки и сопротивления. Стрелки на графике цены указывают свечки, по ценам открытия которых совершались операции покупки или продажи. Горизонтальные линии на ценовом графике показывают, где были установлены стоп-лоссы. Нетрудно увидеть, что только вторая сделка была безубыточной.
На рисунке 3 приведены сделки с 6-й по 10-ю. Обозначения на рисунке 3 такие же, как и на рисунке 2. Видно, что безубыточными оказались седьмая, восьмая и девятая сделки.
Шаг 4. После того как было открыто (и закрыто) 10 позиций, можно подвести первые итоги. Если из 10 позиций хотя бы 5 можно было закрыть без убытка, то стоит продолжить тестирование по тем же правилам до тех пор, пока не будет открыто (и закрыто) 25 позиций (если данных за год для этого окажется недостаточно, то надо взять данные
за более долгий срок). Если безубыточных сделок меньше 5, то надо менять правила, то есть возвращаться на шаг 1. В большинстве случаев именно так и происходит. В нашем случае у нас 4 безубыточных сделки из 10. Следовательно, мы должны изменить правила и вернуться на шаг 1. В нашем случае можно изменить параметр RSI, или изменить значения уровней перекупленности и перепроданности. Также можно было бы добавить в правила открытия позиции учет тренда. Например, правило для открытия «длинной» позиции можно записать в следующем виде:• Открываем длинную позицию, когда RSI пересекает уровень перепроданности снизу вверх и индикатор RAVI показывает тренд вверх.
Будем считать, что в итоге некоторых изменений торговой системы мы имеем 7 прибыльных сделок из 10. В этом случае проверяем 25 сделок и переходим на следующий шаг.
Шаг 5. После того как было совершено 25 сделок, можно подвести промежуточные итоги. Если из 25 сделок хотя бы 12 можно было закрыть без убытка, то переходим на шаг 6. А если из 25 сделок убыточных больше 13, то возвращаемся на шаг 1 и меняем правила.
Шаг 6. На этом шаге внимательно рассматриваем убыточные сделки и ищем дополнительные условия (эти условия называются фильтрами), которые позволили бы отсеять эти сделки. Например, не открываем короткую позицию, если до ближайшего уровня поддержки меньше 30 пунктов. Обратите внимание, что на этом шаге мы стараемся не увеличить количество прибыльных сделок, а уменьшить число убыточных. После добавления любого фильтра возвращаемся на шаг 4 и тестируем систему заново. И это продолжается, пока мы не получим как минимум 60% безубыточных сделок. После этого переходим на шаг 7.
Шаг 7. И только на этом шаге мы проводим более полное тестирование. Это значит, что на исторических данных на интервале не менее года (напоминаю, что для примера мы тестируем торговую систему на часовых свечках) мы открываем и закрываем позиции строго по правилам. При каждом закрытии позиции мы записываем, сколько пунктов мы выиграли или проиграли, когда открыли и когда закрыли позицию, какой был стоп-лосс.
Шаг 8. По тем результатам, которые были получены на седьмом шаге, строим кривую доходности, вычисляем MIDD и фактор восстановления. После этого решаем, подходит нам эта торговая система или нет. Если у нас уже есть другая торговая система, то надо сравнить, какая из них лучше. Но детальное сравнение торговых систем включает в себя и правила управления капиталом. Это отдельная большая тема, и мы рассмотрим ее в другой раз.
При оценке торговых систем рекомендую обратить внимание на такую величину, как максимальное количество убыточных сделок, которые были подряд. Согласитесь, что если две системы из 25 сделок дают десять убыточных, то, скорее всего, предпочтительнее та система, в которой мы получаем подряд не более двух сделок, а не та, где встречаются пять убыточных сделок подряд.
Если вы играете по нескольким валютным парам, то торговую систему надо протестировать для каждой пары. Затем нужно объединить результаты тестирования и снова рассчитать характеристики торговой системы. При этом нужно учитывать, что вес валют разный (то есть 100 пунктов по евро не равны 100 пунктам по франку). Поэтому для каждой пары надо ввести свой множитель.
Мы тестируем торговые системы на исторических данных, и поэтому часто возникает вопрос: «Хорошо, на исторических данных торговая система показывает отличные результаты. А где гарантия, что торговая система и дальше будет хорошо работать»? Ответ простой — таких гарантий нет. Но, с другой стороны, мы проверили торговую систему на достаточно большом интервале времени. За этот срок на рынке было всякое — и тренд вверх, и тренд вниз, и коридор, и разные новости. И если при этом торговая система нормально работала, то, скорее всего, она и дальше будет давать хорошие результаты. Конечно, рынок может измениться, и торговую систему надо будет отлаживать заново, но ведь и в этом случае ее придется отлаживать на исторических данных. Другого способа просто не существует.