Home › Forums › Trading System Mentor Course Community › Running Your Trading Business › Batchtrader ‘Unack’ trade order
- This topic is empty.
-
AuthorPosts
-
July 29, 2016 at 12:31 am #104906AnonymousInactiveJulian Cohen wrote:Darryl Vink wrote:Julian Cohen wrote:…mind you there are another 499 of them in the index so….
is there a list somewhere ?
498 now….you are making the list as you go mate
seems appropriate that Intel and Microsoft are the only ones conspiring to screw with us so far 👿
July 29, 2016 at 12:56 pm #104898AnonymousInactiveMaurice Petterlin wrote:…Can you post a screenshot of batch trader with the unack. I’m curious to see what it looks likeJuly 29, 2016 at 12:58 pm #104896AnonymousInactiveDarryl Vink wrote:got another ‘Unack’ order tonight… so far:
INTC
MSFTand:
CSCO497 to go…
July 29, 2016 at 1:28 pm #104913LeeDanelloParticipantThat is interesting
July 29, 2016 at 3:13 pm #104914JulianCohenParticipantDarryl Vink wrote:Darryl Vink wrote:got another ‘Unack’ order tonight… so far:
INTC
MSFTand:
CSCO497 to go…
Yup I have all three today too
July 30, 2016 at 9:50 am #104824ChrisViridesMembercould we just add an iterative if – else statement into the batch explorer code?
something like
if (symbol = Msft){
exchange = blah;
}
else if……else exchange = smart.
I will give it a bash once everyone here goes to bed.
July 30, 2016 at 12:58 pm #104825ChrisViridesMemberWould this fix it?
if(Name() == “MSFT”){
AddTextColumn(WriteIf(BO1,”ISLAND”,””),”Exchange”,1.3,29,55,80);
}
else if (Name() == “INTC”){
AddTextColumn(WriteIf(BO1,”ISLAND”,””),”Exchange”,1.3,29,55,80);
}
else if (Name() == “CSCO”){
AddTextColumn(WriteIf(BO1,”ISLAND”,””),”Exchange”,1.3,29,55,80);
}
else AddTextColumn(WriteIf(BO1,”SMART”,””),”Exchange”,1.3,29,55,80);August 4, 2016 at 11:58 am #104826JulianCohenParticipantFound another one
BRK.B
The list so far:
INTC
MSFT
BRK.B
CSCOBy the way I questioned Levente about changing the name in the code and he said the following:
You can use a venue name instead of SMART – this is called direct routing (as opposed to smart routing)
You have to make sure that the exchange name is valid – in TWS you can select a ticker, right click on it and see the contract details – there should be a field listing the valid exchanges. You have to pick one of the exact names listed there.
The MOC functionality will work as well, but you also have to mention the exchange/venue name in the Batch Order Entry Settings in the position closing times field.
Of course I will be testing this maybe tomorrow…
August 4, 2016 at 1:21 pm #104827LEONARDZIRParticipantJust to add to the unack issue I placed about 60 limit orders last night and each of them had an unack attached to the order. I canceled all the orders. I resubmitted the orders through batch trader this morning and all orders were live.
August 4, 2016 at 1:25 pm #104987SaidBitarMemberit depends on the time you submit the orders.
All orders are Unack and they start to change to live starting from 3 hours before the openAugust 4, 2016 at 2:04 pm #104919AnonymousInactivePaul Leavitt wrote:Would this fix it?if(Name() == “MSFT”){
AddTextColumn(WriteIf(BO1,”ISLAND”,””),”Exchange”,1.3,29,55,80);
}
else if (Name() == “INTC”){
AddTextColumn(WriteIf(BO1,”ISLAND”,””),”Exchange”,1.3,29,55,80);
}
else if (Name() == “CSCO”){
AddTextColumn(WriteIf(BO1,”ISLAND”,””),”Exchange”,1.3,29,55,80);
}
else AddTextColumn(WriteIf(BO1,”SMART”,””),”Exchange”,1.3,29,55,80);would work i imagine paul but might get big once the list starts growing. putting them into a watchlist and using something like this might be the way to go:
Code:AddTextColumn(WriteIf(BO1,WriteIf(inwatchlistname(“ISLAND”),”ISLAND”,”SMART”),””),”Exchange”,1.3,29,55,80);not sure how many watchlists we may need though… fine if ISLAND is the only one…
August 4, 2016 at 8:58 pm #104828Nick RadgeKeymasterQuote:Just to add to the unack issue I placed about 60 limit orders last night and each of them had an unack attached to the order. I canceled all the orders. I resubmitted the orders through batch trader this morning and all orders were live.Unack simply means the orders are being held on the IB server because the exchange is not open. When the exchange opens the orders are sent and become Live.
August 5, 2016 at 9:00 am #104990JulianCohenParticipantDarryl Vink wrote:Paul Leavitt wrote:Would this fix it?if(Name() == “MSFT”){
AddTextColumn(WriteIf(BO1,”ISLAND”,””),”Exchange”,1.3,29,55,80);
}
else if (Name() == “INTC”){
AddTextColumn(WriteIf(BO1,”ISLAND”,””),”Exchange”,1.3,29,55,80);
}
else if (Name() == “CSCO”){
AddTextColumn(WriteIf(BO1,”ISLAND”,””),”Exchange”,1.3,29,55,80);
}
else AddTextColumn(WriteIf(BO1,”SMART”,””),”Exchange”,1.3,29,55,80);would work i imagine paul but might get big once the list starts growing. putting them into a watchlist and using something like this might be the way to go:
Code:AddTextColumn(WriteIf(BO1,WriteIf(inwatchlistname(“ISLAND”),”ISLAND”,”SMART”),””),”Exchange”,1.3,29,55,80);not sure how many watchlists we may need though… fine if ISLAND is the only one…
This works nicely Darryl. Haven’t tested it yet. Might do that tonight. BRK.B is not going to work as it is BRK B in TWS….I might write a separate line of code for it to change it for TWS but I also might wait and see how many tickers we end up with that need this.
August 5, 2016 at 4:03 pm #104999AnonymousInactivewait and see sounds good… if IB has a consistent way of reformatting symbols that replace a “.” with a space ” “, then we could potentially use another watchlist and some funky string replacements like:
Code:If(inwatchlistname(“IB_SHITE”) {
symbolName = Name();
ibName = StrReplace(symbolName,”.”,” “);
AddTextColumn(WriteIf(BO1,”” + ibName,””),”Symbol”,1.3,29,55,90);
AddTextColumn(WriteIf(BO1,”STK”,””),”Type”,1.3,29,55,80);
AddTextColumn(WriteIf(BO1,””,””),”Expiry”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Strike”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”P/C”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Multiplier”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Trading Class”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,WriteIf(inwatchlistname(“ISLAND”),”ISLAND”,”SMART”),””),”Exchange”,1.3,29,55,80);
}else if(inwatchlistname(“ISLAND”) {
AddTextColumn(WriteIf(BO1,”” + Name(),””),”Symbol”,1.3,29,55,90);
AddTextColumn(WriteIf(BO1,”STK”,””),”Type”,1.3,29,55,80);
AddTextColumn(WriteIf(BO1,””,””),”Expiry”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Strike”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”P/C”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Multiplier”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Trading Class”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,WriteIf(inwatchlistname(“ISLAND”),”ISLAND”,”SMART”),””),”Exchange”,1.3,29,55,80);
}else {
AddTextColumn(WriteIf(BO1,”” + Name(),””),”Symbol”,1.3,29,55,90);
AddTextColumn(WriteIf(BO1,”STK”,””),”Type”,1.3,29,55,80);
AddTextColumn(WriteIf(BO1,””,””),”Expiry”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Strike”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”P/C”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Multiplier”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Trading Class”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,WriteIf(inwatchlistname(“ISLAND”),”ISLAND”,”SMART”),””),”Exchange”,1.3,29,55,80);
}AddTextColumn(WriteIf(BO1,””,””),”Primary Exchange”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,”USD”,””),”Currency”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Comb Legs”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Leave This Empty”,1.3,29,55,Width1);
AddTextColumn(WriteIf(BO1,”Buy”,””),”Action”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””+STB1,””),”Quantity”,1.0,29,55,Width);
AddTextColumn(WriteIf(BO1,”LMT”,””),”Order Type”,1.3,29,55,Width1);
AddTextColumn(WriteIf(BO1,”” + buyLimit,””),”Lmt Price”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Aux Price”,1.3,29,55,Width);
AddTextColumn(WriteIf(BO1,””,””),”Ctrl”,1.3,29,55,Width1);
AddTextColumn(WriteIf(BO1,””,””),”Id”,1.3,29,55,Width1);
AddTextColumn(WriteIf(BO1,””,””),”Status”,1.3,29,55,Width1);
AddTextColumn(WriteIf(BO1,””,””),”Filled”,1.3,29,55,Width1);
AddTextColumn(WriteIf(BO1,””,””),”Remaining”,1.3,29,55,Width1);
AddTextColumn(WriteIf(BO1,””,””),”Ave Fill Price”,1.3,29,55,Width1);
AddTextColumn(WriteIf(BO1,””,””),”Last Fill Price”,1.3,29,55,Width1);
AddTextColumn(WriteIf(BO1,””,””),”Parent Id”,1.3,29,55,Width1);
AddTextColumn(WriteIf(BO1,”DAY”,””),”Time in Force”,1.3,29,55,Width1);August 6, 2016 at 12:17 am #105003JulianCohenParticipant:ohmy:
I might have to report you to the moderator for swearing in code
-
AuthorPosts
- You must be logged in to reply to this topic.