Plz make my AFL compitable for Fully Auto trading via Amibroker Plugin

Hello,

I am looking for partial profit booking afl which should have following function in Parameter.

  1. Quantity

  2. Stop Loss : ON/OFF(As defined in Parameter window of Ambibroker)

  3. Stop Loss Point :(As defined in Parameter window of Ambibroker)

  4. Partial Profit Traget : ON/OFF (As defined in Parameter window of Ambibroker)

  5. Partial ProfitTarget : Point: (As defined in Parameter window of Ambibroker)

  6. Partial ProfitTarget Quantity : (As defined in Parameter window of Ambibroker)

Rest Quantity : Quantity - Target 1 Quantity should be squared off at final exit. And backtesting should be possible.

function GetSecondNum()
{
Time = Now( 4 );
Seconds = int( Time % 100 );
Minutes = int( Time / 100 % 100 );
Hours = int( Time / 10000 % 100 );
SecondNum = int( Hours * 60 * 60 + Minutes * 60 + Seconds );
return SecondNum;
}

function PopupWindowEx( popupID, bodytext, captiontext, timeout, left, top )
{
displayText = bodytext + captiontext;
if ( ( StaticVarGetText( “prevPopup” + popupID ) != displayText) OR ( StaticVarGet( “prevPopupTime” + popupID ) < GetSecondNum() ) )
{
StaticVarSetText( “prevPopup” + popupID, displayText);
StaticVarSet( “prevPopupTime” + popupID, GetSecondNum() + timeout );
PopupWindow( bodytext, Captiontext + popupID, timeout, Left, top );
PlaySound(“c:\windows\media\ding.wav”);
}
}

_SECTION_BEGIN(“SuperTrend Ver 3.0 with Sound and Popup Alert”);

SetBarsRequired(100000,0);

GraphXSpace = 15;

SetChartOptions(0,chartShowArrows|chartShowDates);

SetChartBkColor(ParamColor(“bkcolor”,ColorRGB(0,0, 0)));

GfxSetBkMode(0);

GfxSetOverlayMode(1);

SetBarFillColor(IIf(C>O,ParamColor(“Candle UP Color”, colorGreen),IIf(C<=O,ParamColor(“Candle Down Color”, colorRed),colorLightGrey)));

Plot(C,"\nPrice",IIf(C>O,ParamColor(“Wick UP Color”, colorDarkGreen),IIf(C<=O,ParamColor(“Wick Down Color”, colorDarkRed),colorLightGrey)),64,0,0,0,0);

// Initial Values overrides you backtesting settings

SetOption( “InitialEquity”, 100000);
SetOption(“FuturesMode” ,false);
SetOption(“MinShares”,1);
SetOption(“CommissionMode”,2);
SetOption(“CommissionAmount”,0);
SetOption(“AccountMargin”,100);
SetOption(“RefreshWhenCompleted”,True);
SetTradeDelays(0,0,0,0);
SetPositionSize(1,spsShares);

_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));

Factor=Param(“Factor”,4,1,10,0.1);

Pd=Param(“ATR Periods”,10,1,100,1);

Up=(H+L)/2+(Factor*ATR(Pd));

Dn=(H+L)/2-(Factor*ATR(Pd));

iATR=ATR(Pd);

TrendUp=TrendDown=Null;

trend[0]=1;

changeOfTrend=0;

flag=flagh=0;

for (i = 1; i <BarCount-1; i++) {

  TrendUp[i] = Null;

  TrendDown[i] = Null;

trend[i]=1;

if (Close[i]>Up[i-1]) {

     trend[i]=1;

     if (trend[i-1] == -1) changeOfTrend = 1;

}

  else if (Close[i]<Dn[i-1]) {

     trend[i]=-1;

     if (trend[i-1] == 1) changeOfTrend = 1;

  }

  else if (trend[i-1]==1) {

     trend[i]=1;

     changeOfTrend = 0;       

  }

  else if (trend[i-1]==-1) {

     trend[i]=-1;

     changeOfTrend = 0;

  }

if (trend[i]<0 && trend[i-1]>0) {

     flag=1;

  }

  else {

     flag=0;

  }

if (trend[i]>0 && trend[i-1]<0) {

     flagh=1;

  }

  else {

     flagh=0;

  }

if (trend[i]>0 && Dn[i]<Dn[i-1]){

     Dn[i]=Dn[i-1];

    }

if (trend[i]<0 && Up[i]>Up[i-1])

    { Up[i]=Up[i-1];

    }

if (flag==1)

   {  Up[i]=(H[i]+L[i])/2+(Factor*iATR[i]);;

    }

  if (flagh==1)

    { Dn[i]=(H[i]+L[i])/2-(Factor*iATR[i]);;

     }

  if (trend[i]==1) {

     TrendUp[i]=Dn[i];

     if (changeOfTrend == 1) {

        TrendUp[i-1] = TrendDown[i-1];

        changeOfTrend = 0;

     }

  }

  else if (trend[i]==-1) {

     TrendDown[i]=Up[i];

     if (changeOfTrend == 1) {

        TrendDown[i-1] = TrendUp[i-1];

        changeOfTrend = 0;

     }

  }

}

Plot(TrendUp,“Trend”,colorGreen);

Plot(TrendDown,“Down”,colorRed);

Buy = trend==1;

Sell=trend==-1;

Buy=ExRem(Buy,Sell);

Sell=ExRem(Sell,Buy);

Short=Sell;

Cover=Buy;

BuyPrice=ValueWhen(Buy,C);

SellPrice=ValueWhen(Sell,C);

ShortPrice=ValueWhen(Short,C);

CoverPrice=ValueWhen(Cover,C);

Title = EncodeColor(colorWhite)+ “Super Trend AFL code from www.marketcalls.in” + " - " + Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +

" - " + Date() +" - “+”\n" +EncodeColor(colorRed) +“Op-”+O+" “+“Hi-”+H+” “+“Lo-”+L+” "+

“Cl-”+C+" "+ “Vol= “+ WriteVal(V)+”\n”+

EncodeColor(colorLime)+

WriteIf (Buy , " GO LONG / Reverse Signal at “+C+” “,”")+

WriteIf (Sell , " EXIT LONG / Reverse Signal at “+C+” “,”")+"\n"+EncodeColor(colorYellow)+

WriteIf(Sell , “Total Profit/Loss for the Last Trade Rs.”+(C-BuyPrice)+"","")+

WriteIf(Buy , “Total Profit/Loss for the Last trade Rs.”+(SellPrice-C)+"","");

PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);

PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);

duration = 10000000;

LastClose= Ref(C,-1); // if you like to add this popup will show you

if (Buy[BarCount-2]==true)
{
PopupWindowEx( “ID:1”, “Get Ready to BUY \n”+Name() + " “+ Interval(2)+” : “+ " Last =”+LastClose , “Buy Alert -”, 1000, 100, 1 ) ;
}
if (short[BarCount-2]==true)
{
PopupWindowEx( “ID:2”, “Get Ready to SHORT \n”+Name() + " "+ Interval(2) + " : “+ " Last =”+LastClose , "Short Alert ", 1000, 1, 150 ) ;
}

TrendSL=IIf(trend==1,TrendUp,TrendDown);

for(i=BarCount-1;i>1;i–)

{

if(Buy[i] == 1)

{

entry = C[i];

sig = “BUY”;

sl = TrendSL[i];

tar1 = entry + (entry * .0050);

tar2 = entry + (entry * .0092);

tar3 = entry + (entry * .0179);

bars = i;

i = 0;

}

if(Sell[i] == 1)

{

sig = “SELL”;

entry = C[i];

sl = TrendSL[i];

tar1 = entry - (entry * .0050);

tar2 = entry - (entry * .0112);

tar3 = entry - (entry * .0212);

bars = i;

i = 0;

}

}

Offset = 20;

Clr = IIf(sig == “BUY”, colorLime, colorRed);

ssl = IIf(bars == BarCount-1, TrendSL[BarCount-1], Ref(TrendSL, -1));

sl = ssl[BarCount-1];

Plot(LineArray(bars-Offset, tar1, BarCount, tar1,1), “”, Clr, styleLine|styleDots, Null, Null, Offset);

Plot(LineArray(bars-Offset, tar2, BarCount, tar2,1), “”, Clr, styleLine|styleDots, Null, Null, Offset);

Plot(LineArray(bars-Offset, tar3, BarCount, tar3,1), “”, Clr, styleLine|styleDots, Null, Null, Offset);

//Plot(LineArray(bars-Offset, sl, BarCount, sl,1), “”, colorDarkRed, styleLine|styleLine, Null, Null, Offset);

//Plot(LineArray(bars-Offset, entry, BarCount, entry,1), “”, colorGreen, styleLine|styleLine, Null, Null, Offset);

/*

for (i=bars; i <BarCount;i++)

{

PlotText(""+sig+"@"+entry, BarCount-5,entry,Null,colorBlue);

PlotText(“T1@”+tar1,BarCount-5,tar1,Null,Clr);PlotText(“T2@”+tar2,BarCount-5,tar2,Null,Clr);PlotText (“T3@”+tar3,BarCount-5,tar3,Null,Clr);

}*/

messageboard = ParamToggle(“Message Board”,“Show|Hide”,1);

if (messageboard == 1 )

{

GfxSelectFont( “Tahoma”, 13, 100 );

GfxSetBkMode( 1 );

GfxSetTextColor( colorWhite );

if ( sig ==“BUY”)

{

GfxSelectSolidBrush( colorBlue ); // this is the box background color

}

else

{

GfxSelectSolidBrush( colorRed ); // this is the box background color

}

pxHeight = Status( “pxchartheight” ) ;

xx = Status( “pxchartwidth”);

Left = 1100;

width = 310;

x = 5;

x2 = 290;

y = pxHeight;

GfxSelectPen( colorGreen, 1); // broader color

GfxRoundRect( x, y - 98, x2, y , 7, 7 ) ;

GfxTextOut( ( “Marketcalls - Supertrend”),13,y-100);

GfxTextOut( (" "),27,y-100);

GfxTextOut( (“Last " + sig + " Signal came " + (BarCount-bars-1) * Interval()/60 + " mins ago”), 13, y-80) ; // The text format location

GfxTextOut( ("" + WriteIf(sig ==“BUY”,sig + " @ “,sig + " @”) + " : " + entry), 13, y-60);

GfxTextOut( (“Trailing SL : " + Ref(TrendSL,-1) + " (” + WriteVal(IIf(sig == “SELL”,entry-sl,sl-entry), 2.2) + “)”), 13, y-40);

/*GfxTextOut( ("TGT:1 : " + tar1), 13, y -80);

GfxTextOut( ("TGT:2 : " + tar2), 13,y-60);

GfxTextOut( ("TGT:3 : " + tar3), 13,y-40);*/

GfxTextOut( ("Current P/L : " + WriteVal(IIf(sig == “BUY”,(C-entry),(entry-C)),2.2)), 13, y-22);;

}

// Calculate Equity Curve

eq = Equity( 1, 0 );

//////////////////////////////////////////////////
// Calculate the Last Five Trades Profit/Losses //
//////////////////////////////////////////////////

tradesback = 5;
Signum = Cum( Buy ) + Cum( Short );
Signumstart1 = LastValue( SigNum ) - ( tradesback - 1 );
Signumstart2 = LastValue( SigNum ) - ( tradesback - 2 );
Signumstart3 = LastValue( SigNum ) - ( tradesback - 3 );
Signumstart4 = LastValue( SigNum ) - ( tradesback - 4 );
Signumstart5 = LastValue( SigNum ) - ( tradesback - 5 );

bi = BarIndex();
bistart = ValueWhen( signum == signumstart1, bi );
bicond = bi >= bistart AND bi <= LastValue( bi );

SellPL = IIf( Sell AND bicond, C-buyprice, 0 );
CovPL = IIf( Cover AND bicond, ShortPrice - C,0 );

cumPL = SellPL + CovPL;

//Plot (SellPL,“Sell”,colorGreen,styleHistogram,maskhistogram);
///Plot (CovPL,“Cover”, colorRed,styleHistogram,maskhistogram);

lsince = lowestSince(Sell OR Cover, cumPL, 0);
hsince = highestSince(Sell OR cover, CumPL, 0);

vs= IIf(lsince==0,hsince,lsince);

PL1 = ValueWhen( signum == signumstart1 , vs,1 );
PL2 = ValueWhen( signum == signumstart2 , vs,1 );
PL3 = ValueWhen( signum == signumstart3 , vs,1 );
PL4 = ValueWhen( signum == signumstart4 , vs,1 );
PL5 = ValueWhen( signum == signumstart5, vs ,1 );

//////////////////////////////////////////////////
// Plot the Last Five Trades Profit/Losses //
//////////////////////////////////////////////////

Title = EncodeColor(colorWhite)+ “Backtest Results from www.marketcalls.in” + " - " + Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +

" - " + Date() +" - “+”\n" +EncodeColor(colorRed) +“Op-”+O+" “+“Hi-”+H+” “+“Lo-”+L+” "+

“Cl-”+C+" “+ “Vol= “+ WriteVal(V)+”\n”+ EncodeColor(colorYellow)+ “\n\n\nLast 5 Trade Results\n” +
”\nTrade1= " + PL1
+"\n"+ “Trade2= " + PL2
+”\n"+ “Trade3= " + PL3
+”\n"+ “Trade4= " + PL4
+”\n"+ "Trade5= " + PL5;

//Magfied Market Price

FS=Param(“Font Size”,30,11,100,1);

GfxSelectFont(“Times New Roman”, FS, 700, True );

GfxSetBkMode( colorWhite );

GfxSetTextColor( ParamColor(“Color”,colorGreen) );

Hor=Param(“Horizontal Position”,940,1,1200,1);

Ver=Param(“Vertical Position”,12,1,830,1);

GfxTextOut(""+C, Hor , Ver );

YC=TimeFrameGetPrice(“C”,inDaily,-1);

DD=Prec(C-YC,2);

xx=Prec((DD/YC)*100,2);

GfxSelectFont(“Times New Roman”, 11, 700, True );

GfxSetBkMode( colorBlack );

GfxSetTextColor(ParamColor(“Color”,colorYellow) );

GfxTextOut(""+DD+" ("+xx+"%)", Hor , Ver+45 );

_SECTION_END();

_SECTION_BEGIN(“Time Left”);

RequestTimedRefresh( 1 );

TimeFrame = Interval();

SecNumber = GetSecondNum();

Newperiod = SecNumber % TimeFrame == 0;

SecsLeft = SecNumber - int( SecNumber / TimeFrame ) * TimeFrame;

SecsToGo = TimeFrame - SecsLeft;

x=Param(“xposn”,50,0,1000,1);

y=Param(“yposn”,380,0,1000,1);

GfxSelectSolidBrush( ColorRGB( 230, 230, 230 ) );

GfxSelectPen( ColorRGB( 230, 230, 230 ), 2 );

if ( NewPeriod )

{

GfxSelectSolidBrush( colorYellow );

GfxSelectPen( colorYellow, 2 );

Say( “New period” );

}

//GfxRoundRect( x+45, y+40, x-3, y-2, 0, 0 );

//GfxSetBkMode(1);

GfxSelectFont( “Arial”, 14, 700, False );

GfxSetTextColor( colorRed );

GfxTextOut( “Time Left :”+SecsToGo+"", x, y );

_SECTION_END();

Run the below AFL

function GetSecondNum()
{
    Time = Now( 4 );
    Seconds = int( Time % 100 );
    Minutes = int( Time / 100 % 100 );
    Hours = int( Time / 10000 % 100 );
    SecondNum = int( Hours * 60 * 60 + Minutes * 60 + Seconds );
    return SecondNum;
}
 
function PopupWindowEx( popupID, bodytext, captiontext, timeout, left, top )
{
    displayText = bodytext + captiontext;
    if ( ( StaticVarGetText( "prevPopup" + popupID ) != displayText) OR ( StaticVarGet( "prevPopupTime" + popupID ) < GetSecondNum() ) )
    {
        StaticVarSetText( "prevPopup" + popupID, displayText);
        StaticVarSet( "prevPopupTime" + popupID, GetSecondNum() + timeout );
        PopupWindow( bodytext, Captiontext + popupID, timeout, Left, top );
        PlaySound("c:\\windows\\media\\ding.wav");
    }
}
 
_SECTION_BEGIN("SuperTrend Ver 3.0 with Sound and Popup Alert");
  Buy=Sell=Short=Cover=0;
SetBarsRequired(100000,0);
 
GraphXSpace = 15;
 
SetChartOptions(0,chartShowArrows|chartShowDates);
 
SetChartBkColor(ParamColor("bkcolor",ColorRGB(0,0, 0)));
 
GfxSetBkMode(0);
 
GfxSetOverlayMode(1);
 
SetBarFillColor(IIf(C>O,ParamColor("Candle UP Color", colorGreen),IIf(C<=O,ParamColor("Candle Down Color", colorRed),colorLightGrey)));
 
Plot(C,"\nPrice",IIf(C>O,ParamColor("Wick UP Color", colorDarkGreen),IIf(C<=O,ParamColor("Wick Down Color", colorDarkRed),colorLightGrey)),64,0,0,0,0);
 
// Initial Values overrides you backtesting settings
 
SetOption( "InitialEquity", 100000);
SetOption("FuturesMode" ,false);
SetOption("MinShares",1);
SetOption("CommissionMode",2);
SetOption("CommissionAmount",0);
SetOption("AccountMargin",100);
SetOption("RefreshWhenCompleted",True);
SetTradeDelays(0,0,0,0);
SetPositionSize(1,spsShares);

_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));

Factor=Param("Factor",4,1,10,0.1);
 
Pd=Param("ATR Periods",10,1,100,1);

Up=(H+L)/2+(Factor*ATR(Pd));
 
Dn=(H+L)/2-(Factor*ATR(Pd));
 
iATR=ATR(Pd);
 
TrendUp=TrendDown=Null;
 
trend[0]=1;
 
changeOfTrend=0;
 
flag=flagh=0;

for (i = 1; i <BarCount-1; i++) {
 
      TrendUp[i] = Null;
 
      TrendDown[i] = Null;

trend[i]=1;

if (Close[i]>Up[i-1]) {
 
         trend[i]=1;
 
         if (trend[i-1] == -1) changeOfTrend = 1;

}
 
      else if (Close[i]<Dn[i-1]) {
 
         trend[i]=-1;
 
         if (trend[i-1] == 1) changeOfTrend = 1;
 
      }
 
      else if (trend[i-1]==1) {
 
         trend[i]=1;
 
         changeOfTrend = 0;       
 
      }
 
      else if (trend[i-1]==-1) {
 
         trend[i]=-1;
 
         changeOfTrend = 0;
 
      }

if (trend[i]<0 && trend[i-1]>0) {
 
         flag=1;
 
      }
 
      else {
 
         flag=0;
 
      }

if (trend[i]>0 && trend[i-1]<0) {
 
         flagh=1;
 
      }
 
      else {
 
         flagh=0;
 
      }

if (trend[i]>0 && Dn[i]<Dn[i-1]){
 
         Dn[i]=Dn[i-1];
 
        }

if (trend[i]<0 && Up[i]>Up[i-1])
 
        { Up[i]=Up[i-1];
 
        }

if (flag==1)
 
       {  Up[i]=(H[i]+L[i])/2+(Factor*iATR[i]);;
 
        }
 
      if (flagh==1)
 
        { Dn[i]=(H[i]+L[i])/2-(Factor*iATR[i]);;
 
         }
 
      if (trend[i]==1) {
 
         TrendUp[i]=Dn[i];
 
         if (changeOfTrend == 1) {
 
            TrendUp[i-1] = TrendDown[i-1];
 
            changeOfTrend = 0;
 
         }
 
      }
 
      else if (trend[i]==-1) {
 
         TrendDown[i]=Up[i];
 
         if (changeOfTrend == 1) {
 
            TrendDown[i-1] = TrendUp[i-1];
 
            changeOfTrend = 0;
 
         }
 
      }
 
   }

Plot(TrendUp,"Trend",colorGreen);
 
Plot(TrendDown,"Down",colorRed);

Buy = trend==1;
 
Sell=trend==-1;

Buy=ExRem(Buy,Sell);
 
Sell=ExRem(Sell,Buy);
 
Short=Sell;
 
Cover=Buy;

BuyPrice=ValueWhen(Buy,C);
 
SellPrice=ValueWhen(Sell,C);
 
ShortPrice=ValueWhen(Short,C);
 
CoverPrice=ValueWhen(Cover,C);

Title = EncodeColor(colorWhite)+ "Super Trend AFL code from www.marketcalls.in" + " - " +  Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +
 
 "  - " + Date() +" - "+"\n" +EncodeColor(colorRed) +"Op-"+O+"  "+"Hi-"+H+"  "+"Lo-"+L+"  "+
 
"Cl-"+C+"  "+ "Vol= "+ WriteVal(V)+"\n"+
 
EncodeColor(colorLime)+
 
WriteIf (Buy , " GO LONG / Reverse Signal at "+C+"  ","")+
 
WriteIf (Sell , " EXIT LONG / Reverse Signal at "+C+"  ","")+"\n"+EncodeColor(colorYellow)+
 
WriteIf(Sell , "Total Profit/Loss for the Last Trade Rs."+(C-BuyPrice)+"","")+
 
WriteIf(Buy  , "Total Profit/Loss for the Last trade Rs."+(SellPrice-C)+"","");

PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
 
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);                      
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);                      
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);
 
duration = 10000000;
 
LastClose= Ref(C,-1);  // if you like to add this popup will show you
 
if (Buy[BarCount-2]==true)      
{
PopupWindowEx( "ID:1", "Get Ready to BUY  \n"+Name() + "  "+ Interval(2)+" :  "+ " Last ="+LastClose  , "Buy Alert -", 1000, 100, 1 ) ;  
}
if (short[BarCount-2]==true)  
{
PopupWindowEx( "ID:2", "Get Ready to SHORT  \n"+Name() + "  "+ Interval(2) + "  :  "+ " Last ="+LastClose , "Short   Alert ", 1000, 1, 150 ) ;
}

TrendSL=IIf(trend==1,TrendUp,TrendDown);

for(i=BarCount-1;i>1;i--)
 
{
 
if(Buy[i] == 1)
 
{
 
entry = C[i];
 
sig = "BUY";
 
sl = TrendSL[i];
 
tar1 = entry + (entry * .0050);
 
tar2 = entry + (entry * .0092);
 
tar3 = entry + (entry * .0179);

bars = i;
 
i = 0;
 
}
 
if(Sell[i] == 1)
 
{
 
sig = "SELL";
 
entry = C[i];
 
sl = TrendSL[i];
 
tar1 = entry - (entry * .0050);
 
tar2 = entry - (entry * .0112);
 
tar3 = entry - (entry * .0212);

bars = i;
 
i = 0;
 
}
 
}
 
Offset = 20;
 
Clr = IIf(sig == "BUY", colorLime, colorRed);
 
ssl = IIf(bars == BarCount-1, TrendSL[BarCount-1], Ref(TrendSL, -1));
 
sl = ssl[BarCount-1];

Plot(LineArray(bars-Offset, tar1, BarCount, tar1,1), "", Clr, styleLine|styleDots, Null, Null, Offset);
 
Plot(LineArray(bars-Offset, tar2, BarCount, tar2,1), "", Clr, styleLine|styleDots, Null, Null, Offset);
 
Plot(LineArray(bars-Offset, tar3, BarCount, tar3,1), "", Clr, styleLine|styleDots, Null, Null, Offset);

//Plot(LineArray(bars-Offset, sl, BarCount, sl,1), "", colorDarkRed, styleLine|styleLine, Null, Null, Offset);
 
//Plot(LineArray(bars-Offset, entry, BarCount, entry,1), "", colorGreen, styleLine|styleLine, Null, Null, Offset);

/*
 
for (i=bars; i <BarCount;i++)
 
{
 
PlotText(""+sig+"@"+entry, BarCount-5,entry,Null,colorBlue);
 
PlotText("T1@"+tar1,BarCount-5,tar1,Null,Clr);PlotText("T2@"+tar2,BarCount-5,tar2,Null,Clr);PlotText ("T3@"+tar3,BarCount-5,tar3,Null,Clr);

}*/

messageboard = ParamToggle("Message Board","Show|Hide",1);
 
if (messageboard == 1 )
 
{
 
GfxSelectFont( "Tahoma", 13, 100 );
 
GfxSetBkMode( 1 );
 
GfxSetTextColor( colorWhite );

if ( sig =="BUY")
 
{
 
GfxSelectSolidBrush( colorBlue ); // this is the box background color
 
}
 
else
 
{
 
GfxSelectSolidBrush( colorRed ); // this is the box background color
 
}
 
pxHeight = Status( "pxchartheight" ) ;
 
xx = Status( "pxchartwidth");
 
Left = 1100;
 
width = 310;
 
x = 5;
 
x2 = 290;

y = pxHeight;

GfxSelectPen( colorGreen, 1); // broader color
 
GfxRoundRect( x, y - 98, x2, y , 7, 7 ) ;
 
GfxTextOut( ( "Marketcalls - Supertrend"),13,y-100);
 
GfxTextOut( (" "),27,y-100);
 
GfxTextOut( ("Last " + sig + " Signal came " + (BarCount-bars-1) * Interval()/60 + " mins ago"), 13, y-80) ; // The text format location
 
GfxTextOut( ("" + WriteIf(sig =="BUY",sig + " @ ",sig + " @") + " : " + entry), 13, y-60);
 
GfxTextOut( ("Trailing SL : " + Ref(TrendSL,-1) + " (" + WriteVal(IIf(sig == "SELL",entry-sl,sl-entry), 2.2) + ")"), 13, y-40);
 
/*GfxTextOut( ("TGT:1 : " + tar1), 13, y -80);
 
GfxTextOut( ("TGT:2 : " + tar2), 13,y-60);
 
GfxTextOut( ("TGT:3 : " + tar3), 13,y-40);*/
 
GfxTextOut( ("Current P/L : " + WriteVal(IIf(sig == "BUY",(C-entry),(entry-C)),2.2)), 13, y-22);;

}

// Calculate Equity Curve
 
eq = Equity( 1, 0 );
 
//////////////////////////////////////////////////
// Calculate the Last Five Trades Profit/Losses //
//////////////////////////////////////////////////
 
tradesback = 5;
Signum = Cum( Buy ) + Cum( Short );
Signumstart1 = LastValue( SigNum ) - ( tradesback - 1 );
Signumstart2 = LastValue( SigNum ) - ( tradesback - 2 );
Signumstart3 = LastValue( SigNum ) - ( tradesback - 3 );
Signumstart4 = LastValue( SigNum ) - ( tradesback - 4 );
Signumstart5 = LastValue( SigNum ) - ( tradesback - 5 );
 
bi = BarIndex();
bistart = ValueWhen( signum == signumstart1, bi );
bicond = bi >= bistart AND bi <= LastValue( bi );

SellPL = IIf( Sell AND bicond, C-buyprice, 0 );
CovPL = IIf( Cover AND bicond, ShortPrice - C,0 );
 
cumPL = SellPL + CovPL;
 
//Plot (SellPL,"Sell",colorGreen,styleHistogram,maskhistogram);
///Plot (CovPL,"Cover", colorRed,styleHistogram,maskhistogram);
 
lsince = lowestSince(Sell OR Cover, cumPL, 0);    
hsince = highestSince(Sell OR cover, CumPL, 0);

vs= IIf(lsince==0,hsince,lsince);

PL1 = ValueWhen( signum == signumstart1 , vs,1 );
PL2 = ValueWhen( signum == signumstart2 , vs,1 );
PL3 = ValueWhen( signum == signumstart3 , vs,1 );  
PL4 = ValueWhen( signum == signumstart4 , vs,1 );
PL5 = ValueWhen( signum == signumstart5,  vs ,1 );
 
//////////////////////////////////////////////////
//   Plot the Last Five Trades Profit/Losses    //
//////////////////////////////////////////////////

Title = EncodeColor(colorWhite)+ "Backtest Results  from www.marketcalls.in" + " - " +  Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +
 
 "  - " + Date() +" - "+"\n" +EncodeColor(colorRed) +"Op-"+O+"  "+"Hi-"+H+"  "+"Lo-"+L+"  "+
 
"Cl-"+C+"  "+ "Vol= "+ WriteVal(V)+"\n"+ EncodeColor(colorYellow)+ "\n\n\nLast 5 Trade Results\n" +
"\nTrade1= " + PL1
+"\n"+ "Trade2= " + PL2
+"\n"+ "Trade3= " + PL3
+"\n"+ "Trade4= " + PL4
+"\n"+ "Trade5= " + PL5;

//Magfied Market Price
 
FS=Param("Font Size",30,11,100,1);
 
GfxSelectFont("Times New Roman", FS, 700, True );
 
GfxSetBkMode( colorWhite );  
 
GfxSetTextColor( ParamColor("Color",colorGreen) );
 
Hor=Param("Horizontal Position",940,1,1200,1);
 
Ver=Param("Vertical Position",12,1,830,1);
 
GfxTextOut(""+C, Hor , Ver );
 
YC=TimeFrameGetPrice("C",inDaily,-1);
 
DD=Prec(C-YC,2);
 
xx=Prec((DD/YC)*100,2);
 
GfxSelectFont("Times New Roman", 11, 700, True );
 
GfxSetBkMode( colorBlack );  
 
GfxSetTextColor(ParamColor("Color",colorYellow) );
 
GfxTextOut(""+DD+"  ("+xx+"%)", Hor , Ver+45 );

_SECTION_END();
 
_SECTION_BEGIN("Time Left");

RequestTimedRefresh( 1 );
 
TimeFrame = Interval();
 
SecNumber = GetSecondNum();
 
Newperiod = SecNumber % TimeFrame == 0;
 
SecsLeft = SecNumber - int( SecNumber / TimeFrame ) * TimeFrame;
 
SecsToGo = TimeFrame - SecsLeft;

x=Param("xposn",50,0,1000,1);
 
y=Param("yposn",380,0,1000,1);

GfxSelectSolidBrush( ColorRGB( 230, 230, 230 ) );
 
GfxSelectPen( ColorRGB( 230, 230, 230 ), 2 );
 
if ( NewPeriod )
 
{
 
GfxSelectSolidBrush( colorYellow );
 
GfxSelectPen( colorYellow, 2 );
 
Say( "New period" );
 
}
 
//GfxRoundRect( x+45, y+40, x-3, y-2, 0, 0 );
 
//GfxSetBkMode(1);
 
GfxSelectFont( "Arial", 14, 700, False );
 
GfxSetTextColor( colorRed );
 
GfxTextOut( "Time Left :"+SecsToGo+"", x, y );
 
_SECTION_END();

_SECTION_BEGIN("PiBridge_Zerodha");

EnableScript("vbscript");AmiPath = fdir( "C:\\Program Files (x86)\\Amibroker\\Broker.exe", 1 );
if (AmiPath==""){Path = "C:\\Program Files\\Amibroker\\";Sys = "Bit32"; }else {Path = "C:\\Program Files (x86)\\Amibroker\\";Sys = "Bit64";}
GfxSetBkMode(0);GfxSetTextColor( colorWhite );pxw = Status("pxwidth");pxh = Status("pxheight");Tikr = StrToUpper(Name());Val = StrToUpper("DAY");
BarB = BeginValue(BarIndex());BarE = EndValue(BarIndex());BarC = BarIndex();BarL = LastValue(BarC,1);BarT = BarIndex()-ValueWhen(TimeNum()==091500,BarIndex())+1;sym=TrdSym=Exch=ClientId=ORdType=ProdType="";Qty=0;
if (IsNull(fgetstatus("SymbolList.txt",1,4))){SymbolList = fopen( "SymbolList.txt", "w");if (SymbolList){fputs( "AmibrokerSymbol,TradeSymbol,Exchange,Qty,ClientID,OrderType,ProductType,Validity"+ "\n" +"EXAMPLE-I,EXAMPLE15MAYFUT,NFO,1,ABCD01,L,MIS,DAY" + "\n" , SymbolList );fclose(SymbolList);}}
Input = fopen( "SymbolList.txt", "r");if(Input){	while( ! feof(Input)){LineIn = fgets(Input);if (LineIN !=""){ if (StrToUpper(StrExtract(LineIn,0)) == Tikr){ Sym = StrToUpper(StrExtract(LineIn,0));TrdSym = StrToUpper(StrExtract(LineIn,1));Exch = StrToUpper(StrExtract(LineIn,2));Qty = StrToNum(StrExtract(LineIn,3));ClientId = StrToUpper(StrExtract(LineIn,4));OrdType = StrToUpper(StrExtract(LineIn,5));ProdType = StrToUpper(StrExtract(LineIn,6));}}}fclose( Input );}
DT = LastValue(DateNum(),1);TT = LastValue(TimeNum(),1);if (ORdType == "L")TrdPrice = LastValue(C,1);else TrdPrice = 0;
BuyVar = StaticVarGetText(Name()+"-Buy");BuyVar1 = Name()+"-Buy-"+NumToStr(DT,1.0)+"-"+NumToStr(TT,1.0)+"-"+NumToStr(GetChartID(),1.0);BuyL = LastValue(Buy);
SellVar = StaticVarGetText(Name()+"-Sell");SellVar1 = Name()+"-Sell-"+NumToStr(DT,1.0)+"-"+NumToStr(TT,1.0)+"-"+NumToStr(GetChartID(),1.0);SellL = LastValue(Sell);
ShortVar = StaticVarGetText(Name()+"-Short");ShortVar1 = Name()+"-Short-"+NumToStr(DT,1.0)+"-"+NumToStr(TT,1.0)+"-"+NumToStr(GetChartID(),1.0);ShortL = LastValue(Short);
CoverVar = StaticVarGetText(Name()+"-Cover");CoverVar1 = Name()+"-Cover-"+NumToStr(DT,1.0)+"-"+NumToStr(TT,1.0)+"-"+NumToStr(GetChartID(),1.0);CoverL = LastValue(Cover);
if (BuyL AND BuyVar != BuyVar1 AND Sym != ""){brd = CreateStaticObject("pibridge.Bridge");brd.PlaceOrder (Exch,TrdSym,StrLeft(Sym,10),"LONG",1,Qty,0,TrdPrice,0,ORdType,ProdType,ClientId,Val);}
if (CoverL AND CoverVar != CoverVar1 AND Sym != ""){brd = CreateStaticObject("pibridge.Bridge");brd.PlaceOrder (Exch,TrdSym,StrLeft(Sym,10),"EXIT SHORT",1,Qty,0,TrdPrice,0,ORdType,ProdType,ClientId,Val);}
if (SellL AND SellVar != SellVar1 AND Sym != ""){brd = CreateStaticObject("pibridge.Bridge");brd.PlaceOrder (Exch,TrdSym,StrLeft(Sym,10),"EXIT LONG",2,Qty,0,TrdPrice,0,ORdType,ProdType,ClientId,Val);}
if (ShortL AND ShortVar != ShortVar1 AND Sym != ""){brd = CreateStaticObject("pibridge.Bridge");brd.PlaceOrder (Exch,TrdSym,StrLeft(Sym,10),"SHORT",2,Qty,0,TrdPrice,0,ORdType,ProdType,ClientId,Val);}
GfxSelectFont( "Lucida Fax", 8.5, 700, False );GfxSetTextColor( colorGold );GfxTextOut("SREENI AFL",(pxw/2)-50,pxh-40);GfxTextOut("ZERODHA",(pxw/2)-130,pxh-30);
display = ParamToggle("Display Symbol Details","Yes|No",1);if(display==1){GfxTextOut("SYMBOL: " + sym,5,50);GfxTextOut("TRADE SYMBOL: " + Trdsym,5,70);GfxTextOut("EXCH: " + Exch,5,90);GfxTextOut("CLIENT ID: " + Clientid,5,110);GfxTextOut("PROD TYPE: " + prodtype,5,130);GfxTextOut("ORDER TYPE: " + ORdtype,5,150);GfxTextOut("QTY: " + WriteVal(Qty,1.0),5,170);}
if (sym == ""){GfxSelectFont( "Lucida Fax", 24, 700, False );GfxTextOut("Symbol Details Not Found in Text File",(pxw/2)-330,pxh/2);}
if ((sym != "" AND Exch == "NFO" AND StrRight(TrdSym,3)!= "FUT") OR (sym != "" AND Exch == "NSE" AND StrRight(TrdSym,2)!= "EQ") OR (sym != "" AND Exch == "MCX" AND StrRight(TrdSym,3)!= "FUT"))
{GfxSelectFont( "Lucida Fax", 24, 700, False );GfxTextOut("Trade Symbol MisMatch Check Symbol List File",(pxw/2)-370,pxh/2);}
Bridge = ParamTrigger("To Check Pi Bridge Connectivity !","Press Here");if (Bridge){brd = CreateStaticObject("pibridge.Bridge");}
Resetvar = ParamTrigger("To Reset Static Variables !","Press Here");if (ResetVar){StaticVarRemove("*");}DelSymbol = ParamTrigger("To Delete SymbolList File !","Press Here");if (DelSymbol){SymbolList = fopen( "SymbolList.txt", "w");	
if (SymbolList){fputs( "AmibrokerSymbol,TradeSymbol,Exchange,Qty,ClientID,OrderType,ProductType,Validity"+ "\n" +"EXAMPLE-I,EXAMPLE15MAYFUT,NFO,1,ABCD01,L,MIS,DAY" + "\n" , SymbolList );fclose(SymbolList);}}
OpFolder = ParamTrigger("To Open Amibroker Directory!","Press Here");
<%
On Error Resume Next 
OpFolder = AFL("OpFolder")
sys = AFL("Sys")
if OpFolder = 1  AND sys = "Bit32" then
CreateObject("Shell.Application").Open("C:\Program Files\Amibroker\")
elseif OpFolder = 1  AND sys = "Bit64" then
CreateObject("Shell.Application").Open("C:\Program Files (x86)\Amibroker\")
else
end if
%>

_SECTION_END();

Again signals are not generated in Generated Alerts window of PI