Welcome to 4XLab.NET : Forex Lab Community Server Sign in | Join | Faq

Indicators

Started by asimon at 07-25-2006 7:18 PM. Topic has 0 replies.

Print Search
Sort Posts:    
   07-25-2006, 7:18 PM
asimon is not online. Last active: 2/27/2011 4:55:19 PM asimon

Top 10 Posts
Joined on 03-07-2006
Posts 140
MACD

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;
   }
}


   Report 
4XLab.NET : For... » 4XLab.NET » Indicators » MACD

Powered by Community Server, by Telligent Systems