_SECTION_BEGIN("NICK MA Swing"); SetBarsRequired(200,0); GraphXSpace = 10; SetChartOptions(0,chartShowArrows|chartShowDates); k = Param("K", 0.75, 1, 5, 0.1); Per = Param("ATR", 2, 1, 30, 0.50); k1 = Optimize("K", 0.75, 0.1, 5, 0.1); Per1 = Optimize("ATR", 2, 1, 30, 0.50); //HACLOSE=(O+H+L+C)/4; //HaOpen = AMA( Ref( HaClose, -1 ), 0.5 ); //HaHigh = Max( H, Max( HaClose, HaOpen ) ); //HaLow = Min( L, Min( HaClose, HaOpen ) ); //PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, "" + Name(), colorWhite, styleCandle | styleNoLabel ); MAPeriod = Param("EMA Period", 10, 1, 200); MAOpen = EMA(Open, MAPeriod); MAHigh = EMA(High, MAPeriod); MALow = EMA(Low, MAPeriod); MAClose = EMA(Close, MAPeriod); HaClose = (MaOpen + MaHigh + MaLow + MaClose) / 4; HaOpen = AMA(Ref(HaClose, - 1), 1.0); // for graph collapse //for (i = 0; i <= MAPeriod; i++) // HaClose[i] = Null; /* // same // HaOpen = (Ref(HaOpen, -1) + Ref(HaClose, -1)) / 2; HaOpen[ 0 ] = HaClose[ 0 ]; for(i = 1; i < BarCount; i++) { HaOpen[i] = (HaOpen[i - 1] + HaClose[i - 1]) / 2; */ HaHigh = Max(MaHigh, Max(HaClose, HaOpen)); HaLow = Min(MaLow, Min(HaClose, HaOpen)); // outs comments "BarIndex = " + BarIndex(); "Open = " + MaOpen; "High = " + MaHigh; "Low = " + MaLow; "Close = " + MaClose; "HaOpen = " + HaOpen; "HaHigh = " + HaHigh; "HaLow = " + HaLow; "HaClose = " + HaClose; j=Haclose; //======================================================================================================================= //=========================Indicator============================================================================================== f=ATR(14); rfsctor = WMA(H-L, Per); revers = k * rfsctor; Trend = 1; NW[0] = 0; for(i = 1; i < BarCount; i++) { if(Trend[i-1] == 1) { if(j[i] < NW[i-1]) { Trend[i] = -1; NW[i] = j[i] + Revers[i]; } else { Trend[i] = 1; if((j[i] - Revers[i]) > NW[i-1]) { NW[i] = j[i] - Revers[i]; } else { NW[i] = NW[i-1]; } } } if(Trend[i-1] == -1) { if(j[i] > NW[i-1]) { Trend[i] = 1; NW[i] = j[i] - Revers[i]; } else { Trend[i] = -1; if((j[i] + Revers[i]) < NW[i-1]) { NW[i] = j[i] + Revers[i]; } else { NW[i] = NW[i-1]; } } } } //===============system================ Plot(NW, "", IIf(Trend == 1, 5,4), 4,styleThick,styleDots); JBUY = J > NW; JSELL = J < NW ;