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?
 
							




