{"id":321,"date":"2021-12-30T08:36:00","date_gmt":"2021-12-30T08:36:00","guid":{"rendered":"https:\/\/algomojo.com\/blog\/?p=321"},"modified":"2025-03-05T16:07:42","modified_gmt":"2025-03-05T16:07:42","slug":"what-is-smart-order-execution-module-for-amibroker-based-trading-systems","status":"publish","type":"post","link":"https:\/\/algomojo.com\/blog\/what-is-smart-order-execution-module-for-amibroker-based-trading-systems\/","title":{"rendered":"What is Algomojo &#8211; Smart Order Execution Module for Amibroker Based Trading Systems?"},"content":{"rendered":"\n<p>Smart Order Module brings a 100% end-to-end automated trading solution for Amibroker users to automate their trading ideas with a simple plug-and-play module. Traders have to connect their trading system along with smart order execution to make their system trading life easier.<\/p>\n\n\n\n<p><strong>Supported Brokers<\/strong><\/p>\n\n\n\n<p>Angel Broking, Aliceblue, Firstock, Fyers, Tradejini, Upstox, Zebu<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/www.marketcalls.in\/wp-content\/uploads\/2021\/10\/Algomojo-Tutorial-1-1024x576.png\" alt=\"\" class=\"wp-image-55698\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Smart order execution looks into the position book before taking any trading decisions. <\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Signal and Position<\/strong><\/td><td><strong>Interpretation<\/strong><\/td><\/tr><tr><td>Buy Signal (Long Entry) and No Open Position<\/td><td>Buy x1 times of Quantity<\/td><\/tr><tr><td>Sell Signal (Long Exit) and No Open Position <\/td><td>Do Nothing <\/td><\/tr><tr><td>Sell Signal (Long Exit) and Positive Open Position (Prev Long Signal Continues)<\/td><td>Sell x1 times of Quantity  <\/td><\/tr><tr><td>Short Signal (Short Entry) and No Open Position<\/td><td>Sell x1 times of Quantity <\/td><\/tr><tr><td>Cover Signal (Short Exit) and No Open Position<\/td><td>Do Nothing  <\/td><\/tr><tr><td>Cover Signal (Short Exit) and Negative Open Position (Prev Short Signal Continues)<\/td><td>Buy x1 times of Quantity <\/td><\/tr><tr><td>Buy  and Cover Signal  and No Open Position<\/td><td>Buy x1 times of Quantity <\/td><\/tr><tr><td>Buy  and Cover Signal  and  Negative Open Position (Prev Short Signal Continues) <\/td><td>Buy x2 times of Quantity<\/td><\/tr><tr><td>Short and Sell Signal and No Open Position<\/td><td> Sell x1 times of Quantity   <\/td><\/tr><tr><td>Short and Sell Signal  and  Positive Open Position (Prev Long Signal Continues) <\/td><td>Sell x2 times of Quantity<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>AFL Code provided for the brokers : Angel Broking, Aliceblue, Tradejini, Zebu<\/p>\n\n\n\n<p><strong>How to use the smart order module?<\/strong><\/p>\n\n\n\n<p>1)Apply your trading system on a new blank chart<\/p>\n\n\n\n<p>2)Save the Smart Order Module to any folder of your choice<\/p>\n\n\n\n<p>3)drag and drop the Smart order Module on top of the trading system<\/p>\n\n\n\n<p>4)Configure Smart order Module parameters <\/p>\n\n\n\n<p>5)Enable the Algo Mode and Start 100% Smart Automation.<\/p>\n\n\n\n<p><strong>Smart Order Module for Angel Broking Users (Parameter Controls)<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img src=\"https:\/\/www.marketcalls.in\/wp-content\/uploads\/2021\/10\/image.png\" alt=\"\" class=\"wp-image-55696\"\/><\/figure>\n\n\n\n<p><strong>Smart Order Module &#8211; Amibroker AFL Code for AngelOne users<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-clike\">\/\/ Developer: Algomojo\n\/\/ Date: 24-Dec-2021\n\/\/ Website: algomojo.com\n\n_SECTION_BEGIN(&quot;Angel Broking - Broker Controls&quot;);\n\nRequestTimedRefresh(1, False); \n\nbroker =ParamStr(&quot;Broker&quot;,&quot;an&quot;); \/\/Broker Short Code - an- angel broking\nver = ParamStr(&quot;API Version &quot;,&quot;1.0&quot;);\nclnt_id = ParamStr(&quot;Client ID&quot;,&quot;xxxx&quot;); \/\/Enter your trading client ID\nuser_apikey = ParamStr(&quot;apikey&quot;,&quot;xxxxxxxxxxxxxxxxxxxxx&quot;); \/\/Enter your API key here\napi_secretkey = ParamStr(&quot;secretkey&quot;,&quot;xxxxxxxxxxxxxxxxxxxxx&quot;); \/\/Enter your API secret key here\n\n_SECTION_END();\n\n_SECTION_BEGIN(&quot;Angel Broking - Order Controls&quot;);\n\nstgy_name = ParamStr(&quot;Strategy Name&quot;, &quot;Test Strategy&quot;);\nvariety = ParamList(&quot;Variety&quot;,&quot;NORMAL|STOPLOSS|AMO&quot;,0); \ntradingsymbol = ParamStr(&quot;Trading Symbol&quot;,&quot;RELIANCE-EQ&quot;);\n\n\nexchange = ParamList(&quot;Exchange&quot;,&quot;NSE|NFO|BSE|MCX&quot;,0); \nordertype = ParamList(&quot;Order Type&quot;,&quot;MARKET|LIMIT|STOPLOSS_LIMIT|STOPLOSS_MARKET&quot;,0);\nproducttype = ParamList(&quot;Product Type&quot;,&quot;DELIVERY|CARRYFORWARD|MARGIN|INTRADAY|AMO_MARGIN|AMO_DELIVERY|AMO_CARRYFORWARD&quot;,3);\n\nprice = &quot;0&quot;; \ntriggerprice = &quot;0&quot;; \nquantity = Param(&quot;quanity&quot;,1,0,10000);\n\nsquareoff = &quot;0&quot;; \nstoploss = &quot;0&quot;; \ntrailingStopLoss = &quot;0&quot;; \ndisclosedquantity = &quot;0&quot;; \nduration = &quot;DAY&quot;;\nEntrydelay = Param(&quot;Entry Delay&quot;,0,0,1,1);\nExitdelay = Param(&quot;Exit Delay&quot;,0,0,1,1);\nEnableAlgo = ParamList(&quot;AlgoStatus&quot;,&quot;Disable|Enable|LongOnly|ShortOnly&quot;,0);\nresp = &quot;&quot;;\n\n\nstatic_name_ = Name()+GetChartID()+interval(2)+stgy_name;\nstatic_name_algo = Name()+GetChartID()+interval(2)+stgy_name+&quot;algostatus&quot;;\n\nAlgoBuy = lastvalue(Ref(Buy,-Entrydelay));\nAlgoSell = lastvalue(Ref(Sell,-Exitdelay));\nAlgoShort = lastvalue(Ref(Short,-Entrydelay));\nAlgoCover = lastvalue(Ref(Cover,-Exitdelay));\n\n\n\nGfxSelectFont( &quot;BOOK ANTIQUA&quot;, 14, 100 );\nGfxSetBkMode( 1 );\nif(EnableAlgo == &quot;Enable&quot;)\n{\nAlgoStatus = &quot;Algo Enabled&quot;;\nGfxSetTextColor( colorGreen ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=1)\n{\n_TRACE(&quot;Algo Status : Enabled&quot;);\nStaticVarSet(static_name_algo, 1);\n}\n}\nif(EnableAlgo == &quot;Disable&quot;)\n{\nAlgoStatus = &quot;Algo Disabled&quot;;\nGfxSetTextColor( colorRed ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=0)\n{\n_TRACE(&quot;Algo Status : Disabled&quot;);\nStaticVarSet(static_name_algo, 0);\n}\n}\nif(EnableAlgo == &quot;LongOnly&quot;)\n{\nAlgoStatus = &quot;Long Only&quot;;\nGfxSetTextColor( colorYellow ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=2)\n{\n_TRACE(&quot;Algo Status : Long Only&quot;);\nStaticVarSet(static_name_algo, 2);\n}\n}\nif(EnableAlgo == &quot;ShortOnly&quot;)\n{\nAlgoStatus = &quot;Short Only&quot;;\nGfxSetTextColor( colorYellow ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=3)\n{\n_TRACE(&quot;Algo Status : Short Only&quot;);\nStaticVarSet(static_name_algo, 3);\n}\n}\n\n\n\nfunction GetPositionsBook()\n{\n\/\/Creating the Trading Bridge\nalgomojo=CreateObject(&quot;AMAMIBRIDGE.Main&quot;);\n\napi_data = &quot;{ }&quot;;\n_TRACE(&quot;PositionBook API Request&quot;+api_data);\n\n\/\/Sending The Broker Request for NetOpenPositions\nresp=algomojo.AMDispatcher(user_apikey,api_secretkey,&quot;Positions&quot;,api_data,broker,ver);\n_TRACE(&quot;PositionBook API Response : &quot;+resp);\n\nreturn resp;\n\n}\n\nfunction NetOpenPositions()\n{\nflag = 0;\n\nresp = GetPositionsBook();\n\nposNetqty =0;\n\nfor( item = 1; ( sym = StrExtract( resp, item,&#039;{&#039; )) != &quot;&quot;; item++ )\n{\n\n\n\nif(Strfind(sym,tradingsymbol) AND StrFind(sym,productType)) \/\/Matches the symbol and \/\/Matches the Order Type\n{\n\nflag = 1; \/\/turn on the flag\n\nfor( jitem = 0; ( posdetails = StrExtract( sym, jitem,&#039;,&#039; )) != &quot;&quot;; jitem++ )\n{\n\n if(Strfind(posdetails,&quot;tradingsymbol&quot;))\n  {\n   posdetails = StrExtract(posdetails,1,&#039;:&#039;);\n   possym = StrTrim(posdetails,&quot;\\&quot;&quot;);\n    _TRACE(&quot;\\nTrading Symbol : &quot;+possym);\n  }\n\n  if(Strfind(posdetails,&quot;netqty&quot;))\n  {\n   posdetails = StrExtract(posdetails,1,&#039;:&#039;);\n   posNetqty = StrToNum(StrTrim(posdetails,&quot;\\&quot;&quot;));\n   _TRACE(&quot;\\nNetQty : &quot;+posNetqty);\n  }\n  \n\n} \/\/end of for loop\n}\n\n}\/\/end of for loop\n\n\nif(flag==0)\n{\n_TRACE(&quot;\\nTrading Symbol Not Found&quot;);\n posNetqty =0;\n_TRACE(&quot;\\nNetQty : &quot;+posNetqty);\n}\n\nreturn posNetqty;\n\n}\n\/\/Buy and Sell Order Functions\nfunction Placeorder(TransType,orderqty)\n{\n\t\n    algomojo=CreateObject(&quot;AMAMIBRIDGE.Main&quot;);\n    symboltoken = &quot;&quot;;\n    api_data =&quot;{\\&quot;stgy_name\\&quot;: \\&quot;&quot;+stgy_name+&quot;\\&quot;,  \\&quot;variety\\&quot;:\\&quot;&quot;+variety+&quot;\\&quot;,  \\&quot;tradingsymbol\\&quot;:\\&quot;&quot;+tradingsymbol+&quot;\\&quot;,      \\&quot;symboltoken\\&quot;:\\&quot;&quot;+symboltoken+&quot;\\&quot;,         \\&quot;transactiontype\\&quot;:\\&quot;&quot;+TransType+&quot;\\&quot;,         \\&quot;exchange\\&quot;:\\&quot;&quot;+exchange+&quot;\\&quot;,         \\&quot;ordertype\\&quot;:\\&quot;&quot;+ordertype+&quot;\\&quot;,         \\&quot;producttype\\&quot;:\\&quot;&quot;+producttype+&quot;\\&quot;,         \\&quot;duration\\&quot;:\\&quot;&quot;+duration+&quot;\\&quot;,         \\&quot;price\\&quot;:\\&quot;&quot;+price+&quot;\\&quot;,         \\&quot;squareoff\\&quot;:\\&quot;&quot;+squareoff+&quot;\\&quot;,         \\&quot;stoploss\\&quot;:\\&quot;&quot;+stoploss+&quot;\\&quot;,         \\&quot;quantity\\&quot;:\\&quot;&quot;+orderqty+&quot;\\&quot;,         \\&quot;triggerprice\\&quot;: \\&quot;&quot;+triggerprice+&quot;\\&quot;,  \\&quot;trailingStopLoss\\&quot;: \\&quot;&quot;+trailingStopLoss+&quot;\\&quot;, \\&quot;disclosedquantity\\&quot;:\\&quot;&quot;+disclosedquantity+&quot;\\&quot; }&quot;;\n   \n    _TRACE(&quot;API Request&quot;+api_data);\n    resp=algomojo.AMDispatcher(user_apikey, api_secretkey,&quot;PlaceOrder&quot;,api_data,broker,ver);\n    _TRACE(&quot;API Response : &quot;+resp);\n    _TRACE(&quot;Strategy Name : &quot;+stgy_name+&quot;  AlgoStatus : &quot;+ EnableAlgo);\n    _TRACE(&quot;Chart Symbol : &quot;+ Name() +&quot;  Trading Symbol : &quot;+  tradingsymbol +&quot;  qty : &quot;+ orderqty +&quot;  Signal : Buy Signal  TimeFrame : &quot;+ Interval(2)+&quot;  ChardId : &quot;+ GetChartID() + &quot; LTP : &quot;+LastValue(C));\n\tSay( &quot;Order Placed&quot; ); \n}\n\n\n\nNewquantity = Null;\n\t\/\/Execution Module\n\nif(EnableAlgo != &quot;Disable&quot;)\n    {\n        lasttime = StrFormat(&quot;%0.f&quot;,LastValue(BarIndex()));\n        \n        SetChartBkColor(colorDarkGrey);\n        if(EnableAlgo == &quot;Enable&quot;)\n        {   \n            if (AlgoBuy==True AND AlgoCover == True AND StaticVarGet(static_name_+&quot;buyCoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;) != lasttime )\n            {\n            \/\/ reverse Long Entry \n\t\t\t\tOpenPos = NetOpenPositions();\n                if(OpenPos==0)\n                {\n                \/\/If no open position send only x1 times of quantity\n                Newquantity = quantity;\n                _TRACE(&quot;No Open Positions Exist and Hence x1 times quantity will be punched&quot;);\n                }\n                else if(OpenPos == -quantity)\n                {\n                \/\/if already short positions are running send x2 times of quantity\n                Newquantity = 2*quantity;\n                _TRACE(&quot;Open Positions Exist and Hence x2 times quantity will be punched&quot;);\n                }\n                else\n                {\n                Newquantity = 2*quantity;\n                _TRACE(&quot;Warning Mismatch in Trading Positions and Check Manually and Take necessary Action&quot;);\n                _TRACE(&quot;Open Positions Exist and Hence x2 times quantity will be punched&quot;);\n                \n                }\n                \n                PlaceOrder(&quot;BUY&quot;,Newquantity);\n                StaticVarSetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;,lasttime);  \n                StaticVarSet(static_name_+&quot;buyCoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n        \n            }\n            else if ((AlgoBuy != True OR AlgoCover != True))\n            {   \n                StaticVarSet(static_name_+&quot;buyCoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            \n            if (AlgoBuy==True AND AlgoCover != True AND StaticVarGet(static_name_+&quot;buyAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Long Entry \n                PlaceOrder(&quot;BUY&quot;,quantity);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoBuy != True)\n            {   \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,&quot;&quot;);\n                \n            }\n            if (AlgoSell==true AND AlgoShort != True AND StaticVarGet(static_name_+&quot;sellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;sellAlgo_barvalue&quot;) != lasttime)\n            {     \n            \/\/ Long Exit \n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == quantity)\n                {\n                \/\/If positive open positions are there only then exit the longs \n                PlaceOrder(&quot;SELL&quot;,quantity);\n                }\n                else if(OpenPos != 0 AND OpenPos != quantity)\n                {\n                PlaceOrder(&quot;SELL&quot;,quantity);\n                _TRACE(&quot;Mismatch in quantity : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Sell Order is Placed to Exit the Long Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n                \n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoSell != True )\n            {   \n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoShort==True AND AlgoSell==True AND  StaticVarGet(static_name_+&quot;ShortSellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;ShortSellAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ reverse Short Entry \n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos==0)\n                {\n                \/\/If no open position send only x1 times of quantity\n                Newquantity = quantity;\n                _TRACE(&quot;No Open Positions Exist and Hence x1 times quantity will be punched&quot;);\n                }\n                else if(OpenPos == quantity)\n                {\n                \/\/if already short positions are running send x2 times of quantity\n                Newquantity = 2*quantity;\n                _TRACE(&quot;Open Positions Exist and Hence x2 times quantity will be punched&quot;);\n                }\n                else\n                {\n                Newquantity = 2*quantity;\n                _TRACE(&quot;Warning Mismatch in Trading Positions and Check Manually and Take necessary Action&quot;);\n                _TRACE(&quot;Open Positions Exist and Hence x2 times quantity will be punched&quot;);\n                \n                }\n                PlaceOrder(&quot;SELL&quot;,Newquantity);\n                StaticVarSetText(static_name_+&quot;ShortsellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;ShortSellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if ((AlgoShort != True OR AlgoSell != True))\n            {   \n                StaticVarSet(static_name_+&quot;ShortSellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortsellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n                \n            if (AlgoShort==True  AND  AlgoSell != True AND StaticVarGet(static_name_+&quot;ShortAlgo&quot;)==0 AND  StaticVarGetText(static_name_+&quot;ShortAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Entry\n                PlaceOrder(&quot;SELL&quot;,quantity);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoShort != True )\n            {   \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoCover==true AND AlgoBuy != True AND StaticVarGet(static_name_+&quot;CoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;CoverAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Exit\n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == -quantity)\n                {\n                \/\/If negative open positions are there only then exit the shorts \n                PlaceOrder(&quot;BUY&quot;,quantity);\n                }\n                else if(OpenPos != 0 AND OpenPos != -quantity)\n                {\n                PlaceOrder(&quot;BUY&quot;,quantity);\n                _TRACE(&quot;Mismatch in quantity : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Cover Order is Placed to Exit the Short Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n               \n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoCover != True )\n            {   \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        \n         else if(EnableAlgo == &quot;LongOnly&quot;)\n        {\n            \n            if (AlgoBuy==True AND StaticVarGet(static_name_+&quot;buyAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyAlgo_barvalue&quot;) != lasttime)\n            {  \n            \/\/  Long Entry\n                PlaceOrder(&quot;BUY&quot;,quantity);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoBuy != True)\n            {   \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoSell==true AND StaticVarGet(static_name_+&quot;sellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;sellAlgo_barvalue&quot;) != lasttime)\n            {  \n            \/\/ Long Exit\n                OpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == quantity)\n                {\n                \/\/If positive open positions are there only then exit the longs \n                PlaceOrder(&quot;SELL&quot;,quantity);\n                }\n                else if(OpenPos != 0 AND OpenPos != quantity)\n                {\n                PlaceOrder(&quot;SELL&quot;,quantity);\n                _TRACE(&quot;Mismatch in quantity : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Sell Order is Placed to Exit the Long Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoSell != True )\n            {   \n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        else if(EnableAlgo == &quot;ShortOnly&quot;)\n        {\n            if (AlgoShort==True AND StaticVarGet(static_name_+&quot;ShortAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;ShortAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Entry\n                PlaceOrder(&quot;SELL&quot;,quantity);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoShort != True )\n            {   \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoCover==true AND StaticVarGet(static_name_+&quot;CoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;CoverAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Exit\n                OpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == -quantity)\n                {\n                \/\/If negative open positions are there only then exit the shorts \n                PlaceOrder(&quot;BUY&quot;,quantity);\n                }\n                else if(OpenPos != 0 AND OpenPos != -quantity)\n                {\n                PlaceOrder(&quot;BUY&quot;,quantity);\n                _TRACE(&quot;Mismatch in quantity : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Cover Order is Placed to Exit the Short Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n               \n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoCover != True)\n            {   \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        \n    }\n    \n  \n<\/code><\/pre>\n\n\n\n<p><strong>SmartOrder Module for Aliceblue, Tradejini, Zebu users<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-clike\">\/\/ Developer: Algomojo\n\/\/ Date: 24-Dec-2021\n\/\/ Website: algomojo.com \/ marketcalls.in\n\n_SECTION_BEGIN(&quot;Nest Broker - Broker Controls&quot;);\n\nRequestTimedRefresh(1, False); \/\/ Send orders even if Amibroker is minimized or Chart is not active\n\nbroker = Paramlist(&quot;Broker&quot;,&quot;ab|tj|zb&quot;);  \/\/ab - aliceblue, tj - tradejini, zb - zebu\nver = ParamStr(&quot;API Version &quot;,&quot;1.0&quot;);\nclnt_id = ParamStr(&quot;Client ID&quot;,&quot;xxxxxx&quot;); \/\/Enter your trading client ID\nuser_apikey = ParamStr(&quot;user_apikey&quot;,&quot;xxxxxx&quot;); \/\/Enter your API key here\napi_secretkey = ParamStr(&quot;api_secretkey&quot;,&quot;xxxxxx&quot;); \/\/Enter your API secret key here\n\n_SECTION_END();\n\n_SECTION_BEGIN(&quot;Nest Broker - Order Controls&quot;);\n\ns_prdt_ali = &quot;BO:BO|CNC:CNC|CO:CO|MIS:MIS|NRML:NRML&quot;; \/\/Product Alias\nTsym = ParamStr(&quot;Trading Symbol&quot;,&quot;RELIANCE-EQ&quot;); \/\/Symbol Name\nexch = ParamList(&quot;Exchange&quot;,&quot;NFO|NSE|BSE|CDS|MCX|NCDEX|BFO|MCXSXFO|MCXSX&quot;,1); \/\/Exchange\nRet = &quot;DAY&quot;; \/\/Retention\nprctyp = ParamList(&quot;prctyp&quot;,&quot;MKT|L|SL|SL-M&quot;,0); \/\/ Pricetype\nPcode = ParamList(&quot;Product code&quot;,&quot;NRML|BO|CNC|CO|MIS&quot;,4); \/\/ Product Code\nqty = Param(&quot;Quantity&quot;,1,0,100000,1); \/\/ Quantity\nAMO = &quot;NO&quot;; \/\/AMO Order\n\n\nEntrydelay = Param(&quot;Entry Delay&quot;,0,0,1); \/\/ 0 - Execution with No Delay after a signal, 1- Execution at the end of the candle\nExitdelay = Param(&quot;Exit Delay&quot;,0,0,1);\n\nstrg_name = ParamStr(&quot;Strategy Name&quot;,&quot;Test Strategy Chart&quot;); \/\/ Strategy Name\nEnableAlgo = ParamList(&quot;Algo Mode&quot;,&quot;Disable|Enable|LongOnly|ShortOnly&quot;,0); \/\/ Algo Mode\nresp = &quot;&quot;;\n\n\nstatic_name_ = Name()+GetChartID()+interval(2)+strg_name;\nstatic_name_algo = Name()+GetChartID()+interval(2)+strg_name+&quot;algostatus&quot;;\n\n\/\/Configure Trade Execution Delay\n\n\nAlgoBuy = lastvalue(Ref(Buy,-Entrydelay));\nAlgoSell = lastvalue(Ref(Sell,-Exitdelay));\nAlgoShort = lastvalue(Ref(Short,-Entrydelay));\nAlgoCover = lastvalue(Ref(Cover,-Exitdelay));\n\n\n\n\nGfxSelectFont( &quot;BOOK ANTIQUA&quot;, 14, 100 );\nGfxSetBkMode( 1 );\nif(EnableAlgo == &quot;Enable&quot;)\n{\nAlgoStatus = &quot;Algo Enabled&quot;;\nGfxSetTextColor( colorGreen ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=1)\n{\n_TRACE(&quot;Algo Status : Enabled&quot;);\nStaticVarSet(static_name_algo, 1);\n}\n}\nif(EnableAlgo == &quot;Disable&quot;)\n{\nAlgoStatus = &quot;Algo Disabled&quot;;\nGfxSetTextColor( colorRed ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=0)\n{\n_TRACE(&quot;Algo Status : Disabled&quot;);\nStaticVarSet(static_name_algo, 0);\n}\n}\nif(EnableAlgo == &quot;LongOnly&quot;)\n{\nAlgoStatus = &quot;Long Only&quot;;\nGfxSetTextColor( colorYellow ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=2)\n{\n_TRACE(&quot;Algo Status : Long Only&quot;);\nStaticVarSet(static_name_algo, 2);\n}\n}\nif(EnableAlgo == &quot;ShortOnly&quot;)\n{\nAlgoStatus = &quot;Short Only&quot;;\nGfxSetTextColor( colorYellow ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=3)\n{\n_TRACE(&quot;Algo Status : Short Only&quot;);\nStaticVarSet(static_name_algo, 3);\n}\n}\n\n\nfunction GetPositionsBook()\n{\nalgomojo=CreateObject(&quot;AMAMIBRIDGE.Main&quot;);\napi_data =&quot;{\\&quot;uid\\&quot;:\\&quot;&quot;+clnt_id+&quot;\\&quot;,\\&quot;actid\\&quot;:\\&quot;&quot;+clnt_id+&quot;\\&quot;,\\&quot;type\\&quot;:\\&quot;&quot;+&quot;NET&quot;+&quot;\\&quot;,\\&quot;s_prdt_ali\\&quot;:\\&quot;&quot;+s_prdt_ali+&quot;\\&quot;}&quot;;\nresp=algomojo.AMDispatcher(user_apikey, api_secretkey,&quot;PositionBook&quot;,api_data,broker,ver);\n_TRACE(&quot;Position Book Response : &quot; +resp);\nreturn resp;\n}\n\nfunction NetOpenPositions()\n{\nflag = 0;\n\nresp = GetPositionsBook();\nposNetqty =0;\n\nfor( item = 0; ( sym = StrExtract( resp, item,&#039;{&#039; )) != &quot;&quot;; item++ )\n{\n\n\nif(Strfind(sym,Tsym) AND StrFind(sym,Pcode)) \/\/Matches the symbol and \/\/Matches the Order Type\n{\n\nflag = 1; \/\/turn on the flag\n\nfor( jitem = 0; ( posdetails = StrExtract( sym, jitem,&#039;,&#039; )) != &quot;&quot;; jitem++ )\n{\n\n if(Strfind(posdetails,&quot;Tsym&quot;))\n  {\n   posdetails = StrExtract(posdetails,1,&#039;:&#039;);\n   possym = StrTrim(posdetails,&quot;\\&quot;&quot;);\n    _TRACE(&quot;\\nSymbol : &quot;+possym);\n  }\n\n  if(Strfind(posdetails,&quot;Netqty&quot;))\n  {\n   posdetails = StrExtract(posdetails,1,&#039;:&#039;);\n   posNetqty = StrToNum(StrTrim(posdetails,&quot;\\&quot;&quot;));\n   _TRACE(&quot;\\nNetQty : &quot;+posNetqty);\n  }\n  \n\n} \/\/end of for loop\n}\n\n}\/\/end of for loop\n\n\nif(flag==0)\n{\n_TRACE(&quot;\\nTrading Symbol Not Found&quot;);\n\/\/posNetqty =0;\n_TRACE(&quot;\\nNetQty : &quot;+posNetqty);\n}\n\nreturn posNetqty;\n\n\n}\/\/end of Net Open Positions\n\nfunction PlaceOrder(TransType,orderqty) {\n\n\/\/Creating the Trading Bridge\nalgomojo=CreateObject(&quot;AMAMIBRIDGE.Main&quot;);\n\/\/Preparing the API data\napi_data =&quot;{\\&quot;strg_name\\&quot;:\\&quot;&quot;+strg_name+&quot;\\&quot;,\\&quot;s_prdt_ali\\&quot;:\\&quot;&quot;+s_prdt_ali+&quot;\\&quot;,\\&quot;Tsym\\&quot;:\\&quot;&quot;+Tsym+&quot;\\&quot;,\\&quot;exch\\&quot;:\\&quot;&quot;+exch+&quot;\\&quot;,\\&quot;Ttranstype\\&quot;:\\&quot;&quot;+&quot;&quot;+TransType+&quot;&quot;+&quot;\\&quot;,\\&quot;Ret\\&quot;:\\&quot;&quot;+Ret+&quot;\\&quot;,\\&quot;prctyp\\&quot;:\\&quot;&quot;+&quot;MKT&quot;+&quot;\\&quot;,\\&quot;qty\\&quot;:\\&quot;&quot;+orderqty+&quot;\\&quot;,\\&quot;discqty\\&quot;:\\&quot;&quot;+&quot;0&quot;+&quot;\\&quot;,\\&quot;MktPro\\&quot;:\\&quot;&quot;+&quot;NA&quot;+&quot;\\&quot;,\\&quot;Price\\&quot;:\\&quot;&quot;+&quot;0&quot;+&quot;\\&quot;,\\&quot;TrigPrice\\&quot;:\\&quot;&quot;+&quot;0&quot;+&quot;\\&quot;,\\&quot;Pcode\\&quot;:\\&quot;&quot;+Pcode+&quot;\\&quot;,\\&quot;AMO\\&quot;:\\&quot;&quot;+AMO+&quot;\\&quot;}&quot;;\n\n_TRACE(&quot;Broker API Request&quot;+api_data);\nresp=algomojo.AMDispatcher(user_apikey, api_secretkey,&quot;PlaceOrder&quot;,api_data,broker,ver);\n\n_TRACE(&quot;API Response : &quot;+resp);\n\n_TRACE(&quot;Strategy Name : &quot;+strg_name+&quot;  AlgoStatus : &quot;+ EnableAlgo);\n_TRACE(&quot;Chart Symbol : &quot;+ Name() +&quot;  Trading Symbol : &quot;+  Tsym +&quot;Trading Interval : &quot;+Interval(2)+&quot;  Chard Id : &quot;+ GetChartID());\n\nSay( &quot;Order Placed&quot; ); \n\nreturn resp;\n\n}\n\nNewQty = Null;\n\t\/\/Execution Module\n\nif(EnableAlgo != &quot;Disable&quot;)\n    {\n        lasttime = StrFormat(&quot;%0.f&quot;,LastValue(BarIndex()));\n        \n        SetChartBkColor(colorDarkGrey);\n        if(EnableAlgo == &quot;Enable&quot;)\n        {   \n            if (AlgoBuy==True AND AlgoCover == True AND StaticVarGet(static_name_+&quot;buyCoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;) != lasttime )\n            {\n            \/\/ reverse Long Entry \n\t\t\t\tOpenPos = NetOpenPositions();\n                if(OpenPos==0)\n                {\n                \/\/If no open position send only x1 times of qty\n                NewQty = qty;\n                _TRACE(&quot;No Open Positions Exist and Hence x1 times qty will be punched&quot;);\n                }\n                else if(OpenPos == -qty)\n                {\n                \/\/if already short positions are running send x2 times of qty\n                NewQty = 2*qty;\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                }\n                else\n                {\n                NewQty = 2*qty;\n                _TRACE(&quot;Warning Mismatch in Trading Positions and Check Manually and Take necessary Action&quot;);\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                \n                }\n                \n                PlaceOrder(&quot;B&quot;,NewQty);\n                StaticVarSetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;,lasttime);  \n                StaticVarSet(static_name_+&quot;buyCoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n        \n            }\n            else if ((AlgoBuy != True OR AlgoCover != True))\n            {   \n                StaticVarSet(static_name_+&quot;buyCoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            \n            if (AlgoBuy==True AND AlgoCover != True AND StaticVarGet(static_name_+&quot;buyAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Long Entry \n                PlaceOrder(&quot;B&quot;,qty);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoBuy != True)\n            {   \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,&quot;&quot;);\n                \n            }\n            if (AlgoSell==true AND AlgoShort != True AND StaticVarGet(static_name_+&quot;sellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;sellAlgo_barvalue&quot;) != lasttime)\n            {     \n            \/\/ Long Exit \n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == qty)\n                {\n                \/\/If positive open positions are there only then exit the longs \n                PlaceOrder(&quot;S&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != qty)\n                {\n                PlaceOrder(&quot;S&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Sell Order is Placed to Exit the Long Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n                \n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoSell != True )\n            {   \n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoShort==True AND AlgoSell==True AND  StaticVarGet(static_name_+&quot;ShortSellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;ShortSellAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ reverse Short Entry \n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos==0)\n                {\n                \/\/If no open position send only x1 times of qty\n                NewQty = qty;\n                _TRACE(&quot;No Open Positions Exist and Hence x1 times qty will be punched&quot;);\n                }\n                else if(OpenPos == qty)\n                {\n                \/\/if already short positions are running send x2 times of qty\n                NewQty = 2*qty;\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                }\n                else\n                {\n                NewQty = 2*qty;\n                _TRACE(&quot;Warning Mismatch in Trading Positions and Check Manually and Take necessary Action&quot;);\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                \n                }\n                PlaceOrder(&quot;S&quot;,NewQty);\n                StaticVarSetText(static_name_+&quot;ShortsellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;ShortSellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if ((AlgoShort != True OR AlgoSell != True))\n            {   \n                StaticVarSet(static_name_+&quot;ShortSellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortsellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n                \n            if (AlgoShort==True  AND  AlgoSell != True AND StaticVarGet(static_name_+&quot;ShortAlgo&quot;)==0 AND  StaticVarGetText(static_name_+&quot;ShortAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Entry\n                PlaceOrder(&quot;S&quot;,qty);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoShort != True )\n            {   \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoCover==true AND AlgoBuy != True AND StaticVarGet(static_name_+&quot;CoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;CoverAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Exit\n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == -qty)\n                {\n                \/\/If negative open positions are there only then exit the shorts \n                PlaceOrder(&quot;B&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != -qty)\n                {\n                PlaceOrder(&quot;B&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Cover Order is Placed to Exit the Short Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n               \n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoCover != True )\n            {   \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        \n         else if(EnableAlgo == &quot;LongOnly&quot;)\n        {\n            \n            if (AlgoBuy==True AND StaticVarGet(static_name_+&quot;buyAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyAlgo_barvalue&quot;) != lasttime)\n            {  \n            \/\/  Long Entry\n                PlaceOrder(&quot;B&quot;,qty);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoBuy != True)\n            {   \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoSell==true AND StaticVarGet(static_name_+&quot;sellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;sellAlgo_barvalue&quot;) != lasttime)\n            {  \n            \/\/ Long Exit\n                OpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == qty)\n                {\n                \/\/If positive open positions are there only then exit the longs \n                PlaceOrder(&quot;S&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != qty)\n                {\n                PlaceOrder(&quot;S&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Sell Order is Placed to Exit the Long Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoSell != True )\n            {   \n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        else if(EnableAlgo == &quot;ShortOnly&quot;)\n        {\n            if (AlgoShort==True AND StaticVarGet(static_name_+&quot;ShortAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;ShortAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Entry\n                PlaceOrder(&quot;S&quot;,qty);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoShort != True )\n            {   \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoCover==true AND StaticVarGet(static_name_+&quot;CoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;CoverAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Exit\n                OpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == -qty)\n                {\n                \/\/If negative open positions are there only then exit the shorts \n                PlaceOrder(&quot;B&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != -qty)\n                {\n                PlaceOrder(&quot;B&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Cover Order is Placed to Exit the Short Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n               \n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoCover != True)\n            {   \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        \n    }\n    \n  \n\n\n_SECTION_END();<\/code><\/pre>\n\n\n\n<p><strong>SmartOrder Module for Firstock, Tradejini(Cube)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-clike\">\n\n\/\/ Developer: Algomojo\n\/\/ Date: 24-Dec-2021\n\/\/ Website: algomojo.com \/ marketcalls.in\n\n_SECTION_BEGIN(&quot;Kambala - Broker Controls&quot;);\n\nRequestTimedRefresh(1, False); \/\/ Send orders even if Amibroker is minimized or Chart is not active\n\nuid = ParamStr(&quot;uid&quot;,&quot;xxxx&quot;); \/\/Enter your API key here\nbroker = Paramlist(&quot;Broker&quot;,&quot;fs|tc&quot;); \/\/Broker Short Code - fs - firstock , tc - Tradejini (Cube)\nver = ParamStr(&quot;API Version&quot;,&quot;1.0&quot;);\napi_key = ParamStr(&quot;user_apikey&quot;,&quot;xxxxxxxxx&quot;); \/\/Enter your API key here\napi_secret = ParamStr(&quot;api_secret&quot;,&quot;xxxxxxxxx&quot;); \/\/Enter your API secret key here\n\n\n_SECTION_END();\n\n_SECTION_BEGIN(&quot;Kambala - Order Controls&quot;);\n\ntsym = ParamStr(&quot;Trading Symbol&quot;,&quot;RELIANCE-EQ&quot;);\nexch = ParamList(&quot;Exchange&quot;,&quot;NSE|NFO|BSE|MCX&quot;,0); \nqty = Param(&quot;Quatity&quot;,1,1,100000,1);\n\nprc = &quot;0&quot;;\nprd = Paramlist(&quot;Product&quot;,&quot;C|M|I&quot;,1); \/\/Enter your API key here\nprctyp = ParamList(&quot;Product Type&quot;,&quot;MKT|MKT|SL-LMT|SL-MKT|DS|2L|3L&quot;,0);\nret = &quot;Day&quot;;\nremarks = &quot;Algomojo&quot;;\nordersource =&quot;API&quot;;\nstrg_name = ParamStr(&quot;Strategy Name&quot;, &quot;Firstock Strategy&quot;);\n\n\nEntrydelay = Param(&quot;Entry Delay&quot;,0,0,1); \/\/ 0 - Execution with No Delay after a signal, 1- Execution at the end of the candle\nExitdelay = Param(&quot;Exit Delay&quot;,0,0,1);\n\nEnableAlgo = ParamList(&quot;Algo Mode&quot;,&quot;Disable|Enable|LongOnly|ShortOnly&quot;,0); \/\/ Algo Mode\n\nresp=&quot;&quot;;\n\n\nstatic_name_ = Name()+GetChartID()+interval(2)+strg_name;\nstatic_name_algo = Name()+GetChartID()+interval(2)+strg_name+&quot;algostatus&quot;;\n\n\/\/Configure Trade Execution Delay\n\n\nAlgoBuy = lastvalue(Ref(Buy,-Entrydelay));\nAlgoSell = lastvalue(Ref(Sell,-Exitdelay));\nAlgoShort = lastvalue(Ref(Short,-Entrydelay));\nAlgoCover = lastvalue(Ref(Cover,-Exitdelay));\n\n\n\nGfxSelectFont( &quot;BOOK ANTIQUA&quot;, 14, 100 );\nGfxSetBkMode( 1 );\nif(EnableAlgo == &quot;Enable&quot;)\n{\nAlgoStatus = &quot;Algo Enabled&quot;;\nGfxSetTextColor( colorGreen ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=1)\n{\n_TRACE(&quot;Algo Status : Enabled&quot;);\nStaticVarSet(static_name_algo, 1);\n}\n}\nif(EnableAlgo == &quot;Disable&quot;)\n{\nAlgoStatus = &quot;Algo Disabled&quot;;\nGfxSetTextColor( colorRed ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=0)\n{\n_TRACE(&quot;Algo Status : Disabled&quot;);\nStaticVarSet(static_name_algo, 0);\n}\n}\nif(EnableAlgo == &quot;LongOnly&quot;)\n{\nAlgoStatus = &quot;Long Only&quot;;\nGfxSetTextColor( colorYellow ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=2)\n{\n_TRACE(&quot;Algo Status : Long Only&quot;);\nStaticVarSet(static_name_algo, 2);\n}\n}\nif(EnableAlgo == &quot;ShortOnly&quot;)\n{\nAlgoStatus = &quot;Short Only&quot;;\nGfxSetTextColor( colorYellow ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=3)\n{\n_TRACE(&quot;Algo Status : Short Only&quot;);\nStaticVarSet(static_name_algo, 3);\n}\n}\n\nfunction PlaceOrder(Action,orderqty)\n{\n\t\n    algomojo=CreateObject(&quot;AMAMIBRIDGE.Main&quot;);\n    api_data =&quot;{\\&quot;strg_name\\&quot;:\\&quot;&quot;+strg_name+&quot;\\&quot;,\\&quot;uid\\&quot;:\\&quot;&quot;+uid+&quot;\\&quot;,\\&quot;actid\\&quot;:\\&quot;&quot;+uid+&quot;\\&quot;,\\&quot;exch\\&quot;:\\&quot;&quot;+exch+&quot;\\&quot;,\\&quot;tsym\\&quot;:\\&quot;&quot;+tsym+&quot;\\&quot;,\\&quot;qty\\&quot;:\\&quot;&quot;+orderqty+&quot;\\&quot;,\\&quot;prc\\&quot;:\\&quot;&quot;+prc+&quot;\\&quot;,\\&quot;prd\\&quot;:\\&quot;&quot;+prd+&quot;\\&quot;,\\&quot;trantype\\&quot;:\\&quot;&quot;+Action+&quot;\\&quot;,\\&quot;prctyp\\&quot;:\\&quot;&quot;+prctyp+&quot;\\&quot;,\\&quot;ret\\&quot;:\\&quot;&quot;+ret+&quot;\\&quot;,\\&quot;remarks\\&quot;:\\&quot;&quot;+remarks+&quot;\\&quot;,\\&quot;ordersource\\&quot;:\\&quot;&quot;+ordersource+&quot;\\&quot;}&quot;;\n    \n    _TRACE(&quot;API Request&quot;+api_data);\n    resp=algomojo.AMDispatcher(api_key, api_secret,&quot;PlaceOrder&quot;,api_data,broker,ver);\n    _TRACE(&quot;API Response : &quot;+resp);\n    _TRACE(&quot;Strategy Name : &quot;+strg_name+&quot;  AlgoStatus : &quot;+ EnableAlgo);\n    _TRACE(&quot;Chart Symbol : &quot;+ Name() +&quot;  Trading Symbol : &quot;+  tsym +&quot;  qty : &quot;+ orderqty +&quot;  Signal : Buy Signal  TimeFrame : &quot;+ Interval(2)+&quot;  ChardId : &quot;+ GetChartID() + &quot; LTP : &quot;+LastValue(C));\n\tSay( &quot;Order Placed&quot; ); \n}\n\nfunction GetPositionsBook()\n{\nalgomojo=CreateObject(&quot;AMAMIBRIDGE.Main&quot;);\napi_data =&quot;{\\&quot;uid\\&quot;:\\&quot;&quot;+uid+&quot;\\&quot;,\\&quot;actid\\&quot;:\\&quot;&quot;+uid+&quot;\\&quot;}&quot;;\n_TRACE(&quot;PositionBook Request :&quot;+api_data);\nresp=algomojo.AMDispatcher(api_key, api_secret,&quot;PositionBook&quot;,api_data,broker,ver);\n_TRACE(&quot;PositionBook Response :&quot;+resp);\nreturn resp;\n}\n\nfunction NetOpenPositions()\n{\n\n\n\/\/Initialization\nflag = 0;\n\nresp = GetPositionsBook();\n\npossym = &quot;&quot;;\nposNetqty =0;\n\n\nfor( item = 1; ( sym = StrExtract( resp, item,&#039;{&#039; )) != &quot;&quot;; item++ )\n{\n\nsym = StrTrim(sym,&quot; &quot;);\nTsym = StrTrim(Tsym,&quot; &quot;);\n\nif(Strfind(sym,Tsym) AND StrFind(sym,&quot;\\&quot;prd\\&quot;:\\&quot;&quot;+prd+&quot;\\&quot;&quot;)) \/\/Matches the symbol and \/\/Matches the Order Type\n{\n\nflag = 1; \/\/turn on the flag\n\ndata = sym;\n\n_TRACE(&quot; Position Book  : &quot; +data);\n\nfor( jitem = 0; ( posdetails = StrExtract( data, jitem,&#039;,&#039; )) != &quot;&quot;; jitem++ )\n{\n\n  if(Strfind(posdetails,&quot;netqty&quot;))\n  {\n   posdetails = StrExtract(posdetails,1,&#039;:&#039;);\n   posNetqty = StrToNum(StrTrim(posdetails,&quot;\\&quot;&quot;));\n   _TRACE(&quot;\\nNetQty : &quot;+posNetqty);\n  }\n  \n\n} \/\/end of for loop\n}\n\n}\/\/end of for loop\n\nif(flag==0)\n{\n_TRACE(&quot;\\nTrading Symbol Not Found&quot;);\n}\n\nreturn posNetqty;\n\n}\n\nNewQty = Null;\n\nif(EnableAlgo != &quot;Disable&quot;)\n    {\n        lasttime = StrFormat(&quot;%0.f&quot;,LastValue(BarIndex()));\n        \n        SetChartBkColor(colorDarkGrey);\n        if(EnableAlgo == &quot;Enable&quot;)\n        {   \n            if (AlgoBuy==True AND AlgoCover == True AND StaticVarGet(static_name_+&quot;buyCoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;) != lasttime )\n            {\n            \/\/ reverse Long Entry \n\t\t\t\tOpenPos = NetOpenPositions();\n                if(OpenPos==0)\n                {\n                \/\/If no open position send only x1 times of qty\n                NewQty = qty;\n                _TRACE(&quot;No Open Positions Exist and Hence x1 times qty will be punched&quot;);\n                }\n                else if(OpenPos == -qty)\n                {\n                \/\/if already short positions are running send x2 times of qty\n                NewQty = 2*qty;\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                }\n                else\n                {\n                NewQty = 2*qty;\n                _TRACE(&quot;Warning Mismatch in Trading Positions and Check Manually and Take necessary Action&quot;);\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                \n                }\n                \n                PlaceOrder(&quot;B&quot;,NewQty);\n                StaticVarSetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;,lasttime);  \n                StaticVarSet(static_name_+&quot;buyCoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n        \n            }\n            else if ((AlgoBuy != True OR AlgoCover != True))\n            {   \n                StaticVarSet(static_name_+&quot;buyCoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            \n            if (AlgoBuy==True AND AlgoCover != True AND StaticVarGet(static_name_+&quot;buyAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Long Entry \n                PlaceOrder(&quot;B&quot;,qty);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoBuy != True)\n            {   \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,&quot;&quot;);\n                \n            }\n            if (AlgoSell==true AND AlgoShort != True AND StaticVarGet(static_name_+&quot;sellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;sellAlgo_barvalue&quot;) != lasttime)\n            {     \n            \/\/ Long Exit \n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == qty)\n                {\n                \/\/If positive open positions are there only then exit the longs \n                PlaceOrder(&quot;S&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != qty)\n                {\n                PlaceOrder(&quot;S&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Sell Order is Placed to Exit the Long Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n                \n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoSell != True )\n            {   \n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoShort==True AND AlgoSell==True AND  StaticVarGet(static_name_+&quot;ShortSellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;ShortSellAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ reverse Short Entry \n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos==0)\n                {\n                \/\/If no open position send only x1 times of qty\n                NewQty = qty;\n                _TRACE(&quot;No Open Positions Exist and Hence x1 times qty will be punched&quot;);\n                }\n                else if(OpenPos == qty)\n                {\n                \/\/if already short positions are running send x2 times of qty\n                NewQty = 2*qty;\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                }\n                else\n                {\n                NewQty = 2*qty;\n                _TRACE(&quot;Warning Mismatch in Trading Positions and Check Manually and Take necessary Action&quot;);\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                \n                }\n                PlaceOrder(&quot;S&quot;,NewQty);\n                StaticVarSetText(static_name_+&quot;ShortsellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;ShortSellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if ((AlgoShort != True OR AlgoSell != True))\n            {   \n                StaticVarSet(static_name_+&quot;ShortSellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortsellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n                \n            if (AlgoShort==True  AND  AlgoSell != True AND StaticVarGet(static_name_+&quot;ShortAlgo&quot;)==0 AND  StaticVarGetText(static_name_+&quot;ShortAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Entry\n                PlaceOrder(&quot;S&quot;,qty);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoShort != True )\n            {   \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoCover==true AND AlgoBuy != True AND StaticVarGet(static_name_+&quot;CoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;CoverAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Exit\n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == -qty)\n                {\n                \/\/If negative open positions are there only then exit the shorts \n                PlaceOrder(&quot;B&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != -qty)\n                {\n                PlaceOrder(&quot;B&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Cover Order is Placed to Exit the Short Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n               \n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoCover != True )\n            {   \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        \n         else if(EnableAlgo == &quot;LongOnly&quot;)\n        {\n            \n            if (AlgoBuy==True AND StaticVarGet(static_name_+&quot;buyAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyAlgo_barvalue&quot;) != lasttime)\n            {  \n            \/\/  Long Entry\n                PlaceOrder(&quot;B&quot;,qty);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoBuy != True)\n            {   \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoSell==true AND StaticVarGet(static_name_+&quot;sellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;sellAlgo_barvalue&quot;) != lasttime)\n            {  \n            \/\/ Long Exit\n                OpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == qty)\n                {\n                \/\/If positive open positions are there only then exit the longs \n                PlaceOrder(&quot;S&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != qty)\n                {\n                PlaceOrder(&quot;S&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Sell Order is Placed to Exit the Long Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoSell != True )\n            {   \n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        else if(EnableAlgo == &quot;ShortOnly&quot;)\n        {\n            if (AlgoShort==True AND StaticVarGet(static_name_+&quot;ShortAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;ShortAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Entry\n                PlaceOrder(&quot;S&quot;,qty);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoShort != True )\n            {   \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoCover==true AND StaticVarGet(static_name_+&quot;CoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;CoverAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Exit\n                OpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == -qty)\n                {\n                \/\/If negative open positions are there only then exit the shorts \n                PlaceOrder(&quot;B&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != -qty)\n                {\n                PlaceOrder(&quot;B&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Cover Order is Placed to Exit the Short Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n               \n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoCover != True)\n            {   \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        \n    }\n    \n    \n_SECTION_END();\n<\/code><\/pre>\n\n\n\n<p><strong>SmartOrder Module for Fyers Users<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Developer: Algomojo\n\/\/ Date: 24-Dec-2021\n\/\/ Website: algomojo.com \/ marketcalls.in\n\n_SECTION_BEGIN(&quot;Fyers - Broker Controls&quot;);\n\n\n\/\/ Send orders even if Amibroker is minimized or Chart is not active\nRequestTimedRefresh(1, False); \n\n\/\/Creating Input Controls for Setting Order Related Information\n\nbroker = ParamStr(&quot;Broker&quot;,&quot;fy&quot;);\nver = ParamStr(&quot;API Version&quot;,&quot;1.0&quot;);\napikey = ParamStr(&quot;APIKey&quot;,&quot;xxxxxxxxxxxxxx&quot;);\napisecret = ParamStr(&quot;APIsecret&quot;,&quot;xxxxxxxxxxxxx&quot;);\nclient_id = ParamStr(&quot;Client ID&quot;,&quot;xxxxxxxxx&quot;);\n\n_SECTION_END();\n\n_SECTION_BEGIN(&quot;Fyers - Order Controls&quot;);\n\nstrg_name = ParamStr(&quot;Strategy Name&quot;,&quot;Amibroker Strategy&quot;);\n\nexchange = ParamList(&quot;Exchange&quot;,&quot;NSE|BSE|MCX|CDS&quot;);\nsymbol = ParamStr(&quot;Symbol Name&quot;,&quot;RELIANCE-EQ&quot;);   \nqty = Param(&quot;Quantity&quot;,1,1,10000,1);\n\ntype = ParamList(&quot;Order Type&quot;,&quot;MKT|LMT|SL-MKT|SL-LMT&quot;);\n\nif(type==&quot;MKT&quot;)\n{\n\ttype = 2;\n\t}\nelse if(type==&quot;LMT&quot;)\n{\n\ttype = 1;\n\t}\nelse if(type==&quot;SL-MKT&quot;)\n{\n\ttype = 3;\n\t}\nelse if(type==&quot;SL-LMT&quot;)\n{\n\ttype = 4;\n\t}\n\t\n\t\t\t\nsymbol = exchange+&quot;:&quot;+symbol;\n\nproductType = ParamList(&quot;Product Type&quot;,&quot;INTRADAY|CNC|MARGIN|BO|CO&quot;,0);\nlimitPrice = &quot;0&quot;;\nstopPrice = &quot;0&quot;;\nvalidity = &quot;DAY&quot;;\ndisclosedQty = &quot;0&quot;;\nofflineOrder = &quot;False&quot;;\nstopLoss = &quot;0&quot;;\ntakeProfit = &quot;0&quot;;\n\n\nEntrydelay = Param(&quot;Entry Delay&quot;,0,0,1); \/\/ 0 - Execution with No Delay after a signal, 1- Execution at the end of the candle\nExitdelay = Param(&quot;Exit Delay&quot;,0,0,1);\nEnableAlgo = ParamList(&quot;Algo Mode&quot;,&quot;Disable|Enable|LongOnly|ShortOnly&quot;,0); \/\/ Algo Mode\n\n\n\/\/Configure Trade Execution Delay\n\n\nAlgoBuy = lastvalue(Ref(Buy,-Entrydelay));\nAlgoSell = lastvalue(Ref(Sell,-Exitdelay));\nAlgoShort = lastvalue(Ref(Short,-Entrydelay));\nAlgoCover = lastvalue(Ref(Cover,-Exitdelay));\n\n\n\nstatic_name_ = Name()+GetChartID()+interval(2)+strg_name;\nstatic_name_algo = Name()+GetChartID()+interval(2)+strg_name+&quot;algostatus&quot;;\n\n\nGfxSelectFont( &quot;BOOK ANTIQUA&quot;, 14, 100 );\nGfxSetBkMode( 1 );\nif(EnableAlgo == &quot;Enable&quot;)\n{\nAlgoStatus = &quot;Algo Enabled&quot;;\nGfxSetTextColor( colorGreen ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=1)\n{\n_TRACE(&quot;Algo Status : Enabled&quot;);\nStaticVarSet(static_name_algo, 1);\n}\n}\nif(EnableAlgo == &quot;Disable&quot;)\n{\nAlgoStatus = &quot;Algo Disabled&quot;;\nGfxSetTextColor( colorRed ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=0)\n{\n_TRACE(&quot;Algo Status : Disabled&quot;);\nStaticVarSet(static_name_algo, 0);\n}\n}\nif(EnableAlgo == &quot;LongOnly&quot;)\n{\nAlgoStatus = &quot;Long Only&quot;;\nGfxSetTextColor( colorYellow ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=2)\n{\n_TRACE(&quot;Algo Status : Long Only&quot;);\nStaticVarSet(static_name_algo, 2);\n}\n}\nif(EnableAlgo == &quot;ShortOnly&quot;)\n{\nAlgoStatus = &quot;Short Only&quot;;\nGfxSetTextColor( colorYellow ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=3)\n{\n_TRACE(&quot;Algo Status : Short Only&quot;);\nStaticVarSet(static_name_algo, 3);\n}\n}\n\n\/\/PlaceOrder Sends Market Order Returns response on Succesful PlaceOrder\n\nfunction PlaceOrder(TransType,orderqty) {\n\n\/\/Creating the Trading Bridge\nalgomojo=CreateObject(&quot;AMAMIBRIDGE.Main&quot;);\n\/\/Preparing the API data\n\nif(TransType==&quot;B&quot;)\n\tTransType = &quot;1&quot;;\nif(TransType==&quot;S&quot;)\n\tTransType = &quot;-1&quot;;\n\napi_data = &quot;{\n            \\&quot;strg_name\\&quot;: \\&quot;&quot;+strg_name+&quot;\\&quot;,\n            \\&quot;symbol\\&quot;:\\&quot;&quot;+symbol+&quot;\\&quot;,\n            \\&quot;qty\\&quot;:\\&quot;&quot;+orderqty+&quot;\\&quot;,\n            \\&quot;type\\&quot;:\\&quot;&quot;+type+&quot;\\&quot;,\n            \\&quot;side\\&quot;:\\&quot;&quot;+TransType+&quot;\\&quot;,\n            \\&quot;productType\\&quot;:\\&quot;&quot;+productType+&quot;\\&quot;,\n            \\&quot;limitPrice\\&quot;:\\&quot;0\\&quot;,\n            \\&quot;stopPrice\\&quot;:\\&quot;0\\&quot;,\n            \\&quot;validity\\&quot;: \\&quot;DAY\\&quot;,\n            \\&quot;disclosedQty\\&quot;:\\&quot;0\\&quot;,\n            \\&quot;offlineOrder\\&quot;: \\&quot;False\\&quot;,\n            \\&quot;stopLoss\\&quot;:\\&quot;0\\&quot;,\n            \\&quot;takeProfit\\&quot;:\\&quot;0\\&quot;\n        }&quot;; \n\n_TRACE(&quot;Broker API Request&quot;+api_data);\nresp=algomojo.AMDispatcher(apikey, apisecret,&quot;PlaceOrder&quot;,api_data,broker,ver);\n\n_TRACE(&quot;API Response : &quot;+resp);\n\n_TRACE(&quot;Strategy Name : &quot;+strg_name+&quot;  AlgoStatus : &quot;+ EnableAlgo);\n_TRACE(&quot;Chart Symbol : &quot;+ Name() +&quot;  Trading Symbol : &quot;+  symbol +&quot;Trading Interval : &quot;+Interval(2)+&quot;  Chard Id : &quot;+ GetChartID());\n\nSay( &quot;Order Placed&quot; ); \n\nreturn resp;\n\n}\n\nfunction GetPositionsBook()\n{\n\/\/Creating the Trading Bridge\nalgomojo=CreateObject(&quot;AMAMIBRIDGE.Main&quot;);\n\napi_data = &quot;{ }&quot;;\n_TRACE(&quot;PositionBook API Request&quot;+api_data);\n\n\/\/Sending The Broker Request for NetOpenPositions\nresp=algomojo.AMDispatcher(apikey, apisecret,&quot;positions&quot;,api_data,broker,ver);\n_TRACE(&quot;PositionBook API Response : &quot;+resp);\n\nreturn resp;\n\n}\n\n\n\nfunction NetOpenPositions()\n{\nflag = 0;\n\n\nresp = GetPositionsBook();\n\n\nposNetqty =0;\n\nfor( item = 1; ( sym = StrExtract( resp, item,&#039;{&#039; )) != &quot;&quot;; item++ )\n{\n\n\nif(Strfind(sym,symbol) AND StrFind(sym,productType)) \/\/Matches the symbol and \/\/Matches the Order Type\n{\n\nflag = 1; \/\/turn on the flag\n\nfor( jitem = 0; ( posdetails = StrExtract( sym, jitem,&#039;,&#039; )) != &quot;&quot;; jitem++ )\n{\n\n if(Strfind(posdetails,&quot;netQty&quot;))\n  {\n   posdetails = StrExtract(posdetails,1,&#039;:&#039;);\n   posNetqty = StrTrim(posdetails,&quot;\\&quot;&quot;); \/\/Trim if any extra white space\n   posNetqty = StrToNum(posNetqty);\n    _TRACE(&quot;\\nNetqty : &quot;+posNetqty);\n  }\n  \n\n} \/\/end of for loop\n}\n\n}\/\/end of for loop\n\n\nif(flag==0)\n{\n_TRACE(&quot;\\nTrading Symbol Not Found&quot;);\n\/\/posNetqty =0;\n_TRACE(&quot;\\nNetQty : &quot;+posNetqty);\n}\n\nreturn posNetqty;\n\n\n}\/\/end of Net Open Positions\n\n\n\n_SECTION_END();\n\n\n_SECTION_BEGIN(&quot;Live Algo Execution Module&quot;);\n\n\nif(EnableAlgo != &quot;Disable&quot;)\n    {\n        lasttime = StrFormat(&quot;%0.f&quot;,LastValue(BarIndex()));\n        \n        SetChartBkColor(colorDarkGrey);\n        if(EnableAlgo == &quot;Enable&quot;)\n        {   \n            if (AlgoBuy==True AND AlgoCover == True AND StaticVarGet(static_name_+&quot;buyCoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;) != lasttime )\n            {\n            \/\/ reverse Long Entry \n\t\t\t\tOpenPos = NetOpenPositions();\n                if(OpenPos==0)\n                {\n                \/\/If no open position send only x1 times of qty\n                NewQty = qty;\n                _TRACE(&quot;No Open Positions Exist and Hence x1 times qty will be punched&quot;);\n                }\n                else if(OpenPos == -qty)\n                {\n                \/\/if already short positions are running send x2 times of qty\n                NewQty = 2*qty;\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                }\n                else\n                {\n                NewQty = 2*qty;\n                _TRACE(&quot;Warning Mismatch in Trading Positions and Check Manually and Take necessary Action&quot;);\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                \n                }\n                \n                PlaceOrder(&quot;B&quot;,NewQty);\n                StaticVarSetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;,lasttime);  \n                StaticVarSet(static_name_+&quot;buyCoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n        \n            }\n            else if ((AlgoBuy != True OR AlgoCover != True))\n            {   \n                StaticVarSet(static_name_+&quot;buyCoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            \n            if (AlgoBuy==True AND AlgoCover != True AND StaticVarGet(static_name_+&quot;buyAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Long Entry \n                PlaceOrder(&quot;B&quot;,qty);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoBuy != True)\n            {   \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,&quot;&quot;);\n                \n            }\n            if (AlgoSell==true AND AlgoShort != True AND StaticVarGet(static_name_+&quot;sellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;sellAlgo_barvalue&quot;) != lasttime)\n            {     \n            \/\/ Long Exit \n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == qty)\n                {\n                \/\/If positive open positions are there only then exit the longs \n                PlaceOrder(&quot;S&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != qty)\n                {\n                PlaceOrder(&quot;S&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Sell Order is Placed to Exit the Long Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n                \n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoSell != True )\n            {   \n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoShort==True AND AlgoSell==True AND  StaticVarGet(static_name_+&quot;ShortSellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;ShortSellAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ reverse Short Entry \n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos==0)\n                {\n                \/\/If no open position send only x1 times of qty\n                NewQty = qty;\n                _TRACE(&quot;No Open Positions Exist and Hence x1 times qty will be punched&quot;);\n                }\n                else if(OpenPos == qty)\n                {\n                \/\/if already short positions are running send x2 times of qty\n                NewQty = 2*qty;\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                }\n                else\n                {\n                NewQty = 2*qty;\n                _TRACE(&quot;Warning Mismatch in Trading Positions and Check Manually and Take necessary Action&quot;);\n                _TRACE(&quot;Open Positions Exist and Hence x2 times qty will be punched&quot;);\n                \n                }\n                PlaceOrder(&quot;S&quot;,NewQty);\n                StaticVarSetText(static_name_+&quot;ShortsellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;ShortSellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if ((AlgoShort != True OR AlgoSell != True))\n            {   \n                StaticVarSet(static_name_+&quot;ShortSellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortsellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n                \n            if (AlgoShort==True  AND  AlgoSell != True AND StaticVarGet(static_name_+&quot;ShortAlgo&quot;)==0 AND  StaticVarGetText(static_name_+&quot;ShortAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Entry\n                PlaceOrder(&quot;S&quot;,qty);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoShort != True )\n            {   \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoCover==true AND AlgoBuy != True AND StaticVarGet(static_name_+&quot;CoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;CoverAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Exit\n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == -qty)\n                {\n                \/\/If negative open positions are there only then exit the shorts \n                PlaceOrder(&quot;B&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != -qty)\n                {\n                PlaceOrder(&quot;B&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Cover Order is Placed to Exit the Short Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n               \n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoCover != True )\n            {   \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        \n         else if(EnableAlgo == &quot;LongOnly&quot;)\n        {\n            \n            if (AlgoBuy==True AND StaticVarGet(static_name_+&quot;buyAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyAlgo_barvalue&quot;) != lasttime)\n            {  \n            \/\/  Long Entry\n                PlaceOrder(&quot;B&quot;,qty);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoBuy != True)\n            {   \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoSell==true AND StaticVarGet(static_name_+&quot;sellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;sellAlgo_barvalue&quot;) != lasttime)\n            {  \n            \/\/ Long Exit\n                OpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == qty)\n                {\n                \/\/If positive open positions are there only then exit the longs \n                PlaceOrder(&quot;S&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != qty)\n                {\n                PlaceOrder(&quot;S&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Sell Order is Placed to Exit the Long Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoSell != True )\n            {   \n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        else if(EnableAlgo == &quot;ShortOnly&quot;)\n        {\n            if (AlgoShort==True AND StaticVarGet(static_name_+&quot;ShortAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;ShortAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Entry\n                PlaceOrder(&quot;S&quot;,qty);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoShort != True )\n            {   \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoCover==true AND StaticVarGet(static_name_+&quot;CoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;CoverAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Exit\n                OpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == -qty)\n                {\n                \/\/If negative open positions are there only then exit the shorts \n                PlaceOrder(&quot;B&quot;,qty);\n                }\n                else if(OpenPos != 0 AND OpenPos != -qty)\n                {\n                PlaceOrder(&quot;B&quot;,qty);\n                _TRACE(&quot;Mismatch in Qty : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Cover Order is Placed to Exit the Short Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n               \n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoCover != True)\n            {   \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        \n    }\n    \n\n\n\n_SECTION_END();\n<\/code><\/pre>\n\n\n\n<p><strong>SmartOrder Module for Upstox Users<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-clike\">\/\/ Developer: Algomojo\n\/\/ Date: 24-Dec-2021\n\/\/ Website: algomojo.com \/ marketcalls.in\n\n_SECTION_BEGIN(&quot;Upstox - Broker Controls&quot;);\n\n\n\/\/ Send orders even if Amibroker is minimized or Chart is not active\nRequestTimedRefresh(1, False); \n\n\/\/Creating Input Controls for Setting Order Related Information\n\nbroker = ParamStr(&quot;Broker&quot;,&quot;up&quot;);\nver = ParamStr(&quot;API Version&quot;,&quot;1.0&quot;);\nclient_id = ParamStr(&quot;Client ID&quot;,&quot;xxxxx&quot;);\napikey = ParamStr(&quot;APIKey&quot;,&quot;xxxxxxxxxxxxxx&quot;);\napisecret = ParamStr(&quot;APIsecret&quot;,&quot;xxxxxxxxxxxxx&quot;);\n\n_SECTION_END();\n\n_SECTION_BEGIN(&quot;Upstox - Order Controls&quot;);\n\nstgy_name = ParamStr(&quot;Strategy Name&quot;,&quot;Amibroker Strategy&quot;);\nsymbol = ParamStr(&quot;Symbol Name&quot;,&quot;RELIANCE&quot;);  \nexchange = ParamList(&quot;Exchange&quot;,&quot;NSE_EQ|NSE_FO|NCD_FO|MCX_FO|BCD_FO|BSE_EQ&quot;);\n \nquantity = Param(&quot;Quantity&quot;,1,1,10000,1);\n\norder_type = ParamList(&quot;Order Type&quot;,&quot;MKT|LMT|SL-MKT|SL-LMT&quot;);\n\n\nproductType = ParamList(&quot;Product Type&quot;,&quot;MIS|CNC|NRML&quot;,0);\nduration = &quot;DAY&quot;;\nMktPro = &quot;NA&quot;;\nprice = &quot;0&quot;;\ndisclosed_quantity = &quot;0&quot;;\ntrigger_price = &quot;0&quot;;\nis_amo = &quot;NO&quot;;\n\nif(productType==&quot;MIS&quot;)\n{\nproduct = &quot;I&quot;;\n}\nif(productType==&quot;CNC&quot; OR productType==&quot;NRML&quot;)\n{\nproduct = &quot;D&quot;;\n}\n\n\nEntrydelay = Param(&quot;Entry Delay&quot;,0,0,1); \/\/ 0 - Execution with No Delay after a signal, 1- Execution at the end of the candle\nExitdelay = Param(&quot;Exit Delay&quot;,0,0,1);\nEnableAlgo = ParamList(&quot;Algo Mode&quot;,&quot;Disable|Enable|LongOnly|ShortOnly&quot;,0); \/\/ Algo Mode\n\n\n\/\/Configure Trade Execution Delay\n\n\nAlgoBuy = lastvalue(Ref(Buy,-Entrydelay));\nAlgoSell = lastvalue(Ref(Sell,-Exitdelay));\nAlgoShort = lastvalue(Ref(Short,-Entrydelay));\nAlgoCover = lastvalue(Ref(Cover,-Exitdelay));\n\n\n\nstatic_name_ = Name()+GetChartID()+interval(2)+stgy_name;\nstatic_name_algo = Name()+GetChartID()+interval(2)+stgy_name+&quot;algostatus&quot;;\n\n\nGfxSelectFont( &quot;BOOK ANTIQUA&quot;, 14, 100 );\nGfxSetBkMode( 1 );\nif(EnableAlgo == &quot;Enable&quot;)\n{\nAlgoStatus = &quot;Algo Enabled&quot;;\nGfxSetTextColor( colorGreen ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=1)\n{\n_TRACE(&quot;Algo Status : Enabled&quot;);\nStaticVarSet(static_name_algo, 1);\n}\n}\nif(EnableAlgo == &quot;Disable&quot;)\n{\nAlgoStatus = &quot;Algo Disabled&quot;;\nGfxSetTextColor( colorRed ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=0)\n{\n_TRACE(&quot;Algo Status : Disabled&quot;);\nStaticVarSet(static_name_algo, 0);\n}\n}\nif(EnableAlgo == &quot;LongOnly&quot;)\n{\nAlgoStatus = &quot;Long Only&quot;;\nGfxSetTextColor( colorYellow ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=2)\n{\n_TRACE(&quot;Algo Status : Long Only&quot;);\nStaticVarSet(static_name_algo, 2);\n}\n}\nif(EnableAlgo == &quot;ShortOnly&quot;)\n{\nAlgoStatus = &quot;Short Only&quot;;\nGfxSetTextColor( colorYellow ); \nGfxTextOut( &quot;Algostatus : &quot;+AlgoStatus , 20, 40); \nif(Nz(StaticVarGet(static_name_algo),0)!=3)\n{\n_TRACE(&quot;Algo Status : Short Only&quot;);\nStaticVarSet(static_name_algo, 3);\n}\n}\n\n\/\/PlaceOrder Sends Market Order Returns response on Succesful PlaceOrder\n\nfunction PlaceOrder(TransType,orderqty) {\n\n\/\/Creating the Trading Bridge\nalgomojo=CreateObject(&quot;AMAMIBRIDGE.Main&quot;);\n\/\/Preparing the API data\n\n\n\napi_data = &quot;{\n            \\&quot;stgy_name\\&quot;: \\&quot;&quot;+stgy_name+&quot;\\&quot;,\n            \\&quot;symbol\\&quot;:\\&quot;&quot;+symbol+&quot;\\&quot;,\n            \\&quot;exchange\\&quot;:\\&quot;&quot;+exchange+&quot;\\&quot;,\n            \\&quot;transaction_type\\&quot;:\\&quot;&quot;+TransType+&quot;\\&quot;,\n            \\&quot;duration\\&quot;:\\&quot;&quot;+duration+&quot;\\&quot;,\n            \\&quot;order_type\\&quot;:\\&quot;&quot;+order_type+&quot;\\&quot;,\n            \\&quot;quantity\\&quot;:\\&quot;&quot;+orderqty+&quot;\\&quot;,\n            \\&quot;disclosed_quantity\\&quot;:\\&quot;&quot;+disclosed_quantity+&quot;\\&quot;,\n            \\&quot;MktPro\\&quot;:\\&quot;&quot;+MktPro+&quot;\\&quot;,\n            \\&quot;price\\&quot;:\\&quot;&quot;+price+&quot;\\&quot;,\n            \\&quot;trigger_price\\&quot;:\\&quot;&quot;+trigger_price+&quot;\\&quot;,\n            \\&quot;product\\&quot;:\\&quot;&quot;+productType+&quot;\\&quot;,\n            \\&quot;is_amo\\&quot;:\\&quot;&quot;+is_amo+&quot;\\&quot;\n        }&quot;; \n\n_TRACE(&quot;Broker API Request&quot;+api_data);\nresp=algomojo.AMDispatcher(apikey, apisecret,&quot;PlaceOrder&quot;,api_data,broker,ver);\n\n_TRACE(&quot;API Response : &quot;+resp);\n\n_TRACE(&quot;Strategy Name : &quot;+stgy_name+&quot;  AlgoStatus : &quot;+ EnableAlgo);\n_TRACE(&quot;Chart Symbol : &quot;+ Name() +&quot;  Trading Symbol : &quot;+  symbol +&quot;Trading Interval : &quot;+Interval(2)+&quot;  Chard Id : &quot;+ GetChartID());\nSay( &quot;Order Placed&quot; ); \nreturn resp;\n\n\n\n}\n\nfunction GetPositionsBook()\n{\n\/\/Creating the Trading Bridge\nalgomojo=CreateObject(&quot;AMAMIBRIDGE.Main&quot;);\n\napi_data = &quot;{ }&quot;;\n_TRACE(&quot;PositionBook API Request&quot;+api_data);\n\n\/\/Sending The Broker Request for NetOpenPositions\nresp=algomojo.AMDispatcher(apikey, apisecret,&quot;Positions&quot;,api_data,broker,ver);\n_TRACE(&quot;PositionBook API Response : &quot;+resp);\n\nreturn resp;\n\n}\n\n\n\nfunction NetOpenPositions()\n{\nflag = 0;\n\n\nresp = GetPositionsBook();\n\n\nposNetqty =0;\nproductmsg=&quot;&quot;;\nfor( item = 1; ( sym = StrExtract( resp, item,&#039;{&#039; )) != &quot;&quot;; item++ )\n{\n\n\nif(Strfind(sym,symbol) AND StrFind(sym,product)) \/\/Matches the symbol and \/\/Matches the Order Type\n{\n\nflag = 1; \/\/turn on the flag\n\nfor( jitem = 0; ( posdetails = StrExtract( sym, jitem,&#039;,&#039; )) != &quot;&quot;; jitem++ )\n{\n\nif(Strfind(posdetails,&quot;product&quot;))\n  {\n   productmsg = StrExtract(posdetails,1,&#039;:&#039;);\n   productmsg = StrTrim(productmsg,&quot;\\&quot;&quot;); \/\/Trim if any extra white space\n   }\n \n\n if(productmsg == product AND Strfind(posdetails,&quot;net_quantity&quot;))\n  {\n   posNetqty = StrExtract(posdetails,1,&#039;:&#039;);\n   posNetqty = StrTrim(posNetqty,&quot;\\&quot;&quot;); \/\/Trim if any extra white space\n   posNetqty = StrToNum(posNetqty);\n    _TRACE(&quot;\\nNetqty : &quot;+posNetqty);\n  }\n  \n  \n\n} \/\/end of for loop\n}\n\n}\/\/end of for loop\n\n\nif(flag==0)\n{\n_TRACE(&quot;\\nTrading Symbol Not Found&quot;);\n\/\/posNetqty =0;\n_TRACE(&quot;\\nNetQty : &quot;+posNetqty);\n}\n\nreturn posNetqty;\n\n\n}\/\/end of Net Open Positions\n\n\n\n\n\n_SECTION_BEGIN(&quot;Live Algo Execution Module&quot;);\n\n\nif(EnableAlgo != &quot;Disable&quot;)\n    {\n        lasttime = StrFormat(&quot;%0.f&quot;,LastValue(BarIndex()));\n        \n        SetChartBkColor(colorDarkGrey);\n        if(EnableAlgo == &quot;Enable&quot;)\n        {   \n            if (AlgoBuy==True AND AlgoCover == True AND StaticVarGet(static_name_+&quot;buyCoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;) != lasttime )\n            {\n            \/\/ reverse Long Entry \n\t\t\t\tOpenPos = NetOpenPositions();\n                if(OpenPos==0)\n                {\n                \/\/If no open position send only x1 times of quantity\n                Newquantity = quantity;\n                _TRACE(&quot;No Open Positions Exist and Hence x1 times quantity will be punched&quot;);\n                }\n                else if(OpenPos == -quantity)\n                {\n                \/\/if already short positions are running send x2 times of quantity\n                Newquantity = 2*quantity;\n                _TRACE(&quot;Open Positions Exist and Hence x2 times quantity will be punched&quot;);\n                }\n                else\n                {\n                Newquantity = 2*quantity;\n                _TRACE(&quot;Warning Mismatch in Trading Positions and Check Manually and Take necessary Action&quot;);\n                _TRACE(&quot;Open Positions Exist and Hence x2 times quantity will be punched&quot;);\n                \n                }\n                \n                PlaceOrder(&quot;B&quot;,Newquantity);\n                StaticVarSetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;,lasttime);  \n                StaticVarSet(static_name_+&quot;buyCoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n        \n            }\n            else if ((AlgoBuy != True OR AlgoCover != True))\n            {   \n                StaticVarSet(static_name_+&quot;buyCoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyCoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            \n            if (AlgoBuy==True AND AlgoCover != True AND StaticVarGet(static_name_+&quot;buyAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Long Entry \n                PlaceOrder(&quot;B&quot;,quantity);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoBuy != True)\n            {   \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,&quot;&quot;);\n                \n            }\n            if (AlgoSell==true AND AlgoShort != True AND StaticVarGet(static_name_+&quot;sellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;sellAlgo_barvalue&quot;) != lasttime)\n            {     \n            \/\/ Long Exit \n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == quantity)\n                {\n                \/\/If positive open positions are there only then exit the longs \n                PlaceOrder(&quot;S&quot;,quantity);\n                }\n                else if(OpenPos != 0 AND OpenPos != quantity)\n                {\n                PlaceOrder(&quot;S&quot;,quantity);\n                _TRACE(&quot;Mismatch in quantity : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Sell Order is Placed to Exit the Long Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n                \n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoSell != True )\n            {   \n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoShort==True AND AlgoSell==True AND  StaticVarGet(static_name_+&quot;ShortSellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;ShortSellAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ reverse Short Entry \n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos==0)\n                {\n                \/\/If no open position send only x1 times of quantity\n                Newquantity = quantity;\n                _TRACE(&quot;No Open Positions Exist and Hence x1 times quantity will be punched&quot;);\n                }\n                else if(OpenPos == quantity)\n                {\n                \/\/if already short positions are running send x2 times of quantity\n                Newquantity = 2*quantity;\n                _TRACE(&quot;Open Positions Exist and Hence x2 times quantity will be punched&quot;);\n                }\n                else\n                {\n                Newquantity = 2*quantity;\n                _TRACE(&quot;Warning Mismatch in Trading Positions and Check Manually and Take necessary Action&quot;);\n                _TRACE(&quot;Open Positions Exist and Hence x2 times quantity will be punched&quot;);\n                \n                }\n                PlaceOrder(&quot;S&quot;,Newquantity);\n                StaticVarSetText(static_name_+&quot;ShortsellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;ShortSellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if ((AlgoShort != True OR AlgoSell != True))\n            {   \n                StaticVarSet(static_name_+&quot;ShortSellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortsellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n                \n            if (AlgoShort==True  AND  AlgoSell != True AND StaticVarGet(static_name_+&quot;ShortAlgo&quot;)==0 AND  StaticVarGetText(static_name_+&quot;ShortAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Entry\n                PlaceOrder(&quot;S&quot;,quantity);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoShort != True )\n            {   \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoCover==true AND AlgoBuy != True AND StaticVarGet(static_name_+&quot;CoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;CoverAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Exit\n\t\t\t\tOpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == -quantity)\n                {\n                \/\/If negative open positions are there only then exit the shorts \n                PlaceOrder(&quot;B&quot;,quantity);\n                }\n                else if(OpenPos != 0 AND OpenPos != -quantity)\n                {\n                PlaceOrder(&quot;B&quot;,quantity);\n                _TRACE(&quot;Mismatch in quantity : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Cover Order is Placed to Exit the Short Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n               \n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoCover != True )\n            {   \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        \n         else if(EnableAlgo == &quot;LongOnly&quot;)\n        {\n            \n            if (AlgoBuy==True AND StaticVarGet(static_name_+&quot;buyAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;buyAlgo_barvalue&quot;) != lasttime)\n            {  \n            \/\/  Long Entry\n                PlaceOrder(&quot;B&quot;,quantity);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoBuy != True)\n            {   \n                StaticVarSet(static_name_+&quot;buyAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;buyAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoSell==true AND StaticVarGet(static_name_+&quot;sellAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;sellAlgo_barvalue&quot;) != lasttime)\n            {  \n            \/\/ Long Exit\n                OpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == quantity)\n                {\n                \/\/If positive open positions are there only then exit the longs \n                PlaceOrder(&quot;S&quot;,quantity);\n                }\n                else if(OpenPos != 0 AND OpenPos != quantity)\n                {\n                PlaceOrder(&quot;S&quot;,quantity);\n                _TRACE(&quot;Mismatch in quantity : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Sell Order is Placed to Exit the Long Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,lasttime);\n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoSell != True )\n            {   \n                StaticVarSet(static_name_+&quot;sellAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;sellAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        else if(EnableAlgo == &quot;ShortOnly&quot;)\n        {\n            if (AlgoShort==True AND StaticVarGet(static_name_+&quot;ShortAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;ShortAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Entry\n                PlaceOrder(&quot;S&quot;,quantity);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoShort != True )\n            {   \n                StaticVarSet(static_name_+&quot;ShortAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;ShortAlgo_barvalue&quot;,&quot;&quot;);\n            }\n            if (AlgoCover==true AND StaticVarGet(static_name_+&quot;CoverAlgo&quot;)==0 AND StaticVarGetText(static_name_+&quot;CoverAlgo_barvalue&quot;) != lasttime)\n            {\n            \/\/ Short Exit\n                OpenPos = NetOpenPositions();\n\t\t\t\tif(OpenPos == -quantity)\n                {\n                \/\/If negative open positions are there only then exit the shorts \n                PlaceOrder(&quot;B&quot;,quantity);\n                }\n                else if(OpenPos != 0 AND OpenPos != -quantity)\n                {\n                PlaceOrder(&quot;B&quot;,quantity);\n                _TRACE(&quot;Mismatch in quantity : Exit Order is Placed. Kindly check the positions and take necssary action&quot;);\n                }\n                else\n                {\n                _TRACE(&quot;Warning : No Open Long Positions Exits and Hence No Cover Order is Placed to Exit the Short Position&quot;);\n                _TRACE(&quot;Kindly check the positions and take necssary action&quot;);\n                }\n               \n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,lasttime); \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,1); \/\/Algo Order was triggered, no more order on this bar\n                \n            }\n            else if (AlgoCover != True)\n            {   \n                StaticVarSet(static_name_+&quot;CoverAlgo&quot;,0);\n                StaticVarSetText(static_name_+&quot;CoverAlgo_barvalue&quot;,&quot;&quot;);\n            }\n        }\n        \n    }\n    \n\n\n\n_SECTION_END();\n\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Smart Order Module brings a 100% end-to-end automated trading solution for Amibroker users to automate their trading ideas with a simple plug-and-play module. Traders have to connect their trading system along with smart order execution to make their system trading life easier.<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"categories":[6,15],"tags":[13,7,143,46],"_links":{"self":[{"href":"https:\/\/algomojo.com\/blog\/wp-json\/wp\/v2\/posts\/321"}],"collection":[{"href":"https:\/\/algomojo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/algomojo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/algomojo.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/algomojo.com\/blog\/wp-json\/wp\/v2\/comments?post=321"}],"version-history":[{"count":11,"href":"https:\/\/algomojo.com\/blog\/wp-json\/wp\/v2\/posts\/321\/revisions"}],"predecessor-version":[{"id":1602,"href":"https:\/\/algomojo.com\/blog\/wp-json\/wp\/v2\/posts\/321\/revisions\/1602"}],"wp:attachment":[{"href":"https:\/\/algomojo.com\/blog\/wp-json\/wp\/v2\/media?parent=321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/algomojo.com\/blog\/wp-json\/wp\/v2\/categories?post=321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/algomojo.com\/blog\/wp-json\/wp\/v2\/tags?post=321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}