тел.: 8 800 200 86 47|+7 (812) 336 61 11Заказать звонок
Admiral Markets UK Admiral Markets UK Choose your country

MQLabs: Зигзаг волатильности. Часть 2.

Эксперт VolatilityZZ_Clear

Эксперт Volatility_SL

Эксперт VolatilityZZ

Развернутые результаты тестирования советника

 

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

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

Оградить себя от подобных казусов трейдер может очень просто - проверить показания индикатора на достаточно продолжительном участке истории. В этом ему поможет автоматизация торговых правил, на основании которых индикатор отображает свои показания. Автоматизировав такие правила, то есть, разработав специальную программу (эксперт, советник), остается лишь запустить ее в тестере стратегий Meta Trader 4 на всей доступной истории. В итоге за короткий промежуток своего времени трейдер может объективно оценить качество сигналов, подаваемых индикатором.

Подобным образом поступим и мы, проверив показания индикатора VoaltilityZigZag, речь о котором шла в предыдущей статье.

 

Следование сигналам индикатора VolatilityZigZag

Для начала поступим самым простым способом - будем открывать позиции, используя каждый сигнал индикатора. Причем, тестирование будет проведено вчистую, т.е. без установки уровней Stop Loss и Take Profit. В итоге получится торговая система, которая всегда находится в рынке. Каждый новый сигнал открытия одновременно будет являться сигналом закрытия предыдущей противоположной позиции (см. рис. 1).

Рис. 1. Чистое тестирование показаний индикатора.

На участке истории 01.01.2012 - 22.10.2012 и таймфрейме М1 результаты тестирования, на первый взгляд, пессимистичны (см. рис. 2 - 5). Это притом, что для каждой валютной пары было подобрано наилучшее значение параметра i_cntOfAverages, при помощи которого можно управлять чувствительностью индикатора VolatilityZigZag.

EURUSD. Значение параметра i_cntOfAverages = 14. Чистая прибыль 1 076 долларов, максимальная просадка 540 долларов.

        Рис. 2. Результаты тестирования советника VolatilityZZ_Clear на валютной паре EURUSD.

 

USDCHF. Значение параметра i_cntOfAverages = 18. Чистый убыток 46 долларов, максимальная просадка 780 долларов.

        Рис. 3. Результаты тестирования советника VolatilityZZ_Clear на валютной паре USDCHF.

 

GBPUSD. Значение параметра i_cntOfAverages = 20. Чистый убыток 479 долларов, максимальная просадка 1291 доллар.

        Рис. 4. Результаты тестирования советника VolatilityZZ_Clear на валютной паре GBPUSD.

 

USDJPY. Значение параметра i_cntOfAverages = 19. Чистая прибыль 9 долларов, максимальная просадка 709 долларов.

        Рис. 5. Результаты тестирования советника VolatilityZZ_Clear на валютной паре USDJPY.

Сносный результат получен только по одной валютной паре - EURUSD. Но, глядя на график оптимизации, полученный по этой паре, приходим к выводу, что это, скорее, случайность, чем закономерность, т.к. положительных исходов всего лишь 30%. С другой стороны, чего можно ожидать от системы, не имеющей ни Stop Loss, ни Take Profit, и всегда находящейся в рынке? Ведь хороший результат в таких случаях - утопия.

 

Установка уровня Stop Loss

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

Правила установки уровня Stop Loss, исходя из показаний индикатора VolatilityZigZag, очевидны: уровень располагается за ближайшим экстремумом (см. рис. 6).

Рис. 6. Установка уровня Stop Loss.

К этому добавим традиционный прием проекта MQLabs - указание отступа от расчетного уровня Stop Loss. Иными словами, от соответствующего экстремума будет откладываться дополнительное расстояние, которое зависит от средней волатильности, рассчитанной на основании показаний индикатора ATR заданного периода, умноженное на заданный коэффициент. Коэффициент - это настроечный параметр эксперта i_slOffset, а заданный период ATR - параметр i_volPeriod.

Вторая версия эксперта, которая устанавливает уровень Stop Loss для каждой сделки, называется VolatilityZZ_SL. Результаты тестирования эксперта на участке истории 01.01.2012 - 22.10.2012 и таймфрейме М1 приведены на рис. 7 - 10. Вновь для каждого случая подобраны наилучшие значения настроечных параметров. На этот раз оптимизации подверглось уже два параметра: i_cntOfAverages и i_slOffset.

EURUSD. Значения параметров: i_cntOfAverages = 14, i_slOffset = 11. Чистая прибыль 742 доллара, максимальная просадка 726 долларов.

        Рис. 7. Результаты тестирования советника VolatilityZZ_SL на валютной паре EURUSD.

 

USDCHF. Значения параметров: i_cntOfAverages = 18, i_slOffset = 7. Чистая прибыль 91 доллар, максимальная просадка 697 долларов.

        Рис. 8. Результаты тестирования советника VolatilityZZ_SL на валютной паре USDCHF.

 

GBPUSD. Значения параметров: i_cntOfAverages = 20, i_slOffset = 0. Чистый убыток 261 долларов, максимальная просадка 1111 доллар.

        Рис. 9. Результаты тестирования советника VolatilityZZ_SL на валютной паре GBPUSD.

 

USDJPY. Значения параметров: i_cntOfAverages = 19, i_slOffset = 14. Чистый убыток 95 долларов, максимальная просадка 784 долларов.

        Рис. 10. Результаты тестирования советника VolatilityZZ_SL на валютной паре USDJPY.

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

 

Устранение дребезга сигналов

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

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

Рис. 11. Дребезг сигналов.

Здесь истинными сигналами являются первые два: сначала покупка, а затем продажа. Все последующие сигналы - ложные. Если убрать ложные сигналы, то торговля выходит просто на загляденье. Что же общего у всех этих ложных сигналов? Ответ кроется в соотношении цен открытия свечей, на которых зафиксированы соседние сигналы: у ложных сигналов соотношение цен открытия будет не в пользу трейдера. Так, сигнал, расположенный перед истинным сигналом, будет иметь такую цену открытия бара, которая по отношению к следующему сигналу будет лучше. Иными словами, истинному сигналу продажи будет предшествовать сигнал покупки, расположенный на баре с ценой открытия, меньшей, чем цена открытия бара нового сигнала. И, наоборот, истинному сигналу покупки будет предшествовать сигнал продажи, расположенный на баре с ценой открытия, большей, чем цена открытия бара нового сигнала.

Если руководствоваться таким принципом, то на рис. 11 следует признать истинными три первых сигнала. Следующие три ложных сигнала фильтруются. В итоге из четырех ложных сигналов нам удалось отфильтровать три. Достаточно высокий показатель.

У описанного выше метода есть серьезный недостаток - причисление истинных сигналов к ложным в момент перехода рынка от флета к тренду (см. рис. 12).

Рис. 12. Тренд сменяет рыночное затишье.

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

Решить проблему можно, если заметить, что, зачастую, при намечающихся сильных движениях цены пробивается предыдущий экстремум, соответствующий направлению будущего движению. Иными словами, при сигнале продажи происходит пробой последнего минимума индикатора VolatilityZigZag, а при сигнале покупки происходит пробой предыдущего максимума индикатора. На рис. 12 видно, что сигналу продажи по цене 1.3103 как раз предшествует пробой минимума (уровень 1.3202). Поэтому к условию принятия сигнала в качестве истинного добавляем исключение: при пробое предыдущего экстремума, сходного с сигналом направления, новый сигнал считается истинным. Это исключение добавляем в предыдущее правило фильтрации и получаем следующий порядок выявления ложных сигналов (см. рис. 13).

Рис. 13. Блок-схема алгоритма выявления истинного сигнала.

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

  • Автоматическое признание сигнала, следующего за истинным, также истинным сигналом. Это ситуация возникновения небольшой коррекции после тренда. Утешением является тот факт, что будет допущен только один ложный сигнал.

  • Истинному сигналу после флета не во всех случаях предшествует пробой предыдущего экстремума, что приводит к пропуску сигнала.

Финальная версия эксперта названа VolatilityZZ.

 

Тестирование финальной версии

Финальная версия, так же как и предыдущие версии, была оптимизирована на участке истории 01.01.2012 - 22.10.2012 и таймфрейме М1. Наилучшие значения настроечных параметров были применены к расширенному участку истории 01.01.2011 - 22.10.2012. Таким образом, весь 2011 год - участок форвард-тестирования, который и стал лакмусовой бумажкой разработанной торговой стратегии. Результаты приведены на рис. 14-17.

EURUSD. Значения параметров: i_cntOfAverages = 13, i_slOffset = 18. Чистая прибыль 2 733 доллара, максимальная просадка 1 102 доллара.

        Рис. 14. Результаты тестирования советника VolatilityZZ на валютной паре EURUSD.

 

USDCHF. Значения параметров: i_cntOfAverages = 18, i_slOffset = 7. Чистая прибыль 1 851 доллар, максимальная просадка 701 доллар.

        Рис. 15. Результаты тестирования советника VolatilityZZ на валютной паре USDCHF.

 

GBPUSD. Значения параметров: i_cntOfAverages = 20, i_slOffset = 0. Чистая прибыль 802 доллара, максимальная просадка 1 030 долларов.

        Рис. 16. Результаты тестирования советника VolatilityZZ на валютной паре GBPUSD.

 

USDJPY. Значения параметров: i_cntOfAverages = 13, i_slOffset = 19. Чистый убыток 658 долларов, максимальная просадка 1 429 долларов.

        Рис. 17. Результаты тестирования советника VolatilityZZ на валютной паре USDJPY.

 

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

 

Игорь Герасько

Октябрь 2012

Специально для компании Admiral Markets

2.9
 
 
X
Loading