What is the usual way of use?
Placing an OCO strategy creates a live entry order in the order book.
Same time an attached stop and target order is hold back on the server until the entry order gets an execution.
With the execution of the entry order, the stop and target order(s) will be placed into the order book as well.
Yesterday i had a trade activated exactly this way ... but the whole thing went completely wrong
Because of a news flash the market was in fast market conditions and i got a fill for my -3 CL SHORT order at 57.30.
Usually with this fill the stop order at 57.37 and the target order(s) are placed.
But in this case the price of crude was immediately at 57.40 and the system showed a rejection info for the stop order - because "buy order stop price must be above last trade price ExchangeRejectCode = 2061"
What does this mean the second it happened?
i was SHORT -3 CL that had to be stoped with -7 ticks = -210 USD without slippage
i still was SHORT -3CL with -10 to -15 ticks = -300 to -450 USD and with no active Stop order
Luckily the price came back to entry i closed the position ... BUT
What does this error mean worst case?
Lets do the math ...
Imagine you are a well educated trader with a nice account size and are able to manage bigger positions.
You place an order to SHORT -50 ES at 3105 with a stop of 2 points (8 ticks) at 3107 -max risk without slippage 50 x 50 x 2 = -5000 USD RISK
because of a news the market jumps in ES by 20 points in a second
you get the fill of -50 ES at 3105 and same second ES trades at 3125 ... your stop order 3107 is rejected because ... buy order stop price 3107 must be above last trade price 3125
so instead of being stoped with -5000 you still have a open position with actual -20 x 50 x 50 = -50.000 unrealized loss !!!
and you did nothing wrong - your risk/reward management was perfect as always - but there was an technical issue you couldn't even imagine and you were forced into an unlimited risk position
I contacted Ninja support for this issue and got the following answer:
Thanks for writing in.
You're correct to say that ATM strategy exit orders are not placed until the entry order is filled. In very fast moving markets this can result in those orders being rejected and leaving you in an unprotected position. This is not a bug, but an expected result of very specific market circumstances along with your ATM settings.
As you said, if the stop and target orders are submitted along with the entry order, this means that any of those three orders (entry, stop, target) has a chance to fill. Obviously in an ideal world the entry would fill and your target would be hit which would cancel your stop and put money in your account, but that is not how the market works unfortunately.
There is no way to work around this limitation currently as NinjaTrader has no control of the underlying order routing technology but must rely on the order routing technology of the connection. For example, when using NinjaTrader Brokerage, you typically connect to a CQG-based account.
While there are plans to bring everything under one roof and control the order routing technology which would allow for the order submission behavior you desire, it's simply not possible at this time.
I dont care if this is an issue of NT or other software or an OCO handling issue from the brokers!
If i use an OCO order the entry and the stop order has to be placed same time - the target orders have to be placed only when the entry order is filled.
All other handlings doesn't make sense in my eyes and putting the accounts of each trader on risk. The actual OCO order handling should be changed by all participants (software and broker).
Please add your experience in similar case. I am wondering that this issue wasn't addressed and fixed for so long.
"This is not a bug, but an expected result? " - I would never expect this, because it doesn't make sense in any kind of risk management!
Comment