User Rudolf Skubella was concerned because market and stop orders placed automatically by NeuroShell to Interactive Brokers were not getting executed outside regular trading hours (RTH) even though we flag such orders as eligible for execution outside RTH. After extensive investigation he has found the following for us:
A) IB automatically strips Market Orders and Stop Orders of all after hours commands and only executes them during regular trading hours.
B) Limit and Stop Limit Orders do not get stripped and work correctly.
C) He has created a NeuroShell Strategy that sends Limit orders and all works just great.
D) Since Stop orders get stripped, and he is not too hopeful that IB will change anything, he would like to figure out a method incorporating trailing stops into his limit order strategy.
We proposed the following two solutions for D above until such time as IB makes a change:
1. Try creating trailing stops by using the Exit orders tab and a Stop Limit order instead of using the Trailing Stop tab. If he already has exit orders, which it sounds like will have to be limit orders anyways to work with IB after hours, he can simply make exit orders fire all the time (for instance use A=B(Close,Close as an exit condition) and then put the exit and trailing stop calculations in the Stop Limit prices. For instance:
Limit Price: If (exit conditions) then (exit limit price), Else (dummy limit price for trailing stop)
Stop Price: If (exit conditions) then (dummy exit stop price) Else (Trailing Stop Price)
We used the word dummy to represent a limit or stop price that will always get executed. So for instance if the exit is a stop order, then he can submit an equivalent Limit Stop order as long as the limit price will always get executed. Likewise for replacing a Limit order with a Stop Limit Order. So essentially he is making a Stop Limit Order work as either a Stop Order or a Limit Order depending upon the exit conditions and trailing stop values.
2. The example code we supply with the Tradepump API is, in fact, the actual code we use to send trades to IB. As a programmer, he could modify the TradePump example to convert trading signals coming from NeuroShell in any way he wants, and then use his converted code instead of ours.
Aside from talking to IB’s Support, Rudolf raised the issue on IB’s relevant website ‘Interactive Brokers Features Poll’ by initiating a “suggestion” that you will find under the following direct URLs :
He put that ‘suggestion’ there under two categories: ‘Order Types’ and ‘API’. The title is: “Trading outside of regular trading hours”. Rudolf requests that other concerned users who trade with IB using the NeuroShell IB interface vote for his suggestions in both places. Voting requires that a person is IB’s customer and he/she needs a ‘Voting Username and Password’. The important issue of anonymity appears to be OK with how that is handled.