Советники: Мастер MQL5 - Торговые сигналы свечных паттернов Bullish Engulfing/Bearish Engulfing + CCI

 

Мастер MQL5 - Торговые сигналы свечных паттернов Bullish Engulfing/Bearish Engulfing + CCI:

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

В книге "Стратегии лучших трейдеров мира" описаны индикаторы и торговые стратегии для технического анализа с использованием программного пакета MetaStock. Наряду с традиционными, в ней рассмотрены торговые сигналы, основанные на совместном использовании разворотных свечных моделей с подтверждением от осцилляторов Stochastic, CCI, MFI и RSI.

Использование "разворотных" свечных моделей совместно с сигналами осцилляторов позволяет сократить количество ложных сигналов и повысить эффективность торговой системы.

В данной работе мы рассмотрим результаты использования моделей Bullish Engulfing (бычье поглощение) и Bearish Engulfing (медвежье поглощение) в комбинации с сигналами индикатора CCI.

Свечной паттерн "Bullish Engulfing"  Свечной паттерн "Bearish Engulfing"

Автор: MetaQuotes Software Corp.

Результаты тестирования советника, построенного на базе генератора торговых сигналов "Bullish Engulfing/Bearish Engulfing + CCI"

 

Поскольку при расчете "голосов" производится усреднение по количеству присутствующих модулей (основной + один добавленный модуль), то значения порогов следует указывать с учетом данного обстоятельства. По этой причине значения величин Signal_ThresholdOpen и Signal_ThresholdClose должны быть установлены в 40=(0+80)/2 и 20=(0+40)/2 соответственно.

Родительский сигнал не принимает участия в голосовании, если его методы LongCondition и ShortCondition возвращают одинаковые значения, или если вес родительского сигнала установлен в ноль:

double result=m_weight*(LongCondition()-ShortCondition());
int    number=(result==0.0)? 0 : 1;

Не переопределенные методы LongCondition и ShortCondition класса CExpertSignal всегда возвращают ноль, поэтому утверждение "40=(0+80)/2 и 20=(0+40)/2 " неверно. Значения порогов не нужно делить на 2 (но протестировать с разными значениями весьма интересно, иногда можно увидеть необычные эффекты).

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

Причина обращения: