I am building a automated trading system for trading ES and other futures. I am confused whether to use STOP ORDERS for stop loss or just fire a market order as and when the closing price hits my stop price. The confusion mainly stems from the use of BID/ASK price as the trigger price by the broker for stop orders. My model is built on close price (trade price) only and does not take into account the BID/ASK price at all. Also in simulation (rithmic) I noticed that due to the spread my stops were executed, prematurely, well before the stop price was actually hit. That means, in cases, I got stopped-out for a loss whereas had the broker waited for the closing price (instead of the bid/ask price) to reach the stop price the trade would have actually been a highly profitable one.
This is what I think I could do:
1. Don't use STOP orders. instead just fire a market order when price hits stop price. Do you think doing away with STOP orders make sense? Is the downside too disastrous?
2. Set my stop loss using BID/ASK price instead of close price.
3. Is it possible to create custom STOP orders that triggered at close price instead of BID/ASK? ha ha do you know any brokers who provide that?
Please share your opinion.
The following user says Thank You to jefforey for this post:
A stop order is an order that becomes a market order if any trades have executed at your specified price. Your stops are executing because the price did touch your stop, even though it may have only been one lot that executed. In this case you'll probably just want to give yourself a wider stop and see how it affects your strategy.
Now it is possible to create your own virtual stop strategies by sending a market order when certain conditions are met. For instance, only execute if the level 2 info shows price is about to leave your stop price. However, I wouldn't write one based on the close of a bar. A security could move well past your stop before the close.
The following 2 users say Thank You to TWDsje for this post:
There are many ways to go about using stops and technically, when a stop fires @CMEgroup what's really entering the market is a limit order, not a market order. CME doesn't really have market orders at all. They submit limit orders "x" number of ticks into the market. They refer to this as market with protection. You can take this a step further and submit other order types like iceberg orders based on a stop threshold. CME doesn't support that combo but some ISVs do with their co-located synthetic servers.
Yes, you can set your trigger off of anything you like. Bid/ask, LTP, volume thresholds, even specific times.
If you have any questions about the products or services provided, please send me a Private Message or use the futures.io "Ask Me Anything" thread
The following 3 users say Thank You to TradingTech for this post:
Well, that is exactly the problem. No trades were executed at my stop price. Only the best bid/ask reached my stop price and that triggered my stop order. If i look at the chart the bar where my order executed is just above/below my stop price. This is the very reason for the confusion.
No I meant trade price. It could be high, low, open or whatever. In automation we call it close price. because a bar has only one open price but several high, low and close prices. when a bar progresses every tick is a close price and when that bar is complete and the next bar begins the price at which the last bar completed becomes the final close price for that bar.
Well this is what i use for creating a stop order. as you can see there is no way to define the trigger type (ltp, bid/ask, volume etc). I think it is left up to the broker to chose. This is from motivewave strategy.
However, my advice remains the same. Try giving yourself a bigger stop, and seeing how that affects the strategy's profitability. You can also write your own stop that basically sends a market order when the specified conditions are met.
I'll add that if your strategy is getting stopped out of winning trades that you might want to look at ways to refine your entries instead.
Do you mean this?
if Low()<=stopprice then
SendMarketOrder(Sell, qty);
I have tried this but slippage increases. I am aware that Stop Order are also market orders sent on trigger but since they resides with the broker they will execute earlier than the market orders sent by me and hence less slippage.
I am getting stopped out of winning trades because the stops are triggered incorrectly based on ASK/BID. If the stops are triggered on the basis of LTP then I would not have a issue.
Yes. As stop with protection is the same thing as a limit order. The order enters the market "x" levels into the book and gets filled at the best available price. A true market order has no protection.
If you have any questions about the products or services provided, please send me a Private Message or use the futures.io "Ask Me Anything" thread
The following user says Thank You to TradingTech for this post:
Trading: The one I'm creating in the present....Index Futures mini/micro, ZF
Posts: 2,263 since Nov 2011
Thanks: 7,157 given,
4,396
received
I'm sorry but a stop with protection is not the same thing as a limit order.
Yes it does place a limit order, also, but once the stop is triggered market orders are sent and as we know will be filled at the next available price(s). The limit set at a certain distance might or might not be used and is only there as the "protection" if the market has a sudden large move you don't have a fill far far away but you might not ever get filled on part of the position if the market moves away from the limit.
Reading through the examples from the CME in the above posted picture for both the bid and the ask make this abundantly clear.
It's an exchange defined limit and you're welcome to take up the conversation with the CME. You're better off defining your own limit using a synthetic stop limit as the exchange does not publish their protection levels. You may configure your triggered stop limit to enter the market at a pre-determined number of ticks into the market. This removes the need to rely on the exchange defined "protection" limit.
If you have any questions about the products or services provided, please send me a Private Message or use the futures.io "Ask Me Anything" thread
The following user says Thank You to TradingTech for this post:
Yes, you will get more slippage with a synthetic stop. You'll also incur more losses on your losing trades if you use a wider stop. That's the trade-off you get for having a more forgiving stop. Maybe this trade-off helps your strategy, maybe it doesn't.
From the CME link it appears that market order has to be triggered by a trade but that does not seem the case in Rithmic simulation as my STOP ORDER is triggered by Best BID/ASK reaching the stop price. I have verified this several times from the chart. LTP never reached my stop price but stop order was triggered and traded a tick above/below the stop price. This just get more confusing for me.
The following user says Thank You to jefforey for this post: