The trading engine runs a model portfolio (which assumes fills at the bid/ask) and continuously adjusts the live portfolio to keep costs/quantities synchronized with the model (working the orders starting from the midpoint).
I am assuming your fills at the bid/ask means you are adding liquidity. If that is true that is very unrealistic. At the very least assume you are getting filled at the mid point especially with some of these wider spreads. IB does have pretty good liquidity at mid points of the spread