SSブログ

線を2本表示してみる [ ・Custom Indicator作成]

終値を結んだ線を表示してみたが、今度は2本線を表示してみる。高値を結んだ線(色は赤)と安値を結んだ線(色は青)。表示画面はメインチャートへ表示。

●最初の部分を修正。
最初の部分こんな感じに変更。

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];

・1本の線のときは#property indicator_buffers 1となっていたが2本分のデータを保存するので#property indicator_buffers 2へ変更。indicator_color1 が1本目の線の色indicator_color2 が2個目の線の色

・1本の線のときはExtMapBuffer1だけだったが、もう1本分の線の情報を保存しておく為ExtMapBuffer2を追加。高値保存用にExtMapBuffer1、安値保存用にExtMapBuffer2。

●次にinit内を修正
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexBuffer(1,ExtMapBuffer2);
//----
return(0);
}

SetIndexStyleなるものが線の種類を指定するものらしい。今回でいうと、SetIndexStyle(0,DRAW_LINE);で1本目、でSetIndexStyle(1,DRAW_LINE);で2本目。

SetIndexBufferなるものが格納したデータ(ExtMapBuffer1)を画面上へ表示させるしくみになっているみたいなので、2本分おんなじようにおこなう。

●最後にstartを修正。こんな感じ。高値と安値を最初に指定したExtMapBuffer1、ExtMapBuffer2へ入れる。
int start()
{
//----
for(int i=0; i<Bars; i++){
ExtMapBuffer1[i] = High[i];
ExtMapBuffer2[i] = Low[i];
}
//----
return(0);
}

いつもと同じで、コンパイルしてエラーが無いことを確認。MetaTrader側のチャート上に表示されている指標を一旦削除して新たによみこむと
14.JPG
2本の線が表示されました。

タグ:MetaTrader

共通テーマ:マネー

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。