ma_i-CA





//+------------------------------------------------------------------+
//| Die Stärke des Corrected Average (CA) besteht darin,             |
//| dass der aktuelle Wert der Zeitreihe einen von der momentanen    |
//| Volatilität abhängigen Schwellenwert überschreiten muss,         |
//| damit der Filter steigt bzw. fällt, wodurch Fehlsignale          |
//| in trendschwachen Phasen vermieden werden.                       |
//| -A.Uhl-                                                          |
//+------------------------------------------------------------------+
//|Germany, 23.03.2007


#property copyright "A.Uhl, © RickD 2006, Alexander Piechotta"
#property link      "http://onix-trade.net/forum/"

#define major   1
#define minor   0


#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1  Gold

extern int MA.Period = 35;
extern int MA.method = MODE_SMA;
extern int MA.applied_price = PRICE_CLOSE;


double MABuf[];
double CABuf[];


void init()
{       
IndicatorBuffers(2);
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID,1);
SetIndexDrawBegin(0, MA.Period);

SetIndexBuffer(0, CABuf);
SetIndexBuffer(1, MABuf);

IndicatorShortName("Corrected Average (CA) ("+MA.Period+")");
}


void deinit(){
}  


void start() 
{
  int counted = IndicatorCounted();
  if (counted < 0) return (-1);
  
  if (counted > 0) counted--;
  int limit = Bars-counted;
  
  double v1, v2, k;
  
  for (int i=limit-1; i >= 0; i--)
  {
    MABuf[i] = iMA(NULL, 0, MA.Period, 0, MA.method, MA.applied_price, i);
    
    if (i == Bars-1) {
      CABuf[i] = MABuf[i];
      continue;
    }
    
    v1 = MathPow(iStdDev(NULL, 0, MA.Period, 0, MA.method, MA.applied_price, i), 2);
    v2 = MathPow(CABuf[i+1] - MABuf[i], 2);
    
    k = 0;
    if (v2 < v1 || v2 == 0) k = 0; else k = 1 - v1/v2;

    CABuf[i] = CABuf[i+1] + k*(MABuf[i]-CABuf[i+1]);
  }
}



Sample





Analysis



Market Information Used:



Indicator Curves created:

Implements a curve of type DRAW_LINE


Indicators Used:

Moving average indicator
Standard Deviation indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: