トレンドの状態を確認 iOsMA 関数

関数

テクニカルインジケータ関数

iOsMA 関数

 この関数は、任意に設定したパラメータのOsMA(オシレータの移動平均)の値を計算して、その値を取得します。OsMAはオシレータ系のインジケータに分類されます。

OsMA

 OsMA (Moving Average of Oscillator [オシレータの移動平均])は、主にトレンドの強弱や転換点の確認に使用される指標です。

 OsMAは、MACD指標から派生したインジケータです。オシレータと移動平均を組み合わせた形式で、MACDとその移動平均のMACDシグナルの差を表します。MACDに比べて反応が早いという特徴があります。

MT4でチャート上にOsMAをプロットする時はナビゲーター中のインディケータ → 「OsMA」インジケータを使用します。

(OsMAの計算式)

 OsMAの計算方法は、MACDとMACDシグナルの差を求めることです。MACDとMACDシグナルは、それぞれ異なる期間の指数平滑移動平均線(EMA)を使って計算されます。

OsMAの計算式は以下のようになります。

OsMA = MACD - MACDシグナル
MACD = EMA(N1) - EMA(N2)
MACDシグナル = MACDのEMA(N3)
EMA:指数平滑移動平均線
N1~N3:期間(バーの数)。通常、N1=12、N2=26、N3=9 が使われます。

(OsMAの使い方)

 OsMAは、以下のように使われます。

① 0ラインのクロス
 OsMAが 0ラインを上方向にクロスすると、買いシグナルになります。逆に、下方向にクロスすると、売りシグナルになります。

② OsMAの値の変化
 OsMAの値の増減や振動の強さを確認することで、相場の勢いやトレンドの強弱を判断することができます。大きな正の値は上昇トレンドを示し、大きな負の値は下降トレンドを示す場合があります。

③ ダイバージェンス(ずれ)の確認
 OsMAの値と価格の動きとの間に生じるダイバージェンスをチェックすることで、トレンドの逆転や転換するタイミングを把握することができます。

 OsMAは主にトレンドの強弱や転換点の確認に使用される指標です。ただし、単独ではなく他のテクニカル指標や価格パターンとの組み合わせで使用することが推奨されます。

データ型と構成・戻り値

double iOsMA(①, ②, ③, ④, ⑤, ⑥, ⑦);

 戻り値は、任意に設定したパラメータのOsMAの値を計算して、その値を返します。

引数 [7]

 iOsMA関数は 7個の引数で構成されます。


引数名データ型単位初期値説明
symbolstring計算対象の通貨ペア名。
「NULL」は選択チャートの通貨ペア名が選択されます。
timeframeint時間軸。ENUM_TIMEFRAMES 列挙値から選択。
「0」は現在チャートの時間軸が選択されます。
fast_ema_periodint短期EMAの計算期間。短期EMAを計算するバーの数を数値で設定します。
slow_ema_periodint長期EMAの計算期間。長期EMAを計算するバーの数を数値で設定します。
signal_periodintシグナル線の計算期間。シグナル線を計算するバーの数を数値で設定します。
applied_priceint適用価格。
ENUM_APPLIED_PRICE 列挙値から選択。
shiftintOsMAの値を算出するバーの位置。
現在のバーから指定した時間軸のバー数だけ過去へシフトします。例えば、現在のバーからの計算は「0」、 1つ前のバーから計算する時は「1」になります。

使用例

iOsMA関数によるOsMA値の取得

 iOsMA関数を使って、現在のOsMA値を取得します。条件は次のとおりです。

 短期EMAの計算期間:12日間
 長期EMAの計算期間:26日間
 シグナル線の計算期間:9日間

コード

// iOsMA関数によるOsMA値の取得
#property strict
void OnInit() {

   int s_period = 12; // 短期EMAの計算期間
   int l_period = 26; // 長期EMAの計算期間
   int b_period = 9;  // シグナル線の計算期間

   double a = iOsMA(NULL, 0, s_period, l_period, b_period, 0, 0);
  
   Print("OsMA値:", a);
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

タイトルとURLをコピーしました