Приложение 1 О тестировании (практические советы)

Приложение 1 О тестировании

(практические советы)

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

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

Есть хорошо известное правило — ожидаемая прибыль должна превосходить стоп-лосс не менее чем в три раза. Назовем это правило правилом № 1. Это правило приведено почти во всех книгах. Неявно это предполагает, что большинство сделок (например, 70%) дает небольшой убыток, а меньший процент сделок (30%) дает большой доход, который превышает убытки, и в итоге мы имеем прибыль (приведенные проценты взяты из реально существующих торговых систем, по которым рекомендуют работать авторы многих книг). Но это обычно выполняется только для торговли по трендам. В этом случае мы входим в рынок, как только появился сигнал о начале тренда. Однако такие сигналы часто бывают ложными, поэтому мы ставим относительно небольшой стоп-лосс. Если сигнал был ложным, мы этот небольшой стоп-лосс и получаем, а если тренд действительно начался, то долго стоим по тренду и получаем большую прибыль. Такая стратегия часто подходит для работы на дневных или недельных свечках (для которых она и была создана) при условии, что мы согласны получать основную прибыль на больших трендах. Но сейчас большое количество сделок открывают на два-три дня, и за это время часто удается получать достаточную прибыль. В этом случае стоп-лосс часто равен полученной прибыли, но зато процент прибыльных сделок не менее 60. Поэтому предлагаю в дальнейшем использовать правило № 2 — процент выигрышных сделок в торговой системе должен быть не менее 60%. И такой вариант работы получает все большее распространение при работе на дневных свечках. А что мы имеем при работе внутри дня?

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

И что же делать? А ответ очень прост — надо создавать такие ТС, в которых число прибыльных сделок превышает число убыточных (например, 30% убыточных сделок и 70% прибыльных), то есть использовать правило № 2. В этом случае вполне можно открывать позицию, если стоп-лосс равен ожидаемой прибыли, и при этом в итоге быть в выигрыше.

Прекрасно, минимальный процент выигрышных сделок мы определили. Но сколько надо совершить сделок, чтобы определить этот процент достаточно надежно? Ведь если мы совершим одну сделку и выиграем, то процент выигрышных сделок будет равен 100, но всем понятно, что этому верить нельзя. Из статистики известно: если мы совершим 25 сделок и подсчитаем процент выигрышных, то полученным результатам можно верить на 80%. И этого вполне достаточно, тем более что никакое количество сделок не даст 100% гарантии, что полученный результат верен. Поэтому первой условие при тестировании торговой системы — мы должны совершить по этой торговой системе не менее 25 сделок для того, чтобы результатам можно было доверять. Но этого условия недостаточно. Если мы тестируем торговую систему на дневных свечках, то мы должны протестировать ее на интервале не менее 5 лет. Если же мы тестируем торговую систему на часовых свечках, то мы должны протестировать ее на интервале не менее чем 1 год, лучше — на интервале в 2 года. Это условие связано с тем, что за такой период на рынке обычно будут и тренд вверх, и тренд вниз, и коридор (в соответствующем масштабе, разумеется), и если при всем этом торговая система дала хорошие результаты, то в дальнейшем ей можно пользоваться, по крайней мере некоторое время. Еще раз отметим, что при тестировании должны быть выполнены оба условия, а не какое-то одно.

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

Шаг 1 — формулировка торговой системы. Да, я повторяюсь, но этим я хочу подчеркнуть важность данного шага. В ТС должно входить 4 правила:

• когда открывать длинную позицию;

• когда закрывать длинную позицию;

• когда открывать короткую позицию;

• когда закрывать короткую позицию.

Правила могут быть простыми или сложными, но в любом случае они должны быть записаны. Это помогает строго их формулировать. Для примера рассмотрим очень простую торговую систему. Вот ее правила:

• Открываем длинную позицию, когда RSI пересекает уровень перепроданности снизу вверх.

• Закрываем длинную позицию, когда 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 пунктам по франку). Поэтому для каждой пары надо ввести свой множитель.

Мы тестируем торговые системы на исторических данных, и поэтому часто возникает вопрос: «Хорошо, на исторических данных торговая система показывает отличные результаты. А где гарантия, что торговая система и дальше будет хорошо работать»? Ответ простой — таких гарантий нет. Но, с другой стороны, мы проверили торговую систему на достаточно большом интервале времени. За этот срок на рынке было всякое — и тренд вверх, и тренд вниз, и коридор, и разные новости. И если при этом торговая система нормально работала, то, скорее всего, она и дальше будет давать хорошие результаты. Конечно, рынок может измениться, и торговую систему надо будет отлаживать заново, но ведь и в этом случае ее придется отлаживать на исторических данных. Другого способа просто не существует.

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