アルーンインジケーターの作成

 アルーンインジケーター(Aroon Indicator)とは、トレンドの有無・強弱を判断するために使用するインジケーターです(なお、「Aroon」とは、サンスクリット語で「夜明けの光」という意味です。)。

 アルーンインジケーターの計算式は、以下のとおりです。

  • アルーンアップ
    =(n日間-n日間中の最高値からの経過日数)÷n日間×100
  • アルーンダウン
    =(n日間-n日間中の最安値からの経過日数)÷n日間×100

 換言すれば、アルーンインジケーターは、「全計算期間中における、計算期間の初めから最高(安)値までの期間が占めている割合」を計算するもの、ということができます。

Aroon Up Calculation
アルーンアップは「N」に占める「N-D」の割合として算出される

 アルーンインジケーターによる一般的な取引ルールは、以下のとおりです。

  • 買いシグナル
    アルーンアップがアルーンダウンを下から上に上抜いたとき
    アルーンアップの値が「70~100」で、アルーンダウンの値が「0~30」であれば、強い上昇トレンドにあると判断。
    アルーンダウンが「50」を下回ったときに、下降トレンドの終わりが近いと判断。
  • 売りシグナル
    アルーンダウンがアルーンアップを下から上に上抜いたとき
    アルーンダウンの値が「70~100」で、アルーンアップの値が「0~30」であれば、強い下降トレンドにあると判断。
    アルーンアップが「50」を下回ったときに、上昇トレンドの終わりが近いと判断。

 なお、アルーンインジケーターは、以下の業者の取引ツールでも表示させることができます。

DMM FXは初心者向け

外為ジャパン

  1. 全体像
  2. #property命令の記述
  3. インジケーターバッファーの宣言
  4. 変数の宣言
  5. 基本設定の記述
  6. 具体的な処理内容
  7. 関連ツール
Aroon Indicator
アルーンインジケーター

1.全体像

 MetaTrader4(MT4)でインジケーターを作成するには、以下の手順に従ってプログラムを書いていくことになります。

  1. #property命令を記述する。
  2. インジケーターバッファーの宣言を行う。
  3. 変数の宣言を行う。
  4. init()関数内にインジケーターの基本的な設定を記述する。
  5. start()関数内に具体的な処理内容を記述する。

 具体的には、以下のようになります。

Download (PDF, 519KB)

>>目次に戻る

2.#property命令の記述

 #property命令とは、インジケーターの色、ラインの太さ、インジケーターを表示する場所などの、プログラム全体にかかわる設定を行うものです。

 #property命令の詳細については「こちら」を参照してください。

 「Arron Indicator.mq4」における、#property命令を記述した部分の解釈を示すと、以下のようになります。

Aroon Indicator #property
#property命令

⑴ サブウィンドウに表示させる

 #property indicator_separate_window命令によって、「Aroon Indicator.mq4」は、サブウィンドウに表示されます。

⑵ 2種類のデータを表示させる

 「Aroon Indicator.mq4」では、以下の2つのデータを表示させます。

  • アルーンアップ
  • アルーンダウン

 したがって、#property indicator_buffers命令には、「」を指定します。

⑶ 色を指定する

 「Aroon Indicator.mq4」で表示される2つのデータの表示色を指定します。

  • #property indicator_color1 Magenta
    1番目のインジケーターとしてアルーンアップを示すラインを指定する(後述)ので、#property indicator_color命令には「」を指定し、表示色を「Magenta」に指定しています。
  • #property indicator_color2 Aqua
    2番目のインジケーターとしてアルーンダウンを示すラインを指定する(後述)ので、#property indicator_color命令には「」を指定し、表示色を「Aqua」に指定しています。

⑷ 線の太さを指定する

 「Aroon Indicator.mq4」で表示される2つのデータの線の太さを指定します。

  • #property indicator_width1 1
    1番目のインジケーターとしてアルーンアップを示すラインを指定する(後述)ので、#property indicator_width命令には「」を指定し、線の太さを「1」に指定しています。
  • #property indicator_width2 1
    2番目のインジケーターとしてアルーンダウンを示すラインを指定する(後述)ので、#property indicator_width命令には「」を指定し、線の太さを「2」に指定しています。

⑸ インジケーターの最大値・最小値を指定する

 「Aroon Indicator.mq4」で表示されるデータは、「0」%から「100」%の間で推移するので、#property indicator_maximum命令には「100」を指定して、最大値を「100」に設定し、また、#property indicator_minimum命令には「」を指定して、最小値を「」に設定しています。

⑹ レベルを設定する

 アルーンインジケーターは、アルーンアップ(ダウン)が、「70」を超えたり、「30」を下回った場合をトレンド判断の基準の1つとします。

 そこで、アルーンインジケーターの値が「70」と「30」を示す位置に、#property indicator_level命令によって、レベルラインを表示するように設定しています。

⑺ レベルラインの色を指定する

 #property indicator_levelcolor命令によって、レベルラインの表示色を「White」に指定しています。

⑻ レベルラインの線種を指定する

 #property indicator_levelstyle命令によって、レベルラインの線種を「STYLE_DOT(=短音線)」に指定しています。

⑼ レベルラインの太さを指定する

 #property indicator_levelwidth命令によって、レベルラインの太さを「1」に指定しています。

>>目次に戻る

3.インジケーターバッファーの宣言

 インジケーターバッファーとは、インジケーターの計算に使用するデータを格納しておく配列のことをいいます。

 インジケーターバッファーの詳細については「こちら」を参照してください。

 「Aroon Indicator.mq4」における、インジケーターバッファーを宣言した部分の解釈を示すと、以下のようになります。

Aroon Indicator Buffer
インジケーターバッファーの宣言

⑴ double Aroon_Up[];

 アルーンアップの値を格納していく配列です。

⑵ double Aroon_Down[];

 アルーンダウンの値を格納していく配列です。

>>目次に戻る

4.変数の宣言

 「Aroon Indicator.mq4」では、アルーンインジケーターの計算期間をパラメーターとして指定します。

 アルーンインジケーターの計算期間は、インジケーターをチャートに適用した際に任意の値に設定することができるようにするため、以下に示すように、「外部変数」として宣言します。

extern int Aroon_Period = 14;

>>目次に戻る

5.基本設定の記述

 「Aroon Indicator.mq4」におけるinit()関数内に記述したコードについて解説します。

Initial Settings in Aroon
基本設定の記述

⑴ SetIndexBuffer()とは

 SetIndexBuffer()とは、MQL4であらかじめ定義されている関数で、各インジケーターバッファーを、インジケーターバッファー領域(データを一時的に蓄える領域)に割り当てるものです。

 SetIndexBuffer()関数の詳細については「こちら」を参照してください。

⑵ SetIndexLabel()とは

 SetIndexLabel()とは、MQL4であらかじめ定義されている関数で、データウィンドウにインジケーターの描画線の説明を表示させるものです。

 SetIndexLabel()関数の詳細については「こちら」を参照してください。

⑶ IndicatorShortName()とは

 IndicatorShortName()とは、MQL4であらかじめ定義されている関数で、データウィンドウとサブウィンドウに表示されるインジケーターの名前等を表示させるものです。

 IndicatorShortName()関数の詳細については「こちら」を参照してください。

⑷ SetIndexStyle()とは

 SetIndexStyle()とは、MQL4であらかじめ定義されている関数で、インジケーターの描画スタイル(線orヒストグラム、色など)を設定するものです。

 SetIndexStyle()関数の詳細については「こちら」を参照してください。

⑸ SetIndexDrawBegin()とは

 SetIndexDrawBegin()とは、MQL4であらかじめ定義されている関数で、インジケーターの描画を開始するバーの位置を指定するものです。

 SetIndexDrawBegin()関数の詳細については「こちら」を参照してください。

⑹ IndicatorDigits()とは

 IndicatorDigits()とは、MQL4であらかじめ定義されている関数で、インジケーターの値を、小数点以下何桁まで表示させるかを指定するものです。

 IndicatorDigits()関数の詳細については「こちら」を参照してください。

>>目次に戻る

6.具体的な処理内容

 「Aroon Indicator.mq4」のstart()関数内に記述したコードについて解説します。

Aroon Indicator Execution
具体的な処理内容

⑴ int limit = ……について

 「limit」という変数を、「Bars-IndicatorCounted()」を初期値として宣言しています。

 当該コードの詳細については「こちら」を参照してください。

⑵ アルーンアップの計算

ア 最高値からのバーの形成本数を算出する

 iHighest()関数を使用して、「Aroon_Periodの期間内で最高値を示現したバーの位置を取得し、その値から「iに格納されている値を減ずることによって、最高値からi番目のバーまでに、何本バーが形成されているかを算出しています。

 この値が、上述した「n日間中の最高値からの経過日数」に応答することになります。

 そして、当該値を変数「Aroon_Up_Difference」に代入しています。

  • iHighest()関数の詳細については「こちら」を参照してください。
イ アルーンアップの値を算出する
  1. (100÷Aroon_Period)×(Aroon_Up_Difference)を計算することによって、「全計算期間中における、最高値から『i』番目のバーまでの期間の占める割合)」を算出しています。
    (Aroon_Up_Difference÷Aroon_Period)×(100)としないのは、最高値を示現したバーが現在のバーであれば、「Aroon_Up_Differenceの値がとなり、Aroon_Periodで割ることができなくなることを避けるためです。
  2. アルーンアップの値は、「全計算期間中における、計算期間の初めから最高値を示現したバーまでの期間の占める割合)」なので、「100)」から上記1.で算出した値を控除しています。

⑶ アルーンダウンの計算

ア 最安値からのバーの形成本数を算出する

 iLowest()関数を使用して、「Aroon_Periodの期間内で最安値を示現したバーの位置を取得し、その値から「iに格納されている値を減ずることによって、最安値からi番目のバーまでに、何本バーが形成されているかを算出しています。

 この値が、上述した「n日間中の最安値からの経過日数」に応答することになります。

 そして、当該値を変数「Aroon_Down_Difference」に代入しています。

  • iLowest()関数の詳細については「こちら」を参照してください。
イ アルーンダウンの値を算出する
  1. (100÷Aroon_Period)×(Aroon_Down_Difference)を計算することによって、「全計算期間中における、最高値から『i』番目のバーまでの期間の占める割合)」を算出しています。
    (Aroon_Down_Difference÷Aroon_Period)×(100)としないのは、最安値を示現したバーが現在のバーであれば、 「Aroon_Down_Differenceの値がとなり、Aroon_Periodで割ることができなくなることを避けるためです。
  2. アルーンアップの値は、「全計算期間中における、計算期間の初めから最安値を示現したバーまでの期間の占める割合)」なので、「100)」から上記1.で算出した値を控除しています。

>>目次に戻る

7.関連ツール

インジケーターつくーる
インジケーターつくーる
インジケーターつくーる | fx-on.com

インジケーターつくーる
インジケーターつくーる | fx-on.com

 上記ツール(インジケーターつくーるインジケーターつくーる | fx-on.com)の詳細については「こちらインジケーターつくーる | fx-on.com」を参照してください。

 「インジケーターつくーる」の無料マニュアルは「こちら」からダウンロードできます。

>>目次に戻る


MT4の使い方からプログラミングまで、わかりやすく解説