Прорыв (преодоление)

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

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

Осовремениваем стратегию

Превратить консервативную трендовую стратегию в современную попробуем и мы. В качестве примера возьмем эксперт Breakthrough (прорыв), автором которого является Фатеев В. В. (такой вывод сделан на основании латинского представления FateevVV).

Авторское тестирование производилось на валютной паре USDJPY. Таймфрейм был выбран «классический» – Daily. Соответственно, период тестирования захватывал всю доступную на сегодня историю котировок (см. рис. 1).

С одной стороны, здесь все красиво. Кривая баланса, как табор, уходит в небо. Фактор восстановления системы больше трех (чистая прибыль 3247 против максимальной просадки 1080 долларов). Прибыльные сделки качественно превосходят своих убыточных собратьев (в среднем одна прибыльная покрывает две убыточные). Казалось бы все отлично. И все же, как всегда это случается, всплывает непреодолимое противное «но».

Десять лет тестирования принесли 58 сделок, на основании которых нельзя делать какие-либо значимые выводы. Вторым «но» является размер полученной прибыли. Для спокойного старта в 2000-ом году нам необходимо было иметь хотя бы 1500 долларов капитала. В течение десяти лет этот капитал возрос в два раза при риске порядка 75%. Сомневаюсь, что подобный срок окупаемости в соотношении с 75% риска кого-то устроит.

Тактические изменения

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

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

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

Уровнем стопа выступает один из уровней, рассчитанный по алгоритму «Люстра Чижевского». Индикатор с одноименным названием приведен в конце статьи, а на рисунке 2 показана только одна из его линий, выделенная красным цветом. Так как уровень «люстры» все время изменяется в зависимости от волатильности рынка, очень удобно вслед за ним передвигать и стоп-приказ.  Поэтому все выходы из позиций производятся при достижении стопа.

Зеркальным отражением алгоритма заключения длинных сделок выступают условия открытия коротких позиций (см. рис. 3). Первым делом проверяется условие падения средней скользящей (вновь отмечена синим цветом) при помощи сравнения значений первого и четвертого баров. Далее ожидается закрытие свечи ниже нижней полосы Боллинджера. В случае отсутствия короткой позиции, заключается сделка на продажу. Уровень стоп-приказа устанавливается выше уровня «люстры» на спрэд и сопровождает сделку вместе с уменьшением значения индикатора до закрытия позиции.

Локирование

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

В итоге, при определенном стечении обстоятельств, можно наблюдать существование двух разнонаправленных позиций. Каждая из сделок будет ждать приближения цены к собственному уровню стоп-приказа, не трогая своего антипода. Такое поведение эксперта можно было бы сменить на отсутствие позиций, которое является полным аналогом лока, с установкой двух отложенных ордеров. Но в данном случае скажем «спасибо» MetaTrader 4, так как именно этот частный случай проще и эффективнее запрограммировать в виде лока.

Оптимизация кода

Следующим шагом будет оптимизация кода советника. Оригинальная версия советника при попытке тестирования в режиме «все тики» предложила бы на неопределенное время окунуться в любование пейзажами художественного творчества сотрудников компании Meta Quotes. При этом журнал тестера стратегий утонул бы в «валентинках» интимного содержания, к примеру: «Order Modify error 1». И если при торговле онлайн пониженное быстродействие эксперта на результат не влияет, то обилие возможных ошибок вполне может привести к крайне непредсказуемым последствиям.

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

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

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

Обновленная версия эксперта

Окончание генеральной уборки в коде эксперта BreakThrough_BB1 отметим выходом праздничной версии BreakThrough_BB1_V2. А если есть новый эксперт, то первым делом необходимо протестировать его. Только для таймфрейма Н1 у нас еще нет нужных параметров. Исправить эту недоработку просто – провести оптимизацию за небольшой исторический период. В качестве участка оптимизации выберем 2008-ой год. Он удобен тем, что в течение года рынок попеременно находился в двух ярко выраженных состояниях – флэте и тренде.

Интерес при оптимизации представляют четыре параметра:
–  Period_MA_Long1 (период средней для открытия длинных позиций);
–  Period_BB1 (период Bollinger Bands для открытия длинных позиций);
–  Period_MA_Long2 (период средней для открытия коротких позиций);
–  Period_BB2 (период Bollinger Bands для открытия коротких позиций).

Для валютной пары EURUSD оптимальными оказались следующие значения: MA_Long1 = 262, BB1 = 38, MA_Long2 = 89, BB2 = 38. С использованием этих значений результаты тестирования за период 01.01.2008 – 06.03.2010 получаются такие (см. рис. 4):

Количество сделок возросло до 165. Чистая прибыль тоже выросла и составила 3664 доллара. Вместе с прибылью выросла максимальная просадка – до 2350. Как результат, упал фактор восстановления – 1.56. Но заметим, что все эти сравнения производятся с результатами тестирования на другой валютной паре. Поэтому такой итог можно все же назвать положительным.

Пара USDCHF остановила свой выбор на таком наборе значений: MA_Long1 = 5, BB1 = 16, MA_Long2 = 275, BB2 = 30. Подставляем эти значения в соответствующие параметры и получаем такой результат (см. рис. 5):

Количество сделок намного выше – 271, что объясняется меньшим, по сравнению с евро, периодом одной из средних. Но количество не переросло в качество. Максимальная просадка даже выше, чем у евро – 2642 доллара, а чистая прибыль значительно ниже – 1388 долларов.
Следующим испытуемым выберем валютную пару GBPUSD. Оптимальными здесь оказались такие значения параметров: MA_Long1 = 41, BB1 = 24, MA_Long2 = 36, BB2 = 39. С их использованием результаты становятся интересными (рис. 6):

В данном случае можно сетовать только на не очень эстетичный вид кривой баланса – один всплеск за весь период. Но и такой минус можно превратить в плюс – ведь нет аналогичных всплесков в обратном направлении. С показателями же порядок: сделок – 240, чистая прибыль 5433 доллара, максимальная просадка 2004 доллара, фактор восстановления 2.71.

Последняя пара – USDJPY. Ее оптимальные параметры: MA_Long1 = 267, BB1 = 29, MA_Long2 = 16, BB2 = 22. Соответственно, оптимальные результаты такие (см. рис. 7):

Небольшой провал первой части тестирования был действительно не очень существенным. Как раз на этом участке сформировалась максимальная просадка советника – 1467 долларов. В дальнейшем баланс пошел в рост и сформировал чистую прибыль 2392 доллара. На все это потребовалось 233 сделки.

Заключение

Увеличение частоты сделок не привело к увеличению стабильности системы, но дало шанс получить большую прибыль по сравнению с оригинальной версией стратегии. Причем размер рисков остался в пределах допустимого, хоть и возрос в полтора раза.
Такой исход легко объясняется простой жизненной истиной: «кто не рискует, тот не пьет шампанского». Но и здесь главное соблюсти меру, не нарушив общее равновесие. Ведь безрассудный риск ведет в совершенно другом направлении.

Файлы для скачивания

Test.zip – развернутые результаты тестирования советников
Breakthrough_BB1.mq4 – оригинальная версия советника
Люстра Чижевского.mq4 – индикатор уровней скользящего стопа.
Breakthrough_BB1_V2.mq4 – редакция оригинальной версии.

Добавить комментарий

Кнопка возврата к началу