Stock Portfolio Organizer
The ultimate porfolio management solution.
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
KMACD for Amibroker (AFL)
KMACD – A variation of MACD to catch big trends by Karthik Marar
Visit: http://karthikmarar.blogspot.com/2013/05/kmacd-variation-of-macd-to-catch-big.html
To read about it.
Similar Indicators / Formulas
Indicator / Formula
//A new MACD Indicator KMACD Version V.1.0 // By Karthik Marar - www.karthikmarar.blogspot.com // Public release for personal use only. //Please do not commercialize this indicator in its original or modified form _SECTION_BEGIN("Dominant Period"); SetBarsRequired( 1000, 1000); prc = ( High + Low ) / 2; Cyclepart = 0.7 ; pi=4*atan(1); RTD=180/pi; DTR=pi/180; Smooth[0] = Detrender[0] = I1[0] = Q1[0] = jI[0] = jQ[0] = I2[0] = I3[0] = Q3[0] = Q2[0] = Re[0] = Re1[0] =Im[0] = Im1[0] = 0; Period[0] = Period1[0] = alpha = cycle = SmoothPeriod[0] = imagpart[0] = realpart[0] = DCPhase[0] = 0; for ( i = 6; i < BarCount; i++ ) { Smooth[i] = ( 4 * prc[i] + 3 * prc[i-1] + 2 * prc[i-2] + prc[i-3] ) / 10; Cycle[i] = ((1-0.5*alpha[i])^2)*(Smooth[i] - 2*Smooth[i-1] + Smooth[i-2]) + 2*(1-alpha[i])*Cycle[i-1] - ((1-alpha[i])^2)*Cycle[i-2]; AmpCorr[i] = 0.075 * Period[i-1] + 0.54; Detrender[i] = ( 0.0962 * Smooth[i] + 0.5769 * Smooth[i-2] - 0.5769 * Smooth[i-4] - 0.0962 * Smooth[i-6] ) * AmpCorr[i]; Q1[i] = ( 0.0962 * Detrender[i] + 0.5769 * Detrender[i-2] - 0.5769 * Detrender[i-4] - 0.0962 * Detrender[i-6] ) * AmpCorr[i]; I1[i] = Detrender[i-3]; jI[i] = ( 0.0962 * I1[i] + 0.5769 * I1[i-2] - 0.5769 * I1[i-4] - 0.0962 * I1[i-6] ) * AmpCorr[i]; jQ[i] = ( 0.0962 * Q1[i] + 0.5769 * Q1[i-2] - 0.5769 * Q1[i-4] - 0.0962 * Q1[i-6] ) * AmpCorr[i]; I2[i] = I1[i] - jQ[i]; Q2[i] = Q1[i] + jI[i]; I3[i] = 0.2 * I2[i] + 0.8 * I3[i-1]; Q3[i] = 0.2 * Q2[i] + 0.8 * Q3[i-1]; Re[i] = I3[i] * I3[i-1] + Q3[i] * Q3[i-1]; Im[i] = I3[i] * Q3[i-1] - Q3[i] * I3[i-1]; Re1[i] = 0.2 * Re[i] + 0.8 * Re1[i-1]; Im1[i] = 0.2 * Im[i] + 0.8 * Im1[i-1]; { if ( Im1[i] != 0 AND Re1[i] != 0 ) Period1[i] = 360*DTR / atan( Im1[i] / Re1[i] ); else Period1[i] = Period1[i-1]; } { if ( Period1[i] > 1.5 * Period1[i-1] ) Period2[i] = 1.5 * Period1[i-1]; else { if ( Period1[i] < 0.67 * Period1[i-1] ) Period2[i] = 0.67 * Period1[i-1]; else Period2[i] = Period1[i]; } } { if ( Period2[i] < 6 ) Period3[i] = 6; else { if ( Period2[i] > 50 ) Period3[i] = 50; else period3[i]=Period2[i]; } } Period[i] = 0.2 * Period3[i] + 0.8 * Period[i-1]; SmoothPeriod[i] = 0.33 * Period[i] + 0.67 * SmoothPeriod[i-1]; DCPeriod[i] = int(SmoothPeriod[i]+0.5); } SetChartBkColor(colorWhite); sp=DCperiod; _SECTION_END(); slowper = 2/(sp+1); EMAp =Param("EMA Period",14,5,60,1); VARma = AMA(C,slowper); OEMA = EMA(C,EMAp); MACDee = OEMA - Varma; j = MACDee; SetBarFillColor(IIf(MACDee>0,colorLime,colorRed)); PlotOHLC(0,j,0,j,EncodeColor(colorBlue)+"KMACD - V.1.0"+"("+WriteVal(EMAp,0)+","+WriteVal(dcperiod,0)+")",IIf(MACDee>0,colorLime,colorRed), styleCandle |styleOwnScale) ;
5 comments
Leave Comment
Please login here to leave a comment.
Back
looks into the future…….
It does not look into the future… the code involves simple EMAs which definitely does not look into future.
It seems that the formula references FUTURE quotes.
If you backtest this system you may receive outstanding results
that CAN NOT be reproduced in real trading.
2045 data bars used during this check. Total execution time: 0.0194811 sec.
Approximately 1528 past and 1000 future quotes are needed to calculate the formula properly
Rob it’s most likely due to this statement:
Yes, you are right administrator. My sincere apologies, karthikmarar!