機能
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関数については↓をご覧ください。
コメント