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

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

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41  Наверх ↑