Советники: Мастер MQL5 - Торговые сигналы свечных паттернов Hammer/Hanging Man + RSI

 

Мастер MQL5 - Торговые сигналы свечных паттернов Hammer/Hanging Man + RSI:

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

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

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

В данной работе мы рассмотрим результаты использования моделей Hammer ("Молот") и Hanging Man ("Повешенный") в комбинации с сигналами индикатора RSI.

Свечной паттерн "Hammer"  Свечной паттерн "Hanging Man"

Автор: MetaQuotes Software Corp.

Результаты тестирования советника, построенного на базе генератора торговых сигналов "Hammer/Hanging Man + RSI"

 

Попробовал выполнить упражнение с данным сигнальным классом, и что-то совсем не получилось.

Сначала с помощью отладчика преодолел ошибку, что не предусмотрена инициализация поля m_applied сигнального класса, из-за чего не создается индикатор RSI.

Затем нашёл, что в методе CCandlePattern::CheckPatternHangingMan() как будто отсутствует закрывающая скобочка для вызова функции MathMin():

//+------------------------------------------------------------------+
//| Checks formation of Hanging Man candlestick pattern              |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternHangingMan()
  {
//--- Hanging man
   if((MidPoint(1)>CloseAvg(2))                                 && // up trend
      (MathMin(Open(1),Close(1)>(High(1)-(High(1)-Low(1))/3.0)) && // body in upper 1/3
      (Close(1)>Close(2)) && (Open(1)>Open(2))))                   // body gap
      return(true);
//---
   return(false);
  }

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

И ещё вопрос: почему в описании приводится код с комментариями на русском языке, а в прилагаемых файлах находится не то же самое, а на английском?