【MQL5】iMACD関数について

MQL5リファレンス
スポンサーリンク

iMACD関数の働き・役割

iMACD関数は、MACD移動平均収束拡散手法)のハンドルを返します。
MACDは、トレンドの強さや方向性を判断するために使用される指標で、2本のラインとして表示されます。MACDラインとシグナルラインの差がMACDヒストグラム(トレンドの変化を視覚的に示す棒グラフ)として表示されることもあります。

MACDについての詳細は↓の記事をご参照ください。

iMACD関数の引数について

iMACD関数引数構成は以下の通りです。

int iMACD(
  string              symbol,              // 銘柄名
  ENUM_TIMEFRAMES     period,              // 期間
  int                 fast_ema_period,     // 高速移動平均計算の期間
  int                 slow_ema_period,     // 低速移動平均計算の期間
  int                 signal_period,       // シグナル線の計算期間
  ENUM_APPLIED_PRICE  applied_price        // 価格の種類かハンドル
);

各引数の説明

  1. symbol
    • データが指標計算に使用されるシンボル名を指定します。NULLを指定すると現在のシンボルを使用します。
  2. period
    • 期間を指定します。ENUM_TIMEFRAMES列挙の値の1つで、0を指定すると現在の時間軸を意味します。
  3. fast_ema_period
  4. slow_ema_period
  5. signal_period
    • シグナル線の計算期間を指定します。
  6. applied_price

iMACD関数の戻り値について

iMACD関数は、指定されたテクニカル指標ハンドルを返します。失敗した場合はINVALID_HANDLEを返します。取得したハンドルは、使用後にIndicatorRelease関数を使用して解放することができます。

iMACD関数を使う際の注意点

iMACD関数を使用する際には、次の点に注意する必要があります。まず、取得したハンドルは使用後に必ず解放してください。解放しないとメモリリークの原因となります。また、バッファ番号は0がMAIN_LINE、1がSIGNAL_LINEを表します。
<参照>

シングルバッファインジケータ

マルチバッファインジケータ

iMACD関数を使ったサンプルコード

以下は、iMACD関数を使用してMACDハンドル値を取得し、その後各値を取得するサンプルコードです。

サンプルコードに使われた関数や文法要素の簡単な解説

OnStart関数

OnStart関数スクリプトの実行が開始されたときに自動的に呼び出される関数です。この中にスクリプトの処理内容を記述します。

iMACD関数

iMACD関数MACDハンドルを取得する関数です。引数には、銘柄名、期間、高速移動平均計算の期間、低速移動平均計算の期間、シグナル線の計算期間、適用価格を指定します。

CopyBuffer関数

CopyBuffer関数は指定されたインジケータバッファ(データを一時的に保存する領域)からデータをコピーする関数です。取得したデータは配列に格納されます。

CopyBuffer関数を2回呼び出しているのは、MACDには2つの主要なライン(MACDラインとシグナルライン)があるためです。最初のCopyBuffer関数呼び出しでは、MACDラインのデータをコピーし、2回目の呼び出しではシグナルラインのデータをコピーしています。これにより、MACDの2つの重要なデータを個別に取得し、それぞれを分析することができます。

IndicatorRelease関数

IndicatorRelease関数は使用したインジケータハンドルを解放する関数です。メモリリーク(メモリが解放されずに無駄に消費され続けること)を防ぐために、インジケータの使用後には必ず呼び出します。

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