Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
I am thinking of trading the ES or 6E with MIT orders because I am having issues with limit orders.
The problem I have with limit orders for example if trading the ES is that when I place a buy limit order at say 1456.50 I will get filled at 1456.50 but then price usually goes 1 tick lower to 1456.25. So I will usually be down 1 tick after being filled.
Also, if price just hits the limit at 1456.50 and does not penetrate the limit price, I will not get filled. I think this is due to market orders being filled ahead of limit orders. So once all the limit orders are filled at that price, price invariably penetrates that level.
I am hoping that by using MIT orders I can solve this. As I understand it, when price hits an MIT order, it buys or sells at the market price, either 1 tick below or above where I placed the MIT order. This is because it buys at ask and sells at bid at the 1 tick spread. This causes 1 tick slippage.
Is it possible to only enter a market order when the bid/ask hits the MIT order, instead of entering at market when price hits the MIT order. In order to reduce the 1 tick slippage?
I am hoping by doing this I will get faster fills than I would with limit orders, but at the same time, not experience slippage.
I am trading a range strategy as oppose to breakout or trend trading. Buying at support, selling at resistance.
Welcome to the forum. You asked a few interesting questions, will be fun to answer.
A market if touched order is a conditional order, which is not shown on the order book. It will be activated when price touches the trigger price. Now let us first describe how this works and compare it to a simple limit order.
Let us assume that you trade ES 09-13, and that you issue a market-if touched buy order at a trigger price of 1456.50. Also let us assume that current prices are above that level. This is likely to happen:
(1) When price hits the level 1.4650 your order will be activated as a market order. When the first lots trade at 1.4650 and prices have been above that level before, those trades are probably executed at the best bid. This means that the trades that print at 1.4650 are probably the result of market sell orders being crossed with limit buy orders. If your market buy order now hits the order book, it will be crossed with a limit sell order at the best ask, which should be 1.4675.
(2) If you use a conventional buy limit order to enter, then you will likely get filled at 1.4650. This shows that you will obtain a better price if you enter with a limit buy order. However, even if the market is touched, there is no guarantee that you will be filled. Whether you are filled or not depends on your position in the order queue of the limit book, which is based on price- time priority.
(3) Conclusion: The limit buy order gets you are better price, but the market-if-touched buy order will be executed with a higher probability.
(4) CME does not offer market-if-touched orders. Please explore the reference manual per link below to understand available order types
Therefore market-if-touched order needs to be simulated by your broker or your trading front end. My broker offers market-if-touched orders, NinjaTrader does not have them as part of the ATM strategies, but it can be simulated in automated strategies.
I guess that you usually place your limit orders a short time ahead, which means that you are close to the end of the order queue. Once price has reached the end of the order queue, it typically trades down another tick, as the new best bid will be one tick lower, and the order queue for your limit price has been exhausted.
When ES first trades at 1456.50, buy limit orders are crossed with market sell orders. You may not get filled
- if there are other limit buy orders with the same limit price in front of you in the order queue
- if there are not sufficient market sell orders to exhaust the order queue
Market buy orders would not trade at 1456.50, but would execute at the best offer, which would be 1456.75, that is one tick higher. As they offer a higher price, they will be executed ahead of you. The market-if-touched order would basically do the same thing as a market order that competes with your limit buy order.
Price does not hit any order, price is just an attribute. It is your market order - once the MIT order has been converted - that hits the order book and will be crossed with a sell limit order.This will typically cause 1 tick slippage. You will pay a higher price compared to execution via a limit buy order.
Here is the same confusion. Price never hits an order. The MIT buy order is a hidden order, which is activated once the market has touched the level 1456.50. When it touches this level, this will likely be the current best bid, as for ES you would need a pretty large order to trade through one or several levels. The current best offer will then be at 1476.50.
If you use market orders, you will always pay the spread between bid and offer which could be even more than 1 tick. If you want to exclude slippage, you will have to use a limit order.
The only other option you have, is to reduce the risk of a large slippage which you have, when you use a market-if-touched order. This can be achieved by using a limit-if-touched (LIT) order. The limit-if-touched order has a trigger price and a limit price which can be different from the trigger price. For example you can use 1476.50 as your trigger price and 1476.75 as your limit price. This will not help you to avoid the 1 tick slippage, but you will avoid a slippage larger than 1 tick during times when liquidity is low.
In your case I would simply use a limit order. If you place it ahead and do not move it around, then you should be on the front end of the order queue, which increases the odds of execution.
For a detailed description on the mechanics of ththe order book works and order types also see the book by Barry Johnson: Algorithmic Trading & DMA.
Another great dissertation from one of the few Advanced futures.io (formerly BMT) members with the "Legendary" Forum Reputation offering a hand up to a self proclaimed Beginner, as always @Fat Tails very well done, thank you. Guys like you make this site #1 in the World.
I read @nourozi post this morning and a few thoughts kept gnawing at me. The first thought that jumped out at me was this was all an attempt as nourozi stated, "In order to reduce the 1 tick slippage," that's cutting the meat off pretty close to the bone! Agreed, that one tick maybe extremely vital when trading 5 or 6 tick price rotations but that one tick of slippage becomes much less important when trading ranges of 15, 20 or 25 ticks. If I could make one suggestion not only to nourozi but to "Beginners" in general it would be Don't strive for perfection. I believe this tendency to exit trades on specific price levels came with the finer and finer granularity of data we all now receive. Most traders around the world see the exact same lines on our charts depicting prices where we desire to conduct business, my suggestion to beginner traders is to think of these prices as "areas" not exact prices. Not many traders today remember when $20 round turn commissions were a bargain from a "discount" broker and $50 and $60 were the "norm." The reason I mention this is when trading with those costs staring you in the face during each entry, the market indeed had to move to a significant higher or lower level to make the trade and trading profitable. Yes we all know those days are gone, thank God, but I still find myself trying to squeeze that one extra tick out of the market to cover costs, silly me. Fat Tails mentioned "His broker" (Interactive Brokers, I assume) offers market-if-touched orders, in fact they (IB) offers over 50 order types and algos (a few less for futures). Order Types and Algos The point I'm trying to make here is the competition for that one tick on that one price level or study line is fierce and do I have to add, it happens at the speed of light! I'll close by reiterating Fat Tails book suggestion, IMO this book should be on every "newbies" bookshelf. Why, because this ain't your Daddy's market, the times have changed and although the game is the same at it's core, it's played much differently and I believe this book enlightens readers to those differences. Algorithmic Trading and DMA: An introduction to direct access trading strategies: Barry Johnson: 9780956399205: Amazon.com: Books
Thanks Fat Tails and Cashish, that was a great response. Clarified a few things for me.
Is there any way to simulate an automated strategy which uses limit orders accurately? Can you do this with NinjaTrader? I want to know how often I get filled on limit orders when they are touched and not penetrated by 1 tick.
I am thinking of entering limit orders about 5-9 ticks away from price.
Also, I am curious why the 1 tick range charts look so different on the 6E compared to the ES. What causes the 1 tick fluctuating movement of the ES and why doesn't the 6E do this? Seems very strange to me.
By looking at both 1 tick range charts, it looks like the ES would fill my limit when touched more often than the 6E due to the fluctuating price movement. i.e price levels seem to be hit more than once on the ES.
I tried to attach a chart comparison but I wasn't able to as I have not yet posted 5 times...
There are a few things that can not be simulated. You only know that you will get filled on a limit order when the market trades through the limit price. When the limit price is only touched, then the probability that you will be filled depends on several conditions.
For simplicity let us assume that you set up a limit buy order. If price was above the limit price and now touches the limit price, it is likely that limit buy orders are crossed with market sell orders.
Let us assume that there are 1,000 limit buy orders at the best bid. Let us further assume that there were 500 market sell orders that hit the best bid, before price reversed to the upside. In this case half of the limit order were filled and the other half was left in the book. Whether you get filled or not, depends on how early you have entered your limit buy order. If you entered the order when the market traded 5 ticks above the limit price and somebody else had entered the order, when the market traded 10 ticks above the limit price, that somebody else will be served first.
Backtest: For a NinjaTrader backtest, no level 2 data can be used. It is not possible to make any estimation of the likelyhood of a fill, when the market touches your limit price but does not penetrate it.
Market replay: Market replay has level 2 data available, and you could try to record the size of the order book and compare it to the number of trades that printed at your limit price. This would get you an idea of the probability of a fill. But what you cannot simulate in market replay is the position of your order in the order queue. This depends on how early you had entered your order.
Say price was at 1574.00 and I place a sell limit order 5 ticks above at 1575.25. Assume 10 minutes (arbitrary) has passed since I placed my sell limit order and price is now trading at 1572.75 (10 ticks below my sell limit). If someone now places a sell limit at 1575.25, will they not be behind me in the order queue even though I placed mine when price was only 5 ticks from my order? I still placed my order earlier than the other trader.
Of course, your are right. My description above was a simplification. I assumed that somebody entered a limit order early when the market was still trading far away from the limit price...
The priority within the order queue is probably determind by time priority. For details have a look at the matching rules used by the exchange. There may be some special cases or other considerations that I am currently unaware of.