Как брать только первый сигнал трендового индикатора если он ставит стрелки на каждый бар?

 

Всем привет! Есть трендовый индикатор работающий через прокладку, он ставит стрелки на каждую свечу, как можно сказать советнику брать сигнал после смены тренда с 2-3 бара, остальные больше не смотреть. И брать только противоположный в следующий раз и так по кругу. Либо может это как-то реализовать в прокладке для индюка?

Код выводящий сигнал из прокладки:

bool fun_main1 (string up_dn, int index)
 {
  double _b = EMPTY_VALUE;
  double _s = EMPTY_VALUE;

                    _b = iCustom(NULL, 0, name_ind1, bufferUP1, index);
                    _s = iCustom(NULL, 0, name_ind1, bufferDN1, index);
                     if(up_dn=="up")
                        {
                         if( _b!=EMPTY_VALUE && _b!=0 ) return(true); else return(false);
                         }
                     if(up_dn=="dn")
                        {
                         if( _s!=EMPTY_VALUE && _s!=0 ) return(true); else return(false);
                         }
  return(false);
  }


Код совы:

   MacdCurrent=iCustom(NULL,0,short_name,bufferUP,IndexSig);
   SignalCurrent=iCustom(NULL,0,short_name,bufferDN,IndexSig);
    if(! TpSlpips == false && CheckNews<=0)
    {
   if((ObjRevers && MacdCurrent<SignalCurrent) || (!ObjRevers && MacdCurrent>SignalCurrent))
     {
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+SLOptimized()*Point,Bid-TPOptimized()*Point,"",16384,0,Red);
      return;
     }
   if((ObjRevers && MacdCurrent>SignalCurrent) || (!ObjRevers && MacdCurrent<SignalCurrent))
     {
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-SLOptimized()*Point,Ask+TPOptimized()*Point,"",16384,0,Green);
      return;
     }
Файлы:
w2en7yp.png  69 kb
 
Вам нужен буферный массив в который вы будете с помощью CopyBuffer функции копировать из вашего индикатора указанное кол-во последних свечей. А потом проверять бары на условия.


 
Petr Zharuk #:
Вам нужен буферный массив в который вы будете с помощью CopyBuffer функции копировать из вашего индикатора указанное кол-во последних свечей. А потом проверять бары на условия.


CopyBuffer в mql4 нету.