Quadra Trading System – Amibroker AFL

quadra-trading-systemQuadra Trading System is best amibroker afl for the EOD based analysis .so be careful and calculated their value and show result get lot money.

Similar Formulas

/****************************/
/*                          */
/*  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<BarCount; i++)
 {
  if(C[i] == O[i])
   {
    if(Green[i - 1] AND C[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 <BarCount; i++)
 {
  SLShort[i] = Min(PrevHi[i], PrevHi[i - 1]) + 0.1;
  if(GDn[i]) SLShort[i] = L[i - 1] + 0.1;
  if(Sell[i]) break;
 }
for(i = 1; i <BarCount; i++)
 {
  SLBuy[i] = Max(PrevLo[i], PrevLo[i - 1]) - 0.1;
  if(GUp[i]) SLBuy[i] = H[i - 1] - 0.1;
  if(Buy[i]) break;
 }

for(i = 1; i < BarCount; i++)
 {
  if(Buy[i]) SLBuy[i] = PrevLo[i - 1] - 0.1;
  if(Bought[i]) SLBuy[i] = Max(SLBuy[i - 1], PrevLo[i] - 0.1);
  if(GUp[i]) SLBuy[i] = H[i - 1] - 0.1;

  if(Sell[i]) SLShort[i] = PrevHi[i - 1] + 0.1;
  if(Sold[i]) SLShort[i] = Min(PrevHi[i - 1], PrevHi[i]) + 0.1;
  if(GDn[i]) SLShort[i] = L[i - 1] + 0.1;
 }
for(i = 1; i<BarCount; i++)
 {
  if(SLShort[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);
 }

Disclaimer

There is a substantial risk of loss associated with trading in Stock Markets. Losses can and
will occur. No responsibility for loss occurred to any person acting or refraining to act as a result of using the AFL written by their respective creators and published in this Blog for sharing of knowledge can be accepted by the Blog owner.

Add Comment