移動平均線を作成してみる [ ・Custom Indicator作成]
移動平均線の作成をしてみる。線の色は赤。で間隔は14で。
●最初の部分を修正。
最初の部分こんな感じに変更。
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- buffers
double ExtMapBuffer1[];
//---- span
extern int Span = 14;
・最初の設定はいつもと同じ感じ。間隔は14の移動平均を引くのでextern int Span = 14;で指定。
●次にinit内を修正
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
//----
return(0);
}
・ここもいつもと同じ。
●最後にstartを修正。ここで移動平均の計算
int start()
{
//----
for(int i=0; i<Bars; i++){
ExtMapBuffer1[i] = 0;
for(int j=0;j<Span;j++){
ExtMapBuffer1[i]= ExtMapBuffer1[i] + Close[i+j];
}
ExtMapBuffer1[i] = ExtMapBuffer1[i]/Span;
}
//----
return(0);
}
・14個分の終値を足して14で割る。Close[0]が現在値なのでClose[1]、Close[2]。。。Close[13]まで足して14で割ったものを現時点のExtMapBuffer1[0]へ入れる。
・14個分の終値を足し始める前に保存用のExtMapBuffer1を0でクリア。
いつもと同じで、コンパイルしてエラーが無いことを確認。MetaTrader側のチャート上に表示されている指標を一旦削除して新たによみこむと
ここでちょっと問題。チャートの時間足を日足に変更して、チャートにマウスをあて左クリックして、右へ右へと画面スライドさせていくと、データ表示開始部分(14個分のデータがそろっていない部分)の表示がおかしくなる。過去なのでさほど気にならないが。
●最初の部分を修正。
最初の部分こんな感じに変更。
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- buffers
double ExtMapBuffer1[];
//---- span
extern int Span = 14;
・最初の設定はいつもと同じ感じ。間隔は14の移動平均を引くのでextern int Span = 14;で指定。
●次にinit内を修正
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
//----
return(0);
}
・ここもいつもと同じ。
●最後にstartを修正。ここで移動平均の計算
int start()
{
//----
for(int i=0; i<Bars; i++){
ExtMapBuffer1[i] = 0;
for(int j=0;j<Span;j++){
ExtMapBuffer1[i]= ExtMapBuffer1[i] + Close[i+j];
}
ExtMapBuffer1[i] = ExtMapBuffer1[i]/Span;
}
//----
return(0);
}
・14個分の終値を足して14で割る。Close[0]が現在値なのでClose[1]、Close[2]。。。Close[13]まで足して14で割ったものを現時点のExtMapBuffer1[0]へ入れる。
・14個分の終値を足し始める前に保存用のExtMapBuffer1を0でクリア。
いつもと同じで、コンパイルしてエラーが無いことを確認。MetaTrader側のチャート上に表示されている指標を一旦削除して新たによみこむと
ここでちょっと問題。チャートの時間足を日足に変更して、チャートにマウスをあて左クリックして、右へ右へと画面スライドさせていくと、データ表示開始部分(14個分のデータがそろっていない部分)の表示がおかしくなる。過去なのでさほど気にならないが。
タグ:MetaTrader
2009-05-24 09:55