_SECTION_BEGIN("MetaCandle"); BgColor=ParamColor("BgColor", colorBlack); SetChartBkGradientFill( BgColor, BgColor, BgColor); upcolor=ParamColor("Up color ", colorGreen); downcolor=ParamColor("Down color ", colorRed); barcolor=IIf(C>Ref(C, -1), upcolor, downcolor); Insidecolor=IIf(CRef(Max(Max(H, Ref(H, -20)), Max(Ref(H, -10), Ref(H, -15))), -1), Min(Min(L, Ref(L, -20)), Min(Ref(L, -10), Ref(L, -15))), IIf(CRef(state, -1); ss=stateRef(res, -1), 1, IIf(CMDI(10)AND Signal(29)PDI(20)AND Signal(29)>MACD(13); Plot( 2, /* defines the height of the ribbon in percent of pane width */"ribbon", IIf( uptrend, colorGreen, IIf( downtrend, colorRed, 0 )), /* choose color */ styleOwnScale|styleArea|styleNoLabel, -0.5, 100 ); _SECTION_END(); Buy = s AND a AND uptrend ; Short = ss AND b AND downtrend ; Sell = ss AND b AND downtrend ; Cover = s AND a AND uptrend ; Buy=ExRem(Buy, Sell); Sell=ExRem(Sell, Buy); Cover=ExRem(Cover, Short); Short=ExRem(Short, Cover); Filter=Buy OR Sell; Filter= Cover OR Short; AddColumn( Buy, "Buy", 1); AddColumn(Sell, "Sell", 1); AddColumn(Close, "Close", 1.2); AddColumn(Volume, "Volume", 1.0); // Plot the Buy and Sell arrows. shape = Buy * shapeUpArrow + Sell * shapeDownArrow; PlotShapes(IIf(Buy, shapeSquare, shapeNone), colorGreen, 0, L, Offset=-10); PlotShapes(IIf(Buy, shapeSquare, shapeNone), colorLime, 0, L, Offset=-20); PlotShapes(IIf(Buy, shapeUpArrow, shapeNone), colorWhite, 0, L, Offset=-15); PlotShapes(IIf(Sell, shapeSquare, shapeNone), colorRed, 0, H, Offset=20); PlotShapes(IIf(Sell, shapeSquare, shapeNone), colorOrange, 0, H, Offset=30); PlotShapes(IIf(Sell, shapeDownArrow, shapeNone), colorWhite, 0, H, Offset=-25); //plot volume graph // set background gradient colours //SetChartBkGradientFill( ParamColor("BgTop", ColorRGB( 172, 172, 172 )), ParamColor("BgBottom", ColorRGB( 102, 136, 187 )), ParamColor("titleblock", ColorRGB( 255, 255, 255 ))); _SECTION_BEGIN("Supertrend"); procedure calcTrend_proc(ATR_Period, tr, ATR_Multiplier, TrendMode, CalcPrice) { global buffer_line_down; global buffer_line_up; buffer_line_down = Null; buffer_line_up = Null; PHASE_NONE = 0; PHASE_BUY = 1; PHASE_SELL = -1; phase=PHASE_NONE; band_upper = 0;band_lower = 0; for(i = ATR_Period + 1; i < BarCount; i++) { band_upper = CalcPrice[i] + ATR_Multiplier * tr[i]; band_lower = CalcPrice[i] - ATR_Multiplier * tr[i]; if(phase==PHASE_NONE) { buffer_line_up[i] = CalcPrice[i]; buffer_line_down[i] = CalcPrice[i]; } if(phase!=PHASE_BUY && Close[i]>buffer_line_down[i-1] && !IsEmpty(buffer_line_down[i-1])) { phase = PHASE_BUY; buffer_line_up[i] = band_lower; buffer_line_up[i-1] = buffer_line_down[i-1]; } if(phase!=PHASE_SELL && Close[i]buffer_line_up[i-1]) { buffer_line_up[i] = band_lower; } else { buffer_line_up[i] = buffer_line_up[i-1]; } } if(phase==PHASE_SELL && ((TrendMode==0 && !IsEmpty(buffer_line_down[i-2])) || TrendMode==1) ) { if(band_upper