Problema manejando las señales del indicador MACD

 

Estoy haciendo un manejador de señales para MACD de la siguiente forma. Por el momento solo quiero saber cuando la curva principal atraviesa la línea de cero. Pero solo me funciona cuando la curva atraviesa la línea de cero de arriba hacia abajo y no alrevés. (adjunto captura). 

¿Alguna idea?



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)//Linea de barras

   {

        return iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,pos);

   }   

     

   double ZeroAcross(int pos=0)

   {

      if( (Main(1)>0.000f &&  Main(0)<0.000f) || (Main(1)<0.000f &&  Main(0)>0.000f) )

      {

          drawVerticalLine(0);     

     }

   }

};

     

Archivos adjuntos:
Sin_tktulo.png  47 kb
 
I Know the problem. it is  iMACD() functión return a negative zero sometimes. ¿Somebody Knows how to solve it?