Механическая торговая система «20/200 pips» - новые идеи

Опубликовано: 01.01.2007

Статья является продолжением статей:
Механическая торговая система «20/200 pips».
Механическая торговая система «20/200 pips» - продолжаем эксперименты.

Дальнейшая работа по улучшению системы сводилась к поиску способов уменьшить количество убыточных сделок, что привело бы к увеличению прибыльности системы. Самым простым методом является использование дополнительных условий для входа в рынок, другими словами - использование фильтра.

Оказалось, что найти подходящий фильтр не так-то просто. Поиски начались с добавления различных индикаторов и простых условий. Но чем больше я тестировал систему с дополнительными фильтрами, тем больше я убеждался, что эта система не терпит никаких дополнительных условий. Как только я включал очередной фильтр, так сразу возрастала результативность системы, и можно вроде бы радоваться, но не тут-то было.

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

Т.е. добавив фильтр, мы тем самым ухудшили показатели системы, хотя на первый взгляд они улучшились. И вообще, мной уже давно замечена зависимость результатов тестов от количества совершенных сделок – чем больше сделок, тем хуже результаты, но тем они достовернее. Поэтому я стремлюсь получить при тестировании более 500 совершенных сделок за тестовый период (это около 5 лет, при совершении 2 сделок в неделю). Это очень жесткое ограничение и не многие системы выдерживают его. Т.к. очень сложно получить хорошие результаты от системы при таком количестве сделок за тест. Это и хорошо, т.к. отсеиваются заранее нерабочие системы.

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

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

В Метатрейдере есть замечательная возможность тестировать экспертов в режиме «Long only» и «Short only», когда эксперту во время теста разрешается совершать только длинные или только короткие сделки соответственно. Такая функциональность дает возможность изучить вклад обоих типов сделок в общий результат тестирования.

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

Для этих целей я переписал код эксперта. В новом варианте эксперта величины TakeProfit и StopLoss, а так же delta задаются независимо для коротких и длинных позиций. Так же в эксперте осталась возможность принудительно закрывать сделки по истечении определенного времени (задается параметром MaxOpenTime).
Комментировать данный код я не буду, там все просто. На многие вопросы связанные с кодом этого эксперта вы найдете в цикле статей «Рождение эксперта». Но если у Вас все же возникли вопросы, то я с удовольствием отвечу на них.

Итак, копируем код эксперта на MQL, или скачиваем файл с советником для Metatrader, компилируем его в Метаэдиторе и запускаем тестер на оптимизацию параметров. Выбираем самый лучший результат и запускаем тест с его параметрами. На самом деле не всегда самый лучший из результатов оптимизатора будет показывать лучшие результаты при дальнейшем использовании советника. Но в этот раз, я выбрал самый лучший.

Отчет тестера можно посмотреть здесь.

Результаты не могут не радовать глаз. Вот основные показатели, на которые следует обращать внимание в первую очередь:

Всего сделок   887
Прибыльность   1.82
Матожидание выигрыша   12.58
Максимальная просадка   600.68 (пипс)
Короткие позиции (% выигравших)   445 (86.74%)
Длинные позиции (% выигравших)   442 (83.94%)
Прибыльные сделки (% от всех)   757 (85.34%)
Убыточные сделки (% от всех)   130 (14.66%)
Максимальное количество непрерывных выигрышей (прибыль)   33 (1095.68)
Максимальное количество непрерывных проигрышей (убыток)   3 (-268.00)
Максимальная непрерывная прибыль (число выигрышей)   1095.68 (33)
Максимальный непрерывный убыток (число проигрышей)   -334.44 (2)
Средний непрерывный выигрыш   7
Средний непрерывный проигрыш   1

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

Чистая прибыль системы составляет больше 11000$ (торгуя 0.1 лотом) за шесть с половиной лет (2001-2007) тестового периода. Это более 1500$ в год. Имея депо в 1000$, мы получаем 150% годовых. Это неплохой результат. Даже, если результаты торговли системы в реале будут хуже в два раза, то система будет приносить 75% годовых. Даже имея 30% годовых (заметьте расчеты ведутся в долларах!) можно неплохо заработать. Главное, чтобы ваш эксперт приносил эти 30% стабильно.

У системы, в данном варианте, просадка составляет 600 пипсов, которые, при торговле 0.1 лота равны 600$. Это означает, что депо для такой торговли должно быть не меньше 700$. Почему именно 700$? Да потому, что одним из критериев завершения торговли по этой системе будет превышение максимальной просадки этой системы полученной во время теста эксперта. Если просадка на реальном счету составит больше 600$, торговлю следует прекратить.

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

Предвижу вопрос по поводу того, что для тестов использовался период с 2001 по 2007 гг., хотя котировки по EURUSD присутствуют с 1999 года. Отвечу, что многие системы, которые я пробовал тестировать, работали плохо или вовсе не работали на промежутке с 1999 по 2002 год. Не знаю чем это объяснить, но такое поведение совершенно разных систем наводит на мысль о том, что рынок с 2001-2002 года изменился. Возможно, это связано с вводом EUR в наличный оборот в 2002 году, не знаю. Но факт остается фактом. Да и тестировать системы всегда лучше на более свежих данных, т.к. рынок постоянно меняется.

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

Можно, также, выключать ограничение по времени удержания убыточной позиции для позиций, которые к тому времени имеют положительный профит.
Можно ввести эффективный ММ (Money Management) и RM (Risk Management).

Все это требует дополнительных исследований и, возможно, они когда-нибудь будут проведены.

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

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

2.Сравнивать результаты тестов двух систем друг с другом имеет смысл только тогда, когда за тестовый период (у каждой системы он может быть свой) они совершают примерно одинаковое количество сделок.

Всего доброго.