u/gojustforfun

IB does not fill option roll at the same price Fidelity does

I have an option roll like below. I found that IB won't fill, same price or even worse price, Fidelity can fill. Question, did I do anything wrong in the code/setting? Or Fidelity is just better at filling the order?

expiry1 = '20260712'
expiry2 = '20260712'
put_lo = Option('XXXX', expiry1, 4.5, 'P', 'SMART', '100', 'USD')
put_hi = Option('XXXX', expiry2, 5.0, 'P', 'SMART', '100', 'USD')

ib.qualifyContracts(put_lo, put_hi)

ib.sleep(2)

roll_combo = Contract(secType='BAG', symbol='XXXX', exchange='SMART', currency='USD')
leg1 = ComboLeg(conId=put_lo.conId, ratio=1, action='BUY', exchange='SMART')
leg2 = ComboLeg(conId=put_hi.conId, ratio=1, action='SELL', exchange='SMART')
roll_combo.comboLegs = [leg1, leg2]

current_limit_price = -abs(0.35)
filled = False

order = LimitOrder('BUY', 1, current_limit_price)
order.tif = 'DAY'
order.transmit = True
order.algoStrategy = "Adaptive"
order.algoParams = [TagValue("adaptivePriority", "Urgent")]

trade = ib.placeOrder(roll_combo, order)

ib.sleep(6)

reddit.com
u/gojustforfun — 3 days ago