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??