// Downloaded From https://www.WiseStockTrader.com /****************************/ /* */ /* Quadra Trading System */ /* Version 1.30 */ /* (11 August 2012) */ /* */ /****************************/ SetChartOptions(0, chartShowDates | chartWrapTitle); /**********************/ /* */ /* Define Wilder's MA */ /* */ /**********************/ function WilderMA(Field, Period) { X[0] = Field[0]; for(i = 1; i < BarCount; i++) { X[i] = Field[i]/Period + X[i - 1] * (Period - 1)/Period; } return X; } /**********************/ /* */ /* Define EMA */ /* */ /**********************/ function MyEMA(Field, Period) { Y[0] = Field[0]; for(i = 1; i < BarCount; i++) { Y[i] = (Field[i] - Y[i - 1]) * 2/(Period + 1) + Y[i - 1]; } return Y; } /********************/ /* */ /* Wilder's MAs */ /* */ /********************/ A1 = WilderMA(C, 5); A2 = WilderMA(C, 8); A3 = WilderMA(C, 13); A4 = MyEMA(C, 50); /********************/ /* */ /* Candle Color */ /* */ /********************/ Green = C > O; Red = C < O; for(i = 1; i= C[i - 1]) Green[i] = 1; if(Red[i - 1] AND C[i] <= C[i - 1]) Red[i] = 1; } } /********************/ /* */ /* COMPUTE SL */ /* */ /********************/ PrevHi = H; PrevLo = L; SLBuy = Null; SLShort = Null; GUp = GapUp(); GDn = GapDown(); for(i = 2; i < BarCount; i++) { PrevLo[i] = PrevLo[i - 1]; if(L[i - 2] >= L[i - 1] AND L[i - 1] <= L[i]) { PrevLo[i] = L[i - 1]; } PrevHi[i] = PrevHi[i - 1]; if(H[i - 2] <= H[i - 1] AND H[i - 1] >= H[i]) { PrevHi[i] = H[i - 1]; } } /********************/ /* */ /* BUY/SELL */ /* */ /********************/ Buy = (A1 > A2 AND A2 > A3); Sell =(A1 < A2 AND A2 < A3); Buy = ExRem(Buy, Sell); Sell = ExRem(Sell, Buy); Bought = Flip(Buy, Sell); Sold = Flip(Sell, Buy); for(i = 1; i SLShort[i - 1]) SLShort[i] = SLShort[i - 1]; } Marker1 = Buy * shapeUpArrow + Sell * shapeDownArrow; MarkerColor = IIf(Buy, colorBrightGreen, colorYellow); Marker1Dist = IIf(Buy, 0.995 * L, 1.005 * H); EMA_Position = IIf(A4 > A3 AND A4 > A2 AND A4 > A1, 1, IIf(A4 < A3 AND A4 < A2 AND A4 < A1, -1, 0)); /***********************/ /* */ /* SHOW/HIDE Option */ /* */ /***********************/ Arrows = ParamToggle("Show Arrows", "NO|YES"); ShowTSL= ParamToggle("Show TSL Line", "NO|YES"); _N(Title = EncodeColor(colorAqua) + "QUADRA EOD TRADING SYSTEM by Savant Garde; AFL Version 1.30 by Anant Navale\n\n" + EncodeColor(colorPink) + StrFormat("{{NAME}}({{INTERVAL}}), {{DATE}} : {{OHLCX}}, Vol=%1.0f\n{{VALUES}}\n", V) + "EMA50 location: " + EncodeColor(colorBrightGreen) + WriteIf(EMA_Position > 0, "Above, ", "") + EncodeColor(colorLightGrey) + WriteIf(EMA_Position == 0, "Inside, ", "") + EncodeColor(colorRed) + WriteIf(EMA_Position < 0, "Below, ", "") + EncodeColor(colorBrightGreen) + WriteIf(Green, " Green Candle", "") + EncodeColor(colorRed) + WriteIf(Red, " RedCandle\n\n", "\n\n") + EncodeColor(colorWhite) + WriteIf(Buy, "Buy Above " + (H + 0.1), "") + WriteIf(Sell, "Sell Below " + (L - 0.1), "") + WriteIf(Buy, " StopLoss = " + SLBuy, "") + WriteIf(Sell, " StopLoss = " + SLShort, "")); if(Status("action") == actionIndicator) { Plot(A4, "EMA50", colorLightGrey, styleLine | styleThick); Plot(A3, "Wilder MA13", colorRed, styleLine); Plot(A2, "Wilder MA8", colorLightOrange, styleLine); Plot(A1, "Wilder MA5", colorBrightGreen, styleLine); if(ShowTSL) { Plot(SLBuy, "SL for Buy", colorLightBlue, styleDots); Plot(SLShort, "SL for Short", colorGold, styleDots); } Plot(C, "", IIf(Green, colorGreen, IIf(Red, colorRed, colorGrey50)), styleCandle); if(Arrows) { PlotShapes(Marker1, MarkerColor, 0, MArker1Dist); } } if(Status("action") == actionExplore) { Filter = Buy | Sell; SetOption("NoDefaultColumns", True); AddTextColumn(Name(), "SYMBOL"); AddColumn(DateTime(), "DATE", formatDateTime); AddColumn(IIf(Buy, 66, 83), "TRIGGER", formatChar, colorWhite, IIf(Buy, colorGreen, colorRed)); AddColumn(EMA_Position, "EMA Position",1.0); AddColumn(IIf(Buy, H + 0.1, L - 0.1), "TRIG PRICE", 1.2); AddColumn(IIf(Buy, SLBuy, SLShort), "Stop Loss", 1.2); AddColumn(C, "Last Close", 1.2); }