エキスパート: MQL5 Wizard - RSIの条件付きの"Hammer/Hanging Man"のシグナル

 

MQL5 Wizard - RSIの条件付きの"Hammer/Hanging Man"のシグナル:

MQL5 Wizardを使えば、クライアントターミナルにあるStandard libraryのエキスパートアドバイザーを自動生成することができます。(詳細は、Creating Ready-Made Expert Advisors in MQL5 Wizardを参照)トレードシグナルのクラスを生成しさせすれば、トレードアイディアをすぐに確認することができますクラスの例と構造については MQL5 Wizard: How to Create a Module of Trading Signalsを参照してください。

一般的な考え方は下記の通りです。:CExpertSignalがシグナルのクラスです。そして、LongCondition()ShortCondition() を上書きする必要があります。

"Strategies of best traders" (ロシア)という著書があります。 そこには数多くの手法と方法が記述されており、転換足パターンを StochasticCCIMFIRSIの条件のもと、焦点を当てていきます。

最も良い方法は、ロウソク足のパターンの確認に、CExpertSignalから導かれるクラスを切り分けて生成することです。ロウソク足のパターンによるトレードシグナルの確認には、CCandlePatternのクラスを書いて、必要な条件例えば、オシレーターの確認など)を追加すれば十分です。

RSIの条件付きの"Hammer/Hanging Man"の転換足パターンのシグナルを考えてみましょう。トレードシグナルのモジュールは、CCandlePattern classに基づいています。ロウソク足のパターンによるシグナルの生成のシンプルな一例です。

"Hammer" candlestick pattern "Hanging Man" candlestick pattern

Testing results of the Expert Advisor, based on Hammer/Hanging Man + RSI

作者: MetaQuotes Software Corp.

 

このシグナル・クラスを使ってエクササイズを実行しようとしましたが、まったくうまくいきませんでした。

まず、デバッガーを使って、シグナル・クラスのm_appliedフィールドの初期化が提供されていないというエラーを克服した。

それから、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);
  }

さらにデバッガを見ると、ロング・ポジションをクローズする条件によってショート・ポジションがオープンされています。これは何に関係しているのでしょうか?

また、もう一つの質問ですが、なぜ説明ではコメント付きのコードがロシア語になっているのに、添付ファイルでは同じではなく英語になっているのでしょうか?