iMomentum 関数
この関数は、任意に設定したパラメータのモメンタム値を計算して、その値を取得します。モメンタムはトレンド系のインジケータに分類されます。
モメンタム
モメンタム (Momentum) とは、市場のトレンドの速度や勢いを表す技術分析指標の1つです。価格変動の速さや方向性を計測することで、トレンドがどの程度強いか、反転の可能性が高まっているかなどを判断することができます。
モメンタムインジケータは、現在の価格と一定期間前の価格との差を計算し、その値を基にトレンドの方向性や勢いを示します。一般的には、期間が短いほど価格の変動に敏感になり、期間が長いほど滑らかなトレンドを表します。
たとえば、14日間のモメンタムを計算する場合、現在の価格を過去14日間前の価格で割り、その値に100をかけることで、パーセンテージで表されたモメンタムの値を得ることができます。モメンタムが高い場合は、トレンドが強く、低い場合はトレンドが弱いと判断されます。
MT4でチャート上にモメンタムをプロットする時はナビゲーター中のインディケータ → 「Momentum」インジケータを使用します。
(モメンタムの計算式)
モメンタム値 = ( ①(現在の)バー価格 ÷ ①のn本前のバー価格 ) ✕ 100
(モメンタムの使い方)
一般的に、モメンタムが上昇し続けている場合は上昇トレンドが強く、下降トレンドの場合はモメンタムが下降し続けていることが多いです。
モメンタムを使ったトレード戦略には、ダイバージェンスという手法があります。これは、相場のトレンドとモメンタムが逆方向に動いている場合に、トレンドの反転が起こる可能性が高いと考えるものです。たとえば、価格が上昇しているにもかかわらず、モメンタムが下降している場合は、相場が下落する可能性が高いと考えられます。逆に、価格が下降しているにもかかわらず、モメンタムが上昇している場合は、相場が上昇する可能性が高いと考えられます。
また、モメンタムを使ったトレード戦略には、オーバーボート/オーバーセルのレベルを利用する手法があります。たとえば、モメンタムが非常に高いレベルに達した場合には、相場がオーバーボートになっており、価格の調整が起こる可能性が高いと考えられます。逆に、モメンタムが非常に低いレベルに達した場合には、相場がオーバーセルになっており、価格の反転が起こる可能性が高いと考えられます。
データ型と構成・戻り値
double iMomentum(①, ②, ③, ④, ⑤);
戻り値は、任意に設定したパラメータのモメンタム値を計算して、その値を返します。
引数 [5]
iMomentum関数は 5個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 計算対象の通貨ペア名。 「NULL」は選択チャートの通貨ペア名が選択されます。 |
② | timeframe | int | - | - | 時間軸。ENUM_TIMEFRAMES 列挙値から選択。 「0」は現在チャートの時間軸が選択されます。 |
③ | period | int | - | - | モメンタムの計算期間。モメンタムを算出するバーの数を数値で設定します。 |
④ | applied_price | int | 決済の 通貨単位 | - | 適用価格。 ENUM_APPLIED_PRICE 列挙値から選択。 |
⑤ | shift | int | - | - | モメンタムを算出する位置。 現在のバーから指定した時間軸のバー数だけ過去へシフトします。たとえば、現在のバーからの計算は「0」、 1つ前のバーから計算する時は「1」になります。 |
使用例
iMomentum関数による14日間のモメンタム値
iMomentum関数を使って14日間のモメンタム値を算出します。コードに書いた iMomentum関数は、バーの終値を使用して、一つ前のモメンタム値求めています。(直近のモメンタム値は常に変動するため一つ前のモメンタム値を算出しています)
コード
// iMomentum関数による14日間のモメンタム値
#property strict
void OnInit() {
int period = 14; //期間
double a = iMomentum(NULL, 0, period, 0, 1); // モメンタム計算値
Print("モメンタム計算値:", a);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)