MACD

Indicators

MACD


asimon 07-25-2006, 7:18 PM

public class iMACD
{
   int pSlowEMA, pFastEMA, pSignalEMA;
   iEMA slowEMA, fastEMA, signalEMA;

   // restriction: pPFastEMA < pPSlowEMA
   public iMACD(int pPFastEMA, int pPSlowEMA, int pPSignalEMA)
   {
      pFastEMA = pPFastEMA;
      pSlowEMA = pPSlowEMA;
      pSignalEMA = pPSignalEMA;


      slowEMA =
new iEMA(pSlowEMA);
      fastEMA =
new iEMA(pFastEMA);
      signalEMA =
new iEMA(pSignalEMA);
   }


   public void ReceiveTick(double Val)
   {
      slowEMA.ReceiveTick(Val);
      fastEMA.ReceiveTick(Val);
      if (slowEMA.isPrimed() && fastEMA.isPrimed())
      {
         signalEMA.ReceiveTick(fastEMA.Value()-slowEMA.Value());
      }
   }

   public void Value(out double MACD, out double signal, out double hist)
   {
      if (signalEMA.isPrimed())
      {
         MACD = fastEMA.Value() - slowEMA.Value();
         signal = signalEMA.Value();
         hist = MACD - signal;
      }
      else
      {
         MACD = 0;
         signal = 0;
         hist = 0;
      }
   }

   public bool isPrimed()
   { 
      bool v = false;
      if (signalEMA.isPrimed())
      {
         v =
true;
      }
      return v;
   }
}

Forex Lab .NET | 4X Lab .NET © Copyright 2005-2006 ASCSE LLC | Disclaimer

Powered by Community Server, by Telligent Systems