Próbuję napisać w MT4 wskaźnik który, w pewnym uproszczeniu, liczy średnią ze średniej itd kilka razy. Efektem finalnym wyliczeń powinna być ta ostateczna średnia, a nie cały wachlarz średnich pośrednich. Niby sprawa banalna, tym bardziej że jest instrukcja iMAOnArray wyliczająca średnią z tablicy.
Kod: Zaznacz cały
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Silver
#property indicator_color4 Yellow
#property indicator_width1 2
extern int okres=4;
double e1[], e2[], e3[], e4[], e5[], e6[];
int init()
{
// SetIndexBuffer(0,e1);
// SetIndexBuffer(1,e2);
// SetIndexBuffer(2,e3);
SetIndexBuffer(3,e4);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID);
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID);
SetIndexStyle (2,DRAW_LINE,STYLE_SOLID);
SetIndexStyle (3,DRAW_LINE,STYLE_SOLID);
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int i, limit;
Comment("0=", e3[0], " 1=", e3[1], " 2=", e3[2], " 3=", e3[3]);
int counted_bars=IndicatorCounted();
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(i=0; i<limit; i++)
e1[i]=iMA(NULL,0,okres,0,MODE_EMA,PRICE_CLOSE,i);
for(i=0; i<limit; i++)
e2[i]=iMAOnArray(e1,Bars,okres,0,MODE_EMA,i);
for(i=0; i<limit; i++)
e3[i]=iMAOnArray(e2,Bars,okres,0,MODE_EMA,i);
for(i=0; i<limit; i++)
e4[i]=iMAOnArray(e3,Bars,okres,0,MODE_EMA,i);
for(i=0; i<limit; i++)
e5[i]=iMAOnArray(e4,Bars,okres,0,MODE_EMA,i);
for(i=0; i<limit; i++)
e6[i]=iMAOnArray(e5,Bars,okres,0,MODE_EMA,i);
return(0);
}
Czy to taka cecha MT4, czy gdzieś popełniłem błąd?