//+------------------------------------------------------------------+ //| 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: