機能
iMomentum関数は、Momentum(モメンタム)指標のハンドルを返します。バッファは 1 つです。
※モメンタムの詳細は↓の記事をご参照ください
<書式>
| int  iMomentum( string symbol, // 銘柄名 ENUM_TIMEFRAMES period, // 期間 int mom_period, // 平均期間 ENUM_APPLIED_PRICE applied_price // 価格の種類かハンドル ); | 
引数
symbol
[in] データが指標計算に使用される有価証券の銘柄名(NULL は現在のシンボル)
period
[in] 期間の値は ENUM_TIMEFRAMES 列挙の値の 1 つで、0 は現在の時間軸の意味です。
mom_period
[in] 価格変化計算の平均期間(バーの数)
applied_price
[in] 使用される価格。ENUM_APPLIED_PRICE 価格定数のいずれか、または別の指標ハンドル。
戻り値
モメンタムのハンドル値(モメンタムの値を取得するための鍵のようなもの)
備考
MQL4とは違い、MQL5でモメンタムの値の取得がiMomentum関数だけでは完結しません。
- 値を格納する配列の宣言
- iMomentum関数関数によるハンドル(モメンタムの値を取得する鍵のようなもの)の取得
- ArraySetAsSeries関数による、配列の時系列セット
- CopyBuffer関数による、モメンタムの値情報を配列にコピー
↑以上の工程をたどる必要があります。
サンプルコード
#property copyright "MQL5ssei"
#property link      "https://mqlinvestmentlab.com/"
#property strict 
void OnTick()
  {
      double PriceArray[];
      //モメンタムの配列を格納する配列を用意
      
      int MomentumDefinition=iMomentum(_Symbol,_Period,14,PRICE_CLOSE);
      //モメンタムを計算するハンドルを取得する
      ArraySetAsSeries(PriceArray,true);
      //データを時系列にセット
      
      CopyBuffer(MomentumDefinition,0,0,3,PriceArray);
      //取得したハンドルを使って、配列にモメンタムの計算値を格納
      
      double MomentumValue=NormalizeDouble(PriceArray[0],2);
      //データの正規化
      //PriceArray[0]には現在足のモメンタムの値が格納されている
      if(MomentumValue>100.0)Comment("勢いが強い",MomentumValue);
      if(MomentumValue<99.9)Comment("勢いが弱い",MomentumValue);
      //コメント出力
      if(
            (MomentumValue>99.9)
            &&
            (MomentumValue<100.0)
        )
        {
         Comment(" ",MomentumValue);
        }
      
  }//void OnTick()
//+------------------------------------------------------------------+
OnTick関数については↓をご覧ください↓
Normalizedouble関数については↓をご覧ください
ArraySetAsSeries関数については↓をご覧ください。


 
  
  
  
  





コメント