基本的には、こちらの記事の続きです。
iCustom()関数を使って、EAを作る場合、一番めんどうなのが、元のインジケーターから必要なデータを取り出す際に、どの配列がどのグラフに対応しているかを特定する作業です。
最近、これを瞬時に実現してくれる別途インジケーターを新たに作成してそれを利用しています。
まずは、上のように、基本的な書式の設定と外部パラメーターを設置します。
外部パラメーターの下から2つ目は、元のインジケーターと別途インジケーターとでグラフが重なってみにくい場合にわざとずらすためのものです。
一番下のCODEは、メタトレーダーのWingdingsの番号で、
上の中から好きな記号を選べるようにしてあります。
次に、上のように、配列の宣言や割り当てなどを記述し、SetIndexArrow()で、外部パラメーターを参照させます。
あとは、スタート関数内に上のように記述して、
①外部パラメーターで指定したバー上にある、0番から7番までのすべての配列の値を画面左上に表示させるとともに、
②外部パラメーターで指定した配列番号のグラフの「近辺」に、別途インジケーターを表示させます。
この別途インジケーターを実行すると、上のように、元のインジケーターの指定した配列番号によるグラフ上に別途記号が並びます。この例でいうと、ボリンジャーバンドの真ん中のグラフが元のインジケーターの0番の配列に対応していることが一発でわかります。
二つのグラフが重なってみにくい場合には、外部パラメーターのDIFFの値を適当にいじると、
上のように、元のインジケーターグラフと別途インジケーターの記号が上下にずれて、確認がしやすくなります。
なお、チャート左上の青丸の部分を拡大すると、
外部パラメーターで指定したバーの位置にある0番から7番までの配列の値がすべて表示され、これによっても、元のインジケーターと各配列との対応関係を確認することができます。
なお、サブウインドウに表示されるインジケーターの場合には、
上の赤線の部分を、
#property indicator_separate_window
と変更すればOKです。
コメントをお書きください
EA太郎 (金曜日, 06 3月 2015 22:14)
これは使えますね。そのままパクらせていただきました。ありがとうございます。
easakuseidaiko (月曜日, 09 3月 2015 18:05)
>EA太郎さん
いつもコメントありがとうございます。励みになります。