Market On Open Orders Vs Limit Orders, how does one get the most efficient fill possible?
Recently I've been looking into trying to make my fills more efficient, since I noticed my real life Interactive Brokers MKT on open orders dont fill as well as backtesting with the IB brokerage model. I also noticed that the MKT on open orders even get better fills than when I set a BTO Limit at Security.BidPrice as well as Security.Open @ 09:30:00 while using second data. I cant figure out what price the IB brokerage model is determing the fill with, but I'd like to emulate it if I could to get better real life fills. Currently my expectancy in my live algo far worse than the backtests. Any recommendations or ideas greatly appreciated.
Whats the most efficient way to fill at market open??
Kon Rad
Brokerages don't determine any prices, they simply send your orders to the exchange(s). Opening prices are determined by an auction process, so prices cannot be known or determined before all bidders submit their bids and the auction happens, just like in any auction.
This is the whole point of the auction, so if you wanted to "determine" the price before an auction then the whole auction wouldn't make sense, and nobody would paricipate in an auction if one person would determine the price that other people will be bidding, and therefore took advantage of everyone else. For example when I place an 'on open' order then I don't want you to know what price I will be offering, therefore you have no right to have this information and profit off of me :-)
Timothy Comisky
hmmm.
First, thank you for the reply.
Interesting. That is probably why the data I get in that second live and the open price when looking back in time dont match, because its undergoing the auction in that second. Sounds like maybe I need to determine a good price from the bid/ask spread in the second prior to the auction and be part of it with a limit order and hope it fills rather than being at its mercy with a BTO MKT or a limit determined from prices in that second in the auction? Just want to get fills as good as the IBKR model in QC XD
Kon Rad
Yes, more or less. But there are some protections in the marketplace to prevent people from having an edge/advantage, so for example the latest "on open" bids are accepted only until 2 minutes before the market opens. So you cannot wait until last second. And if you could wait until the last second, everyone else submits their bids several minutes before the market opens, so you still cannot know what bids is everyone submitting. And the exchanges determine the price by comparing all submitted bids to submitted offers (to sell) and available quantities between buyers and sellers. So really the opening price is quite random, although similar to pre-market price.
And I think that all quants / algo programmers go through the process of trynig to make profit based on the opening price, but this is always a mistake. If such method existed then one company would make tons of money while everyone else would lose and stop trading at market open. So the whole process must be balanced and fair to everyone.
But if you can forecast minimum/maxium opening price that you want to pay then you can use limit-on-open orders and try to "catch" some stocks at a good price sometimes. This may just not work too often, so you would need to place thousands of orders every morning and hope that some of them will be executed at your price, and that the price didn't drop because of some news or other reasons that you don't know.
While I don't believe that this is related to IBKR model or any model, because the opening price is mostly determined by humans (or trading companies computers that use own rules) and doesn't always need to be related to previous price. Generally the opening prices cannot be known until after the market opens and this price is announced by the exchanges.
Kon Rad
Also see:
Interactive Brokers Limit-on-Open (LOO) Orders
Interactive Brokers Market-on-Open (MOO) Orders
Timothy Comisky
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp.
You can continue your Boot Camp training progress from the terminal. We hope to see you in the community soon!