Showing Stop Orders in Ninja/cause you to be taken out
@Big Mike @Fat Tails anyone
Showing Stop Orders in Ninja/cause you to be taken out, need clarification here. Alot of traders say they dont use stop loss orders because they dont want anyone trading against them.. you know what I mean taking out there stops.... But with Ninja our orders set on our pc right, so how can they be seen or taken out. Ive heard this mentioned alot and Im curious am I wrong or others are???? I know with Thinkorswim our orders sit on their servers which can be seen and if they are a huge number at one location I could see how this could happen.
Many Thx in advance by answering this one
Last edited by Rad4633; April 8th, 2012 at 07:37 PM.
The following user says Thank You to Rad4633 for this post:
Regular stop orders sit on the exchange, not on your machine. OCO orders which consist of Stops and Limits placed on NinjaTrader will be sitting on your machine.
If your REGULAR stops (BUY STOP, SELL STOP) sit on someones server and not the exchange, I would be worried, but I doubt that is the case. Regular stops should sit on the exchange.
Also, IMHO traders don't place stops because their stops get triggered and as annoying as it maybe, you cant trade without them. Often, traders look at a few seconds or two past their stop, and see the market has reversed once it was hit.
Where to place stops require a whole discussion all together. Hope this helps.
PM with any questions about optimusfutures (800) 771-6748 (561) 367 8686. THERE IS A SUBSTANTIAL RISK OF LOSS IN FUTURES TRADING.
This post has been selected as an answer to the original posters question
There is not an easy answer to that question, the correct answer depends on the order type, the broker to which NinjaTrader is connected and whether you are running an automated strategy as opposed to discretionary trading.
Generally there are 3 cases, which are possible
(1) simulated stop order, which is held on your PC and converted to market order once the stop price has been hit
(2) simulated stop order, which is held by your broker and converted to a market order once the stop price has been hit
(3) hard stop order residing in the exchange
Now let us look at some examples for the 3 cases
Simulated Stop Orders Held on Your PC
For discretionary trading there are two cases, when orders may be locally held
-> stop orders with a volume trigger: these are always simulated as no broker or exchange supports them
-> OCO (bracket) orders: these are also simulated on your PC unless your orders are executed through Interactive Brokers or TD Ameritrade, in this case the OCO order is transmitted to the broker, who may either simulate it on their servers or further route it to the exchange
If you are running an automated strategy and use the managed approach, both the SetStopLoss() and the SetTrailStop() methods include a parameter, which allows you to specify, whether they are locally held or transmitted to the broker / exchange. For further information see NinjaTrader Help File "Managed Approach".
Simulated Stop Orders Held by the Broker
Once NinjaTrader has transmitted a stop order to your broker, the broker can either further route that order to the exchange (hard stop) or simulate it.
Why should a broker simulate a stop order and not transmit it to the exchange? The answer is that not all order types are supported by every exchange.
-> For a stop order set up with the DOM, NinjaTrader allows you to select between a stop market and a stop limit order. If the order type that you selected is not natively supported by the exchange, your broker will probably simulate it.
For example if you trade TF (Russell 2000) via ICE, you may have noticed that ICE does not support stop market orders. Therefore, if you send a stop market order to your broker, he will likely simulate that stop market order and only send a market order to the exchange, once the stop level has been hit. If you wish that your stop order resides on the exchange, you would need to select a stop limit order via the NinjaTrader DOM, as ICE natively supports stop limit orders and the broker does not need to simulate them.
-> Some brokers also offer protection features, such as a feature against partial fill. If you turn one of these features on, the broker may also simulate your order instead of sending them directly to the exchange. This depends on your broker and not on NinjaTrader.
Orders Held on the Exchange
In case that both NinjaTrader and your Broker do not simulate but route the stop order, it will reside on the exchange. Now you are afraid to put your order on the exchange, because it becomes visible in the order book. This is true, but does it really matter?
The answer is that it matters, if you are a huge trader (but then you may be interested in using iceberg orders) or if you are engaging in games with a FOREX broker, who trades against his customers. As a small trader participating in an exchange game you may go unnoticed without attracting an algorithmic predator. This is actually a prisoner's dilemma (see game theory), you are better off putting a hard stop, but if everybody acts like you, nobody will benefit from it, as the aggregated stops will finally attract predators.
I personally prefer hard stops for several reasons. In case that your internet connection to the broker or the internet connection from the broker to the exchange is disrupted, your order will still be triggered. Also it will be triggered much faster under adverse market conditions. A stop order that resides on the exchange, will be executed within a fraction of a millisecond, when my stop is hit. A stop order that resides on my PC will be triggered about 300 ms later, which can lead to significant slippage. I know that I can reduce the latency by renting server space near the exchange and running NinjaTrader on such a server.
Using Both Simulated and Hard Stops
For some of my automated strategies I have combined a simulated stop locally held (triggered at bar close only), with a wider hard stop, which I use as emergency stop. For the hard stop I use a multiple of the average true range added or subtracted from the previous bar close, which gets me out of the market in an emergency case. This stop can be trailed in both directions.
The following 11 users say Thank You to Fat Tails for this post:
So - to get to my 1 tick stop, 'they'd' need to chew through 1990 contracts to stop me out. It's pretty unlikely they'd do that for my $125
It's really not an issue. The issues is in putting your stops right where everyone else does. In that case, 'they' don't stop you out because they can see the stops. It's more a case that 'they' know where retailers put their stops anyway, they don't need to see your stop orders for that.
My opinion is that this is a non-issue.
The following 5 users say Thank You to DionysusToast for this post:
I used to think I was getting taken out by the big guys with my stops, later did I realize, my stop was a great Support/Resistance position. I was getting taken out because my stop was in the middle of the activate trading range (pull backs, etc). Needed to push them out beyond the S/R.
First, thanks to @Fat Tails for his very thorough response. I would just like to provide a boiled down official response from NinjaTrader.
- With the exception of a NinjaTrader simulated stop which is an optional feature of of our product (more information here Simulated Stop Orders)
- All orders are submitted to the broker and not simulated on your local PC by NinjaTrader
- For futures, most if not all orders are transmitted to the exchange from your broker
- Equities are different since having two exit orders at the exchange or liquidity pool violates exchange order handling rules thus a broker might submit one exit order to the market and simulate the other on their server
- NinjaTrader may simulate the OCO functionality of bracketed orders locally however, the orders are passed through and working either at your broker or the exchange
Last edited by NinjaTrader; April 9th, 2012 at 11:09 AM.
The following 10 users say Thank You to NinjaTrader for this post:
Hi Ninjatrader, thanks for the response but now I am more confused than before. I am a great fan of Ninjatrader and the excellent support you guys provide but to date have not signed up for a lifetime license due to this OCO issue.
Using Ninja ATM strategies running though a strategy script I leave positions overnight and have woken up in the morning with naked positions and sometimes large losses due to outages of one form or another. Fortunately these have been on sim.
To counter this risk I've been entering live orders directly into IB based on signals from Ninjatrader. I only use limit orders for entries although market stops.
I've been using Zenfire as the data feed as the IB datafeed is aggregated and of little use to me primarily as a cumulative delta trader. This is far from my ideal solution as I have spent quite a bit of time developing ATM strategies and would like place trades directly through ninjatrader to the brokerage.
The OCO issue has been raised several times on the ninjatrader forum and this helpful link summarizes the situation in respect of individual brokers which states OCO orders are simulated on the trader's local PC with the exception of IB. If this is still accurate it's disappointing other brokerages have not stepped up the plate to mitigate trader risk. There really needs to be much better clarity on this issue from the broker end.
So in respect of this, can you please advise how the following scenario is protected.
Attached is a chart that shows user drawn lines for stop, target 1, target 2 and target 3. For example as I move the red lines up and down the stop orders are automatically modified and sent to the broker using the following code. If there is a target 3 it will move a target 3 stop.
Questions are as follows:
1. Is the above code considered a simulated stop? It doesn't seem to fall within the definition based on the link you provided.
2. Assume I am in a 3 contract position and the feed goes down/or there is a power outage for an hour and during that time the price drops below the red line what happens to the stops and targets upon reconnection? Based on the link I posted before it would suggest if using IB the trade would be closed at the red line stop amount as it was transmitted and held on their server?
3. What would happen if I used Zenfire? Would I be in a live position of 3 contracts with no stops or targets?
4. Based on the attached chart my stops for Targets 2 and 3 move to breakeven once the realized profit has exceeded $1 (ie target 1 has been hit). I use the following code for this. Again what happens if Target 1 is hit? Would that instruction to move the red line stop to breakeven be reflected on IB and/or Zenfire's servers or would the remaining stops just stay where it is or would it be cancelled?
Thanks in advance
Last edited by djkiwi; April 9th, 2012 at 03:12 PM.
1. I can't tell if its a simulated stop since this is determined by the ATM Strategy template that your code is calling. You would need to check the ATM strategy itself to see if Simulated Stop is enabled.
2. If not using a simulated stop, your stop order would be triggered and filled. If with IB, OCO orders are held on their servers thus the OCO paired target would be cancelled. If on Zen-Fire, then the target would still be working or filled if the market moved back past your target order.
3. See answer #2.
4. ATM strategy logic is local to your PC. Stops and target orders are at the exchange/broker with the execption of a simulated stop.
The following user says Thank You to NinjaTrader for this post:
Thanks for the quick response. Please see other points.
To tell the truth I was under the impression that it was ATM strategies themselves that resulted in PC simulated OCO orders. I hadn't even noticed that simulated stop parameter in the template. Thanks for clarifying that. My simulated stop is set to zero so it is not simulated.
On this one, so IB would be ok. If the stop was hit, all the targets would be cancelled.
I am still unclear with Zenfire, if the price dropped below the red stop line during the outage are you saying I would have been stopped out but the 3 targets would still be live as naked open orders until I canceled them manually through Ninjatrader?
So on this one, if Target one had been hit during the outage then the remaining stops for Targets 2 and 3 would remain where they were prior to the reconnection due to them being on their servers at that point. The stops would only move to breakeven for both IB and Zenfire ONLY on reconnection?