Оптимизация и тестирование торговых систем

Когда трейдер решает разработать торговую систему, чтобы использовать в своей торговле, он, как правило, не знает ни с чего начать, ни чем закончить. Это совершенно естественно – ведь в обычной жизни нам не приходилось сталкиваться с такими задачами.

Если вы разрабатываете торговую систему в первый раз или уже имеет опыт, но не уверены, все ли вы делаете правильно, рекомендую воспользоваться книгой Роберта Пардо «Разработка, тестирование, оптимизация торговых систем для биржевого трейдера», пошаговой инструкцией по созданию собственной ТС.

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

1. Формулировка торговой стратегии
В основе торговой стратегии лежит какая-то идея относительно поведения цен. На первом шаге вам не нужно иметь торговую стратегию в виде жестких правил – у вас должно быть общее представление о том, какую именно повторяемость в движении цен («паттерн») вы собираетесь использовать для получения прибыли.

Пример: «Для торговли используется тренд-следящая система. Открытие позиции происходит, когда тренд уже достаточно силен, выход – до того, как он полностью угаснет. Идея в том, что движение в середине тренда наиболее предсказуемое и наименее рискованное».

Если вы понимаете «экономический смысл» вашей будущей системы – то есть, осознаете, какую именно модель она использует – вам гораздо легче будет следовать этой системе в неизбежные периоды ее слабости.

2. Выпишите правила ТС
Сформулировав идею, нужно выписать ее в виде четких правил, которые в идеале можно было бы запрограммировать. Не обязательно, если лично вы будете писать компьютерную программу – важно, чтобы правила были достаточно четкие и не допускали двусмысленностей.

Пример: «Открытие позиции происходит, когда бумага в тренде – для определения тренда используется индикатор ADX. При значении, большем 30 – бумага в тренде. Выход из позиции происходит, когда значение ADX падает до 15. Стоп-лоссы, тэйк-профиты и трейлинг-стопы не используются. Объем открываемой позиции – 10% от имеющегося капитала».

Набор правил и их количество может сильно варьироваться от системы к системе, но есть несколько элементов, которые должны быть в системе: правила входа, правила выхода, управление капиталом (в том числе пирамиды – наращивание прибыльных позиций), управление риском (включая виды стоп-приказов – стоп-лосс, тэйк-профит, трейлинг стоп), развороты, входные фильтры.

3. Протестируйте торговую систему
Получив торговую систему в виде программы, нужно протестировать, насколько ее работа соответствует тому, что вы ожидали от нее – открывает ли она сделки в нужные моменты, закрывается ли тогда, когда надо. По сути, задача этого этапа – просто проверить компьютерный вариант на ошибки. Для этого пройдитесь по нескольким сделкам и вручную рассчитайте, какие действия должна была выполнить система – и какие она выполнила.

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

4. Оптимизируйте торговую систему
Имея запрограммированную торговую систему, которая показывает себя неплохо на различных периодах и разных фазах рынка, приступайте к оптимизации – выбору наилучших параметров системы.

Пример: в тренд-следящей системе, описанной выше, параметрами будут 1) уровень ADXopen, который используется для определения того, стоит ли открывать позицию, 2) уровень ADXсlose для определения того, стоит ли закрывать позицию, 3) размер вложений в позицию.

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

Пример: для ADXopen используется следующий набор – 20, 25, 30, 35. Для ADXсlose – 11, 13, 15, 17, 19, 21. Для размера позиции – 7%, 10%, 12%, 15%, 20%.
Существует множество техник оптимизации и моментов, которые нужно учесть при подборе «лучших» параметров:

• учитывайте не только доходность, но и риск стратегии при данных параметрах,
• нежелательно иметь слишком много параметров, по которым ведется оптимизация (это может привести к хорошим результатам за счет «подгонки», но в реальной торговле система не даст таких же результатов),
• проводите тестирование торговой системы на разных временных периодах и разных типах рынков,
• тестируйте работу ТС на других инструментах,
• используйте форвардные тесты,
• выбирайте тот набор параметров, которые дает наиболее устойчивые результаты на многих рынках и разных интервалах, а не тот, который иногда лучше всех, а иногда полностью «проваливается».

Одна из главных проблем, с которой можно столкнуться на этом этапе – это «переоптимизация», т.е. чрезмерная подгонка под заданный рынок и временной период

5. Начинайте торговать по выбранной торговой стратегии
Система протестирована и наилучшие (и наиболее стабильные) параметры выбраны – можно начинать торговать по ней. Конечно, результаты не обязательно будут такими же, как и при тестировании торговой системы.

Вначале торгуйте с небольшими позициями – чтобы убедиться, что торговая система адекватно учитывала «реальности» трейдинга, например, проскальзывания.

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

6. Отслеживайте реальные результаты работы ТС и полученные в результате тестирования
Хорошо разработанная торговая система в реальной торговле будет показывать почти те же самые результаты, что и при тестировании. Но нужно понимать, что возможны и отклонения – например, начало реальной работы пришлось на тип рынка, на котором система чувствует себя хуже всего.

Не стоит сразу же отказываться от системы – выясните для начала, чем вызвано падение результатов по сравнению с ожидаемыми. Вполне может оказаться так, что в будущем, когда рынок изменится на более благоприятный для системы, она даст прибыль, которая перекроет начальные убытки.

7. Улучшайте и совершенствуйте данную торговую стратегию
Наблюдая за работой стратегии, вы будете замечать сценарии, в которых она ведет себя неэффективно – когда накопится достаточно свидетельств таких «ошибок», вы можете внести улучшения в систему, при этом обязательно нужно будет протестировать устойчивость «улучшенной» системы.

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

P.S. Если вам будут интересные подробности по каждому шагу при оптимизации и тестировании торговых систем, то рекомендую обратиться к упомянутой выше книге Роберта Пардо.

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

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

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *