Статья является продолжением статей:
Механическая торговая система «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.Сравнивать результаты тестов двух систем друг с другом имеет смысл только тогда, когда за тестовый период (у каждой системы он может быть свой) они совершают примерно одинаковое количество сделок.
Всего доброго.
Copyright © 2007-2017 Павел Смирнов
При использовании материалов сайта ссылка на www.autoforex.ru обязательна.