Created
November 30, 2014 07:24
-
-
Save marketcalls/bcceee7e23c8d2e67748 to your computer and use it in GitHub Desktop.
Auto Trading Control for NEST or Now Trading Terminal
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| _SECTION_BEGIN("RKR_AutoTrade1V00 "); | |
| Title = " "; | |
| EnableRealTimeControl = ParamList("Enable Controls", "No|Yes", 0); | |
| EnableStrategy = ParamList("Enable Strategy", "No|Yes", 0); | |
| StrategyType = ParamList("StrategyType", "Long/Short|Long|Short", 0); | |
| EnableAutoTrade = ParamList("Enable Autotrade", "No|Yes", 0); | |
| BuyPriceSelection = ParamList("Buy Price", "Bid Price|Ask Price|LTP", 0); | |
| SellPriceSelection = ParamList("Sell Price", "Ask Price|Bid Price|LTP", 0); | |
| ProductType = ParamList("Product Type", "MIS|NRML", 0); | |
| OrderType = ParamList("Order Type", "LIMIT|MARKET", 0); | |
| ClientIdValue = ParamStr("Client Id", "CLIENTID"); | |
| LotQuantity = Param("Lot Quantity", 1000, 50, 100000, 10); // Default Trade Qty. | |
| X2 = Param("Button X Offset", 0, 0, 2000, 100); | |
| Y2 = Param("Button Y Offset", 0, 0, 2000, 100); | |
| X1 = Param("Button Size", 100, 100, 300, 50); | |
| ParamList("Written By", "Ranjith K R"); | |
| ParamList("e-mail ID", "[email protected]"); | |
| Buy = 0; | |
| Sell = 0; | |
| Short = 0; | |
| Cover = 0; | |
| if(EnableStrategy == "Yes") | |
| { | |
| /*~~~~~~~~~~~~~~~~AutoTrade Strategy~~~~~~~~~~~~~~~~~~~~~~*/ | |
| /* | |
| You Have to replace the below code with your strategy | |
| Strictly don't use the bellow Buy/Sell code for real Trading | |
| */ | |
| /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ | |
| Buy = Cross(MACD(12, 26), Signal(12, 26, 9)); | |
| Sell = Cross(Signal(12, 26, 9), MACD(12, 26)); | |
| Short = Cross(Signal(12, 26, 9), MACD(12, 26)); | |
| Cover = Cross(MACD(12, 26), Signal(12, 26, 9)); | |
| /*~~~~~~~~~~~~~~~End Of AutoTrade Strategy~~~~~~~~~~~~~~~~*/ | |
| } | |
| if(EnableAutoTrade == "Yes" && EnableRealTimeControl == "Yes") | |
| { | |
| if(StaticVarGetText("firstflagforNest")=="") | |
| { | |
| nestplus = Null; | |
| if(IsNull(nestplus)) | |
| { | |
| nestplus = CreateStaticObject("Nest.PlusApi"); | |
| nestplus.SetObjectName("RKRAutoTrade"); | |
| } | |
| StaticVarSetText ("firstflagforNest","0", 1); | |
| } | |
| } | |
| X0 = 20; | |
| Y0 = 10; | |
| procedure DashBoard (Text, x1, y1, x2, y2, colorFrom, colorTo) | |
| { | |
| GfxSetOverlayMode(0); | |
| GfxSelectFont("Segoe UI", 8.5, 500); | |
| GfxSetBkMode(1); | |
| GfxGradientRect(x1, y1, x2, y2, colorFrom, colorTo); | |
| GfxDrawText(Text, x1, y1, x2, y2, 32|0|4|16); | |
| } | |
| GfxSetTextColor(colorWhite); | |
| DashBoard (" Strategy: " + EnableStrategy, X0, Y0, X0+150, Y0+13, colorGrey40, colorGrey40); | |
| DashBoard (" Strategy Type: " + StrategyType, X0, Y0+13, X0+150, Y0+26, colorGrey40, colorGrey40); | |
| DashBoard (" Auto Trade: " + EnableAutoTrade, X0, Y0+26, X0+150, Y0+38, colorGrey40, colorGrey40); | |
| DashBoard (" Buy Price: " + BuyPriceSelection, X0, Y0+38, X0+150, Y0+50, colorGrey40, colorGrey40); | |
| DashBoard (" Sell Price: " + SellPriceSelection, X0, Y0+50, X0+150, Y0+62, colorGrey40, colorGrey40); | |
| DashBoard (" Product Type: " + ProductType, X0, Y0+62, X0+150, Y0+75, colorGrey40, colorGrey40); | |
| DashBoard (" Order Type: " + OrderType, X0, Y0+75, X0+150, Y0+88, colorGrey40, colorGrey40); | |
| DashBoard ("", X0+1, Y0+88, X0+149, Y0+89, colorRed, colorRed); | |
| GfxSetTextColor(colorAqua); | |
| DashBoard (" Written By: Ranjith K R", X0, Y0+89, X0+150, Y0+105, colorBlack, colorBlack); | |
| X0 = 180; | |
| Y0 = 10; | |
| procedure DrawData (Text, x1, y1, x2, y2, colorFrom, colorTo) | |
| { | |
| GfxSetOverlayMode(0); | |
| GfxSelectFont("Segoe UI", 8.5, 600); | |
| GfxSetBkMode(1); | |
| GfxGradientRect(x1, y1, x2, y2, colorFrom, colorTo); | |
| GfxDrawText(Text, x1, y1, x2, y2, 32|0|4|16); | |
| } | |
| GfxSetTextColor(colorWhite); | |
| DrawData (" " + Name(), X0, Y0, X0+200, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" " + Date(), X0+205, Y0, X0+360, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" Open : " + Open, X0+365, Y0, X0+505, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" Close : " + Close, X0+510, Y0, X0+650, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" High : " + High, X0+655, Y0, X0+795, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" Low : " + Low, X0+800, Y0, X0+940, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" Volume : " + NumToStr(Volume,1,0), X0+945, Y0, X0+1100, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" % Change : " + NumToStr( (((C-O)*100)/O), 1.2, True), X0+1105, Y0, X0+1235, Y0+15, colorGrey40, colorGrey40); | |
| if(StaticVarGetText("firstflag")=="") | |
| { | |
| StaticVarSet("OrderNo", 0); | |
| StaticVarSetText ("firstflag","0"); | |
| } | |
| if(StaticVarGetText("firstflag"+Name())=="") | |
| { | |
| StaticVarSet(("BuyIndex" + Name()), 0); | |
| StaticVarSet(("BuyCount" + Name()), 0); | |
| StaticVarSet(("BuyFlag" + Name()), 0); | |
| StaticVarSet(("BuyPrice" + Name()), 0); | |
| StaticVarSet(("BuyQty" + Name()), 0); | |
| StaticVarSet(("SellIndex" + Name()), 0); | |
| StaticVarSet(("SellCount" + Name()), 0); | |
| StaticVarSet(("SellFlag" + Name()), 0); | |
| StaticVarSet(("SellPrice" + Name()), 0); | |
| StaticVarSet(("SellQty" + Name()), 0); | |
| StaticVarSet(("ShortIndex" + Name()), 0); | |
| StaticVarSet(("ShortCount" + Name()), 0); | |
| StaticVarSet(("ShortFlag" + Name()), 0); | |
| StaticVarSet(("ShortPrice" + Name()), 0); | |
| StaticVarSet(("ShortQty" + Name()), 0); | |
| StaticVarSet(("CoverIndex" + Name()), 0); | |
| StaticVarSet(("CoverCount" + Name()), 0); | |
| StaticVarSet(("CoverFlag" + Name()), 0); | |
| StaticVarSet(("CoverPrice" + Name()), 0); | |
| StaticVarSet(("CoverQty" + Name()), 0); | |
| StaticVarSet("LTPSave" + Name(), 0); | |
| StaticVarSet("LTQSave" + Name(), 0); | |
| StaticVarSet("VolumeTemp" + Name(), 0); | |
| StaticVarSet("AskSave" + Name(), 0); | |
| StaticVarSet("BidSave" + Name(), 0); | |
| StaticVarSet("LastLTPColor" + Name(), colorGrey40); | |
| StaticVarSet("LastLTQColor" + Name(), colorGrey40); | |
| StaticVarSet("LastAskColor" + Name(), colorGrey40); | |
| StaticVarSet("LastBidColor" + Name(), colorGrey40); | |
| StaticVarSetText("firstflag"+Name(), "0"); | |
| } | |
| CurrentAskPrice = LastValue(Aux1); | |
| CurrentBidPrice = LastValue(Aux2); | |
| CurrentTradedPrice = LastValue(C); | |
| CurrentVolume = LastValue(Volume); | |
| if(BuyPriceSelection == "Bid Price") | |
| { | |
| BuyPriceValue = CurrentBidPrice; | |
| } | |
| else if(BuyPriceSelection == "Ask Price") | |
| { | |
| BuyPriceValue = CurrentAskPrice; | |
| } | |
| else | |
| { | |
| BuyPriceValue = CurrentTradedPrice; | |
| } | |
| if(SellPriceSelection == "Ask Price") | |
| { | |
| SellPriceValue = CurrentAskPrice; | |
| } | |
| else if(SellPriceSelection == "Bid Price") | |
| { | |
| SellPriceValue = CurrentBidPrice; | |
| } | |
| else | |
| { | |
| SellPriceValue = CurrentTradedPrice; | |
| } | |
| LTPTemp = StaticVarGet("LTPSave" + Name()); | |
| LTQTemp = StaticVarGet("LTQSave" + Name()); | |
| VolumeTemp = StaticVarGet("VolumeTemp" + Name()); | |
| AskTemp = StaticVarGet("AskSave" + Name()); | |
| BidTemp = StaticVarGet("BidSave" + Name()); | |
| CurrentLTQ = (CurrentVolume - VolumeTemp); | |
| if(CurrentLTQ < 0) | |
| { | |
| CurrentLTQ = CurrentLTQ * -1; | |
| } | |
| if(CurrentLTQ == 0) | |
| { | |
| CurrentLTQ = LTQTemp; | |
| } | |
| LTPColor = StaticVarGet("LastLTPColor" + Name()); | |
| LTQColor = StaticVarGet("LastLTQColor" + Name()); | |
| AskColor = StaticVarGet("LastAskColor" + Name()); | |
| BidColor = StaticVarGet("LastBidColor" + Name()); | |
| if(LTPTemp > CurrentTradedPrice) | |
| { | |
| LTPColor = colorRed; | |
| } | |
| else if(LTPTemp < CurrentTradedPrice) | |
| { | |
| LTPColor = ColorGreen; | |
| } | |
| if(LTQTemp > CurrentLTQ) | |
| { | |
| LTQColor = colorRed; | |
| } | |
| else if(LTQTemp < CurrentLTQ) | |
| { | |
| LTQColor = ColorGreen; | |
| } | |
| if(AskTemp > CurrentAskPrice) | |
| { | |
| AskColor = colorRed; | |
| } | |
| else if(AskTemp < CurrentAskPrice) | |
| { | |
| AskColor = ColorGreen; | |
| } | |
| if(BidTemp > CurrentBidPrice) | |
| { | |
| BidColor = colorRed; | |
| } | |
| else if(BidTemp < CurrentBidPrice) | |
| { | |
| BidColor = ColorGreen; | |
| } | |
| StaticVarSet("LastLTPColor" + Name(), LTPColor); | |
| StaticVarSet("LastLTQColor" + Name(), LTQColor); | |
| StaticVarSet("LastAskColor" + Name(), AskColor); | |
| StaticVarSet("LastBidColor" + Name(), BidColor); | |
| StaticVarSet("LTPSave" + Name(), CurrentTradedPrice); | |
| StaticVarSet("LTQSave" + Name(), CurrentLTQ); | |
| StaticVarSet("VolumeTemp" + Name(), CurrentVolume); | |
| StaticVarSet("AskSave" + Name(), CurrentAskPrice); | |
| StaticVarSet("BidSave" + Name(), CurrentBidPrice); | |
| X0 = X2 + 20; | |
| Y0 = Y2 + 120; | |
| LBClick = GetCursorMouseButtons() == 9; // Click | |
| MouseX = Nz(GetCursorXPosition(1)); // | |
| MouseY = Nz(GetCursorYPosition(1)); // | |
| NumPad0 = GetAsyncKeyState(96) < 0; | |
| NumPad4 = GetAsyncKeyState(100) < 0; | |
| NumPad5 = GetAsyncKeyState(101) < 0; | |
| NumPad7 = GetAsyncKeyState(103) < 0; | |
| NumPad8 = GetAsyncKeyState(104) < 0; | |
| procedure DrawBut (Text, x1, y1, x2, y2, colorFrom, colorTo) | |
| { | |
| GfxSetOverlayMode(0); | |
| GfxSelectFont("Segoe UI", 9, 700); | |
| GfxSetBkMode(1); | |
| GfxGradientRect(x1, y1, x2, y2, colorFrom, colorTo); | |
| GfxDrawText(Text, x1, y1, x2, y2, 32|1|4|16); | |
| } | |
| GfxSetTextColor(colorWhite); | |
| if(EnableRealTimeControl == "Yes") | |
| { | |
| DrawBut ("Buy", X0, Y0, X0+X1, Y0+30, colorGreen, colorGreen); | |
| CursorInBuyButton = MouseX >= X0 AND MouseX <= X0+X1 AND MouseY >= Y0 AND MouseY <= Y0+30; | |
| BuyButtonClick = CursorInBuyButton AND LBClick; | |
| if (BuyButtonClick || NumPad7 ) | |
| { | |
| TempBuy = Buy; | |
| Buy = IIf((DateTime() == LastValue(DateTime())) || (TempBuy == True), True, False); | |
| } | |
| DrawBut ("Sell", X0, Y0+40, X0+X1, Y0+70, colorRed, colorRed); | |
| CursorInSellButton = MouseX >= X0 AND MouseX <= X0+X1 AND MouseY >= Y0+40 AND MouseY <= Y0+70; | |
| SellButtonClick = CursorInSellButton AND LBClick; | |
| if (SellButtonClick || NumPad8) | |
| { | |
| TempSell = Sell; | |
| Sell = IIf((DateTime() == LastValue(DateTime())) || (TempSell == True), True, False); | |
| } | |
| DrawBut ("Short", X0, Y0+80, X0+X1, Y0+110, colorOrange, colorOrange); | |
| CursorInShortButton = MouseX >= X0 AND MouseX <= X0+X1 AND MouseY >= Y0+80 AND MouseY <= Y0+110; | |
| ShortButtonClick = CursorInShortButton AND LBClick; | |
| if (ShortButtonClick || NumPad4) | |
| { | |
| TemShort = Short; | |
| Short = IIf((DateTime() == LastValue(DateTime())) || (TemShort == True), True, False); | |
| } | |
| DrawBut ("Cover", X0, Y0+120, X0+X1, Y0+150, colorTurquoise, colorTurquoise); | |
| CursorInCoverButton = MouseX >= X0 AND MouseX <= X0+X1 AND MouseY >= Y0+120 AND MouseY <= Y0+150; | |
| CoverButtonClick = CursorInCoverButton AND LBClick; | |
| if (CoverButtonClick || NumPad5) | |
| { | |
| TempCover = Cover; | |
| Cover = IIf((DateTime() == LastValue(DateTime())) || (TempCover == True), True, False); | |
| } | |
| DrawBut ("Clear Data", X0, Y0+160, X0+X1, Y0+190, colorGrey40, colorGrey40); | |
| CursorInClearButton = MouseX >= X0 AND MouseX <= X0+X1 AND MouseY >= Y0+160 AND MouseY <= Y0+190; | |
| ClearButtonClick = CursorInClearButton AND LBClick; | |
| if (ClearButtonClick || NumPad0 ) | |
| { | |
| DrawBut("Clear", X0+X1+10, Y0, X0+X1+75, Y0+30, colorGrey40, colorGrey40); | |
| StaticVarSetText("firstflag"+Name(), ""); | |
| } | |
| //TempBuy = Buy; | |
| TempBuy = IIf((DateTime() == LastValue(DateTime())) && (LastValue(Buy) == True), True, False); | |
| BuyTempData = StaticVarGet("BuyIndex" + Name()); | |
| TempCount = StaticVarGet("BuyCount" + Name()); | |
| BuyPrevTemp = 0; | |
| for(i = 0; i <= TempCount; i++) | |
| { | |
| BuyPrevTemp = BuyPrevTemp | (IIF(DateTime() == BuyTempData[i], True, False)); | |
| } | |
| Buy = IIF(((BuyPrevTemp == True) || (TempBuy == True)), True, False); | |
| //TempSell = Sell; | |
| TempSell = IIf((DateTime() == LastValue(DateTime())) && (LastValue(Sell) == True), True, False); | |
| SellTempData = StaticVarGet("SellIndex" + Name()); | |
| TempCount = StaticVarGet("SellCount" + Name()); | |
| SellPrevTemp = 0; | |
| for(i = 0; i <= TempCount; i++) | |
| { | |
| SellPrevTemp = SellPrevTemp | (IIF(DateTime() == SellTempData[i], True, False)); | |
| } | |
| TempCount = StaticVarGet("BuyCount" + Name()); | |
| Sell = IIF((TempCount > 0) && ((SellPrevTemp == True) || (TempSell == True)), True, False); | |
| //TempShort = Short; | |
| TempShort = IIf((DateTime() == LastValue(DateTime())) && (LastValue(Short) == True), True, False); | |
| ShortTempData = StaticVarGet("ShortIndex" + Name()); | |
| TempCount = StaticVarGet("ShortCount" + Name()); | |
| ShortPrevTemp = 0; | |
| for(i = 0; i <= TempCount; i++) | |
| { | |
| ShortPrevTemp = ShortPrevTemp | (IIF(DateTime() == ShortTempData[i], True, False)); | |
| } | |
| Short = IIF(((ShortPrevTemp == True) || (TempShort == True)), True, False); | |
| //TempCover = Cover; | |
| TempCover = IIf((DateTime() == LastValue(DateTime())) && (LastValue(Cover) == True), True, False); | |
| CoverTempData = StaticVarGet("CoverIndex" + Name()); | |
| TempCount = StaticVarGet("CoverCount" + Name()); | |
| CoverPrevTemp = 0; | |
| for(i = 0; i <= TempCount; i++) | |
| { | |
| CoverPrevTemp = CoverPrevTemp | (IIF(DateTime() == CoverTempData[i], True, False)); | |
| } | |
| TempCount = StaticVarGet("ShortCount" + Name()); | |
| Cover = IIF((TempCount > 0) && ((CoverPrevTemp == True) || (TempCover == True)), True, False); | |
| } | |
| if(StrategyType == "Long") | |
| { | |
| Short = 0; | |
| Cover = 0; | |
| } | |
| else if(StrategyType == "Short") | |
| { | |
| Buy = 0; | |
| Sell = 0; | |
| } | |
| Buy = ExRem( Buy, Sell ); | |
| Sell = ExRem( Sell, Buy ); | |
| Short = ExRem( Short, Cover ); | |
| Cover = ExRem( Cover, Short ); | |
| Buyshape = Buy * shapeUpArrow; | |
| SellShape = Sell * shapeDownArrow; | |
| PlotShapes( Buyshape, colorBrightGreen, 0, Low ); | |
| PlotShapes( SellShape, colorRed, 0, High ); | |
| Shortshape = Short * shapeDownArrow; | |
| CoverShape = Cover * shapeUpArrow; | |
| PlotShapes( Shortshape, colorOrange, 0, High, -30); | |
| PlotShapes( CoverShape, colorTurquoise, 0, Low, -30 ); | |
| GraphXSpace = 5; | |
| if(EnableRealTimeControl == "Yes") | |
| { | |
| if((LastValue(Buy) == True) && (StaticVarGet(("BuyFlag" + Name())) != LastValue(DateTime()))) | |
| { | |
| StaticVarSet(("BuyFlag" + Name()), LastValue(DateTime())); | |
| DrawBut("Buy", X0+X1+10, Y0, X0+X1+75, Y0+30, colorGrey40, colorGrey40); | |
| TempCount = StaticVarGet("BuyCount" + Name()); | |
| TempIndex = StaticVarGet("BuyIndex" + Name()); | |
| TempPrice = StaticVarGet("BuyPrice" + Name()); | |
| TempQty = StaticVarGet("BuyQty" + Name()); | |
| TempIndex[TempCount] = LastValue(DateTime()); | |
| TempPrice[TempCount] = BuyPriceValue; | |
| TempQty[TempCount] = LotQuantity; | |
| TempCount++; | |
| StaticVarSet("BuyCount" + Name(), TempCount); | |
| StaticVarSet(("BuyIndex" + Name()), TempIndex); | |
| StaticVarSet(("BuyPrice" + Name()), TempPrice); | |
| StaticVarSet(("BuyQty" + Name()), TempQty); | |
| if(EnableAutoTrade == "Yes") | |
| { | |
| LastOrderNo = StaticVarGet("OrderNo"); | |
| LastOrderNo++; | |
| StaticVarSet("OrderNo", LastOrderNo); | |
| TempOrderNo = ClientIdValue + NumToStr(Now(3),1,0) + "00" + LastOrderNo; | |
| TempName = Name() + "-EQ"; | |
| nestplus.PlaceOrder("BUY", TempOrderNo, "NSE", TempName, "DAY", OrderType, LotQuantity, BuyPriceValue, 0.0, 0, ProductType, ClientIdValue); | |
| } | |
| } | |
| if((LastValue(Sell) == True) && (StaticVarGet(("SellFlag" + Name())) != LastValue(DateTime()))) | |
| { | |
| StaticVarSet(("SellFlag" + Name()), LastValue(DateTime())); | |
| DrawBut("Sell", X0+X1+10, Y0, X0+X1+75, Y0+30, colorGrey40, colorGrey40); | |
| TempCount = StaticVarGet("SellCount" + Name()); | |
| TempIndex = StaticVarGet("SellIndex" + Name()); | |
| TempPrice = StaticVarGet("SellPrice" + Name()); | |
| TempQty = StaticVarGet("SellQty" + Name()); | |
| TempIndex[TempCount] = LastValue(DateTime()); | |
| TempPrice[TempCount] = SellPriceValue; | |
| TempQty[TempCount] = LotQuantity; | |
| TempCount++; | |
| StaticVarSet("SellCount" + Name(), TempCount); | |
| StaticVarSet(("SellIndex" + Name()), TempIndex); | |
| StaticVarSet(("SellPrice" + Name()), TempPrice); | |
| StaticVarSet(("SellQty" + Name()), TempQty); | |
| if(EnableAutoTrade == "Yes") | |
| { | |
| LastOrderNo = StaticVarGet("OrderNo"); | |
| LastOrderNo++; | |
| StaticVarSet("OrderNo", LastOrderNo, 1); | |
| TempOrderNo = ClientIdValue + NumToStr(Now(3),1,0) + "00" + LastOrderNo; | |
| TempName = Name() + "-EQ"; | |
| nestplus.PlaceOrder("SELL", TempOrderNo, "NSE", TempName, "DAY", OrderType, LotQuantity, SellPriceValue, 0.0, 0, ProductType, ClientIdValue); | |
| } | |
| } | |
| if((LastValue(Short) == True) && (StaticVarGet(("ShortFlag" + Name())) != LastValue(DateTime()))) | |
| { | |
| StaticVarSet(("ShortFlag" + Name()), LastValue(DateTime())); | |
| DrawBut("Short", X0+X1+10, Y0, X0+X1+75, Y0+30, colorGrey40, colorGrey40); | |
| TempCount = StaticVarGet("ShortCount" + Name()); | |
| TempIndex = StaticVarGet("ShortIndex" + Name()); | |
| TempPrice = StaticVarGet("ShortPrice" + Name()); | |
| TempQty = StaticVarGet("ShortQty" + Name()); | |
| TempIndex[TempCount] = LastValue(DateTime()); | |
| TempPrice[TempCount] = SellPriceValue; | |
| TempQty[TempCount] = LotQuantity; | |
| TempCount++; | |
| StaticVarSet("ShortCount" + Name(), TempCount); | |
| StaticVarSet(("ShortIndex" + Name()), TempIndex); | |
| StaticVarSet(("ShortPrice" + Name()), TempPrice); | |
| StaticVarSet(("ShortQty" + Name()), TempQty); | |
| if(EnableAutoTrade == "Yes") | |
| { | |
| LastOrderNo = StaticVarGet("OrderNo"); | |
| LastOrderNo++; | |
| StaticVarSet("OrderNo", LastOrderNo); | |
| TempOrderNo = ClientIdValue + NumToStr(Now(3),1,0) + "00" + LastOrderNo; | |
| TempName = Name() + "-EQ"; | |
| nestplus.PlaceOrder("SELL", TempOrderNo, "NSE", TempName, "DAY", OrderType, LotQuantity, SellPriceValue, 0.0, 0, ProductType, ClientIdValue); | |
| } | |
| } | |
| if((LastValue(Cover) == True) && (StaticVarGet(("CoverFlag" + Name())) != LastValue(DateTime()))) | |
| { | |
| StaticVarSet(("CoverFlag" + Name()), LastValue(DateTime())); | |
| DrawBut("Cover", X0+X1+10, Y0, X0+X1+75, Y0+30, colorGrey40, colorGrey40); | |
| TempCount = StaticVarGet("CoverCount" + Name()); | |
| TempIndex = StaticVarGet("CoverIndex" + Name()); | |
| TempPrice = StaticVarGet("CoverPrice" + Name()); | |
| TempQty = StaticVarGet("CoverQty" + Name()); | |
| TempIndex[TempCount] = LastValue(DateTime()); | |
| TempPrice[TempCount] = BuyPriceValue; | |
| TempQty[TempCount] = LotQuantity; | |
| TempCount++; | |
| StaticVarSet("CoverCount" + Name(), TempCount); | |
| StaticVarSet(("CoverIndex" + Name()), TempIndex); | |
| StaticVarSet(("CoverPrice" + Name()), TempPrice); | |
| StaticVarSet(("CoverQty" + Name()), TempQty); | |
| if(EnableAutoTrade == "Yes") | |
| { | |
| LastOrderNo = StaticVarGet("OrderNo"); | |
| LastOrderNo++; | |
| StaticVarSet("OrderNo", LastOrderNo, 1); | |
| TempOrderNo = ClientIdValue + NumToStr(Now(3),1,0) + "00" + LastOrderNo; | |
| TempName = Name() + "-EQ"; | |
| nestplus.PlaceOrder("BUY", TempOrderNo, "NSE", TempName, "DAY", OrderType, LotQuantity, BuyPriceValue, 0.0, 0, ProductType, ClientIdValue); | |
| } | |
| } | |
| } | |
| X0 = 180; | |
| Y0 = 30; | |
| if(EnableRealTimeControl == "Yes") | |
| { | |
| TotPrice = 0; | |
| TotQty = 0; | |
| TotVal = 0; | |
| TempPriceArray = StaticVarGet("BuyPrice" + Name()); | |
| TempQtyArray = StaticVarGet("BuyQty" + Name()); | |
| TempCount = StaticVarGet("BuyCount" + Name()); | |
| for(i = 0; i < TempCount; i++) | |
| { | |
| TotPrice = TotPrice + TempPriceArray[i]; | |
| TotQty = TotQty + TempQtyArray[i]; | |
| TotVal = TotVal + TempPriceArray[i] * TempQtyArray[i]; | |
| } | |
| if(TempCount == 0) | |
| { | |
| AvgBuyPrice = 0; | |
| LastBuyPrice = 0; | |
| LastBuyQty = 0; | |
| } | |
| else | |
| { | |
| AvgBuyPrice = (TotPrice / TempCount); | |
| LastBuyPrice = TempPriceArray[(TempCount - 1)]; | |
| LastBuyQty = NumToStr(TempQtyArray[(TempCount - 1)], 1, 0); | |
| } | |
| TotBuyQty = NumToStr(TotQty, 1, 0); | |
| NetBuyQty = TotQty; | |
| NetBuyValue = TotVal; | |
| TotPrice = 0; | |
| TotQty = 0; | |
| TotVal = 0; | |
| TempPriceArray = StaticVarGet("SellPrice" + Name()); | |
| TempQtyArray = StaticVarGet("SellQty" + Name()); | |
| TempCount = StaticVarGet("SellCount" + Name()); | |
| for(i = 0; i < TempCount; i++) | |
| { | |
| TotPrice = TotPrice + TempPriceArray[i]; | |
| TotQty = TotQty + TempQtyArray[i]; | |
| TotVal = TotVal + TempPriceArray[i] * TempQtyArray[i]; | |
| } | |
| if(TempCount == 0) | |
| { | |
| AvgSellPrice = 0; | |
| LastSellPrice = 0; | |
| LastSellQty = 0; | |
| } | |
| else | |
| { | |
| AvgSellPrice = (TotPrice / TempCount); | |
| LastSellPrice = TempPriceArray[(TempCount - 1)]; | |
| LastSellQty = NumToStr(TempQtyArray[(TempCount - 1)], 1, 0); | |
| } | |
| TotSellQty = NumToStr(TotQty, 1, 0); | |
| NetSellQty = TotQty; | |
| NetSellValue = TotVal; | |
| TotPrice = 0; | |
| TotQty = 0; | |
| TotVal = 0; | |
| TempPriceArray = StaticVarGet("ShortPrice" + Name()); | |
| TempQtyArray = StaticVarGet("ShortQty" + Name()); | |
| TempCount = StaticVarGet("ShortCount" + Name()); | |
| for(i = 0; i < TempCount; i++) | |
| { | |
| TotPrice = TotPrice + TempPriceArray[i]; | |
| TotQty = TotQty + TempQtyArray[i]; | |
| TotVal = TotVal + TempPriceArray[i] * TempQtyArray[i]; | |
| } | |
| if(TempCount == 0) | |
| { | |
| AvgShortPrice = 0; | |
| LastShortPrice = 0; | |
| LastShortQty = 0; | |
| } | |
| else | |
| { | |
| AvgShortPrice = (TotPrice / TempCount); | |
| LastShortPrice = TempPriceArray[(TempCount - 1)]; | |
| LastShortQty = NumToStr(TempQtyArray[(TempCount - 1)], 1, 0); | |
| } | |
| TotShortQty = NumToStr(TotQty, 1, 0); | |
| NetShortQty = TotQty; | |
| NetShortValue = TotVal; | |
| TotPrice = 0; | |
| TotQty = 0; | |
| TotVal = 0; | |
| TempPriceArray = StaticVarGet("CoverPrice" + Name()); | |
| TempQtyArray = StaticVarGet("CoverQty" + Name()); | |
| TempCount = StaticVarGet("CoverCount" + Name()); | |
| for(i = 0; i < TempCount; i++) | |
| { | |
| TotPrice = TotPrice + TempPriceArray[i]; | |
| TotQty = TotQty + TempQtyArray[i]; | |
| TotVal = TotVal + TempPriceArray[i] * TempQtyArray[i]; | |
| } | |
| if(TempCount == 0) | |
| { | |
| AvgCoverPrice = 0; | |
| LastCoverPrice = 0; | |
| LastCoverQty = 0; | |
| } | |
| else | |
| { | |
| AvgCoverPrice = (TotPrice / TempCount); | |
| LastCoverPrice = TempPriceArray[(TempCount - 1)]; | |
| LastCoverQty = NumToStr(TempQtyArray[(TempCount - 1)], 1, 0); | |
| } | |
| TotCoverQty = NumToStr(TotQty, 1, 0); | |
| NetCoverQty = TotQty; | |
| NetCoverValue = TotVal; | |
| NetQty = NetSellQty - NetBuyQty + NetShortQty - NetCoverQty; | |
| NetValue = NetSellValue - NetBuyValue + NetShortValue - NetCoverValue; | |
| NetQuantityColor = colorGrey40; | |
| NetValueColor = colorGrey40; | |
| if(NetQty > 0) | |
| { | |
| NetQuantityColor = colorRed; | |
| NetValueColor = colorRed; | |
| } | |
| else if(NetQty < 0) | |
| { | |
| NetQuantityColor = colorGreen; | |
| NetValueColor = colorGreen; | |
| } | |
| else if(NetQty == 0) | |
| { | |
| if(NetValue > 0) | |
| { | |
| NetValueColor = colorGreen; | |
| } | |
| else if(NetValue < 0) | |
| { | |
| NetValueColor = colorRed; | |
| } | |
| } | |
| DrawData (" AvgBuyPr: " + AvgBuyPrice, X0, Y0, X0+150, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" TotBuyQty: " + TotBuyQty, X0+155 , Y0, X0+305, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" AvgSellPr: " + AvgSellPrice, X0+310, Y0, X0+460, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" TotSellQty: " + TotSellQty, X0+465, Y0, X0+615, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" AvgShortPr: " + AvgShortPrice, X0+620, Y0, X0+770, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" TotShortQty: " + TotShortQty, X0+775 , Y0, X0+925, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" AvgCoverPr: " + AvgCoverPrice, X0+930, Y0, X0+1080, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" TotCoverQty: " + TotCoverQty, X0+1085, Y0, X0+1235, Y0+15, colorGrey40, colorGrey40); | |
| Y0 = 50; | |
| DrawData (" LastBuyPr: " + LastBuyPrice, X0, Y0, X0+150, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" LastBuyQty: " + LastBuyQty, X0+155 , Y0, X0+305, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" LastSellPr: " + LastSellPrice, X0+310, Y0, X0+460, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" LastSellQty: " + LastSellQty, X0+465, Y0, X0+615, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" LastShortPr: " + LastShortPrice, X0+620, Y0, X0+770, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" LastShortQty: " + LastShortQty, X0+775 , Y0, X0+925, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" LastCoverPr: " + LastCoverPrice, X0+930, Y0, X0+1080, Y0+15, colorGrey40, colorGrey40); | |
| DrawData (" LastCoverQty: " + LastCoverQty, X0+1085, Y0, X0+1235, Y0+15, colorGrey40, colorGrey40); | |
| Y0 = 70; | |
| DrawData (" LTP : " + CurrentTradedPrice, X0, Y0, X0+125, Y0+15, LTPColor, LTPColor); | |
| DrawData (" LTQ : " + NumToStr(CurrentLTQ,1,0), X0+130, Y0, X0+255, Y0+15, LTQColor, LTQColor); | |
| DrawData (" Bid : " + CurrentBidPrice, X0+260, Y0, X0+385, Y0+15, AskColor, AskColor); | |
| DrawData (" Ask : " + CurrentAskPrice, X0+390, Y0, X0+515, Y0+15, BidColor, BidColor); | |
| NestOredrNo = ClientIdValue + NumToStr(Now(3),1,0) + "00" + StaticVarGet("OrderNo"); | |
| DrawData (" NetQty : " + NetQty, X0+520, Y0, X0+670, Y0+15, NetQuantityColor, NetQuantityColor); | |
| DrawData (" NetValue : " + NetValue, X0+675, Y0, X0+900, Y0+15, NetValueColor, NetValueColor); | |
| DrawData (" Order No : " + NestOredrNo, X0+905, Y0, X0+1150, Y0+15, colorGrey40, colorGrey40); | |
| } | |
| _SECTION_END(); | |
| // ~~~~~~~~~~~~~~~~ Quote Display Draw ~~~~~~~~~~~~~~~~~// | |
| _SECTION_BEGIN("Price"); | |
| SetChartOptions(0,chartShowArrows|chartShowDates); | |
| //_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} \nOpen : %g, Close : %g (%.1f%%) \nLow : %g, High : %g (%.1f%%) \nVolume : " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, C,(((C-O)*100)/O), L, H, (((H-L)*100)/L) )); | |
| Plot( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); | |
| _SECTION_END(); | |
| _SECTION_BEGIN("Time Left"); | |
| 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; | |
| } | |
| 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(); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi... i m getting this error when i enable auto trading : algo:
nestplus = CreateStaticObject(“Nest.PlusApi”);
nestplus.SetObjectName(“RKRAutoTrade”);
}
StaticVarSetText (“firstflagforNest”,“0”, 1);
-———————————-
File:’Formulas\Custom\algo.afl,Ln:57,Col:45
Error 16
Too many arguments
Use ‘Edit Formula’ to correct error’
kindly help to resolve this ....