Отрицательный ноль Проблема - обработка сигналов индикатора MACD (MQL) - PullRequest
0 голосов
/ 01 мая 2019

Я делаю обработчик сигнала для индикатора MACD следующим образом. Сейчас я просто хочу знать, когда основная кривая пересекает нулевую линию. Но это работает только тогда, когда кривая пересекает нулевую линию сверху вниз, а не назад. (прикрепленный снимок).

UPDATE Я знаю проблему. это функция iMACD (), которая иногда возвращает отрицательный ноль. ¿Кто-нибудь знает, как это решить?

class MACD

{



public:

   MACD()
   {    
   }



   double Signal(int pos=0)    
   {    
       return iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,pos);    
   }



   double Main(int pos=0)    
   {    
        return iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,pos);    
   }   



   double ZeroAcross()    
   {

      if( (Main(1)>0 &&  Main(0)<0) || (Main(1)<0 &&  Main(0)>0) )    
      {    
          drawVerticalLine(0);         
     }

   }

};



MACD macd;
int start()
{
    mcd.ZeroAcross();
}

introducir la descripción de la imagen aquí

...