iCustom из эксперта

 

Подскажите.

Есть индикатор:

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

extern int m1=100;
extern int m2=14;
double Buf_0[],Buf_1[],Buf_2[],Buf_3[],Buf_4[];

int init()  {   
   SetIndexBuffer(0,Buf_0);
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
   ArraySetAsSeries(Buf_4,true);
   ArraySetAsSeries(Buf_3,true);
   ArraySetAsSeries(Buf_2,true);
   ArraySetAsSeries(Buf_1,true);
   return; 
}

int deinit()  {return(0);}

int start()  {   
   int i,Counted_bars;
   ArrayResize(Buf_4,ArraySize(Buf_0)); 
   ArrayResize(Buf_3,ArraySize(Buf_0)); 
   ArrayResize(Buf_2,ArraySize(Buf_0)); 
   ArrayResize(Buf_1,ArraySize(Buf_0)); 
    
   Counted_bars=IndicatorCounted();
   for(i=Bars-Counted_bars-1; i >=0; i--)  {Buf_1[i]=iMA(NULL,0,m1,0,MODE_LWMA,PRICE_CLOSE,i);}
   for(i=Bars-Counted_bars-1; i >=0; i--)  {Buf_2[i]=iMA(NULL,0,m1,0,MODE_LWMA,PRICE_OPEN,i);}
   for(i=Bars-Counted_bars-1; i >=0; i--)  {Buf_3[i]=iMAOnArray(Buf_1,0,m2,0,MODE_LWMA,i);}
   for(i=Bars-Counted_bars-1; i >=0; i--)  {Buf_4[i]=iMAOnArray(Buf_2,0,m2,0,MODE_LWMA,i);}
   for(i=Bars-Counted_bars-1; i >=0; i--)  {Buf_0[i]=(Buf_3[i]-Buf_4[i])*1000;}
   return;
}

, котоый рисует достаточно гладкую кривульку:

Теперь пишем такой эксперт:

static int prevtime = 0;

double TestSt;
int    TradeSt;       

int init() {return(0);}
int deinit() {return(0);}
int start()  {
   if (Time[0] == prevtime) return(0);
   prevtime = Time[0];
   double a0 = iCustom(NULL,0,"gr_MultiMA_Lt",80,14,0,1);
   double a1 = iCustom(NULL,0,"gr_MultiMA_Lt",80,14,0,2);
   double a2 = iCustom(NULL,0,"gr_MultiMA_Lt",80,14,0,3);
  
   if( (a0>a1)&&(a1<a2))  {
            
      ...Buy...

   }  
   if( (a0<a1)&&(a1>a2))  {
      
      ...Sell...

   }   
   return(0) }

тестер стратегии выдает вот такую картинку:

что то не так с iСustom, но что, понять не могу...

 
Не с iCustom, а с индикатором. Всё не так
 
Integer:
Не с iCustom, а с индикатором. Всё не так
А можно, если не сложно, поподробнее
 
Замените Buf_1[],Buf_2[],Buf_3[],Buf_4[] на индикаторные буферы, такие же как Buf_0[]
 
Greеen, что получилось? Интересный индюк.
 

Привет.

Вот что получилось у меня


Файлы:
ma_greeen.mq4  3 kb
 
Dm_35 писал (а):  Вот что получилось у меня

А как это у Вас получилось? Сделки советника не вполне соответствуют сигналам индикатора. Откройте страшную тайну - чем фильтровали?

 

Привет.

Не фильтровал, даже не оптимизировал, советник так работает :)

Файлы:
 
granit77:
Dm_35 писал (а): Вот что получилось у меня

А как это у Вас получилось? Сделки советника не вполне соответствуют сигналам индикатора. Откройте страшную тайну - чем фильтровали?

Допускается один ордер, выход по стоплос/тейкпрофит, вход на любой по счету точке соответсвующего цвета, а не в момент смены цвета.

 
Не совсем так, очень извиняюсь, есть всё же фильтр по времени работы советника, а сделки открываются при пересечении основной линии с сигнальной, выход при смене сигнала, тэйка и стопа нет.