Hi There,
The following Codes are not running properly on my System that I use for amibroker n Pi Bridge could someone assist me... These codes have been sent to me by Zerodha and they are not working. I would appreciate if someone can let me know whether these codes are working on their system.
Regards
// Zerolag EMA ///////////////// Now(format=0); if(ParamToggle("Tooltip shows", "All Values|Only Prices" ) ) { ToolTip=StrFormat("Open: %g\nHigh: %g\nLow: %g\nClose: %g (%.1f%%)\nVolume: "+NumToStr( V, 1.0 ), O, H, L, C, SelectedValue( ROC( C, 1 ))); } Title = EncodeColor(colorBrightGreen)+ "Zerolag EMA" + " | " + Name() + " | " + EncodeColor(colorBrightGreen)+ Interval(2) + EncodeColor(colorBrightGreen) + " | " + Date() +" | " +"\n"+EncodeColor(10) +"Open ="+O +","+" High ="+H +" ,"+" Low ="+L +","+ " Close ="+C + " | Volume : "+ WriteVal(V,1.0); _SECTION_BEGIN("Magnified Market Price"); Buy=Sell=Short=Cover=0; FS=Param("Font Size",28,11,100,1); GfxSelectFont("Arial", FS, 700, italic = False, underline = False, True ); GfxSetBkMode(colorWhite ); GfxSetTextColor(ParamColor("Color",colorViolet) ); Hor=Param("Horizontal Position",766,1,1200,1); Ver=Param("Vertical Position",1,1,1,1); GfxTextOut("Cls : "+C,Hor , Ver ); YC=TimeFrameGetPrice("C",inDaily,-1); DD=Prec(C-YC,2); xx=Prec((DD/YC)*100,2); GfxSelectFont("Arial", 12, 700, italic = False, underline = False, True ); GfxSetBkMode(colorWhite ); GfxSetTextColor(ParamColor("Color",colorViolet) ); //GfxTextOut(""+DD+" ("+xx+"%)", Hor+5, Ver+45 ); 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); 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(), colorBlack, styleCandle | styleNoLabel ); BuyDelay =1; SellDelay =1; ShortDelay =1; CoverDelay =1; //SetTradeDelays(1,1,1,1); SetPositionSize(100,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",2,1,10,0.1); Pd=Param("ATR Periods",2,1,100,1); Up=(HaHigh+HaLow)/2+(Factor*ATR(Pd)); Dn=(HaHigh+HaLow)/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; } elseif (Close[i]<Dn[i-1]) { trend[i]=-1; if (trend[i-1] == 1) changeOfTrend = 1; } elseif (trend[i-1]==1) { trend[i]=1; changeOfTrend = 0; } elseif (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]=(HaHigh[i]+HaLow[i])/2+(Factor*iATR[i]);; } if (flagh==1) { Dn[i]=(HaHigh[i]+HaLow[i])/2-(Factor*iATR[i]);; } if (trend[i]==1) { TrendUp[i]=Dn[i]; if (changeOfTrend == 1) { TrendUp[i-1] = TrendDown[i-1]; changeOfTrend = 0; } } elseif (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)+ "HA Super Trend AFL code" + " - " + 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); 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( ( "HA 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( ("HA 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);; } //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(); RequestTimedRefresh(1,onlyvisible=False ); //DateArray = DateTime(); //DateLastEntry = Ref(DateArray,-BarsSince(Buy) ); //Plot(DateLastEntry ,"DateLastEntry ", colorWhite,styleLine+styleOwnScale); _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);elseTrdPrice = 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 (BuyLANDBuyVar != BuyVar1 ANDSym != ""){brd = CreateStaticObject("pibridge.Bridge");brd.PlaceOrder (Exch,TrdSym,StrLeft(Sym,10),"LONG",1,Qty,0,TrdPrice,0,ORdType,ProdType,ClientId,Val);} if (CoverLANDCoverVar != CoverVar1 ANDSym != ""){brd = CreateStaticObject("pibridge.Bridge");brd.PlaceOrder (Exch,TrdSym,StrLeft(Sym,10),"EXIT SHORT",1,Qty,0,TrdPrice,0,ORdType,ProdType,ClientId,Val);} if (SellLANDSellVar != SellVar1 ANDSym != ""){brd = CreateStaticObject("pibridge.Bridge");brd.PlaceOrder (Exch,TrdSym,StrLeft(Sym,10),"EXIT LONG",2,Qty,0,TrdPrice,0,ORdType,ProdType,ClientId,Val);} if (ShortLANDShortVar != ShortVar1 ANDSym != ""){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 != ""ANDExch == "NFO"ANDStrRight(TrdSym,3)!= "FUT") OR (sym != ""ANDExch == "NSE"ANDStrRight(TrdSym,2)!= "EQ") OR (sym != ""ANDExch == "MCX"ANDStrRight(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 AmibrokerDirectory!","Press Here"); <% On Error Resume Next OpFolder = AFL("OpFolder") sys = AFL("Sys") ifOpFolder = 1AND sys = "Bit32" then CreateObject("Shell.Application").Open("C:\Program Files\Amibroker\") elseifOpFolder = 1AND sys = "Bit64" then CreateObject("Shell.Application").Open("C:\Program Files (x86)\Amibroker\") else endif %> _SECTION_END(); // change the symbol / ticker details in the symbolist in amibroker folder path