So I finally started implementing trading ICE markets without a data subscription. Sugar #11 is the first one.
I was able to setup EOD price collection pretty easily., IB doesn't give historical data as well w\o subscription, but it does give last-close for the previous day (tick 75) and 15min delayed-last (tick 68), so I wrote a job that runs every evening (Mon-Fr+Sun) and collects\updates previous EOD and inserts last-close as today's EOD, which will be updated to the real one the day after. That works pretty-well.
The other thing is submitting orders without RT-data., I'm trying to use "Snap to Midpoint" IB algo-order type (
https://www.interactivebrokers.ca/en/index.php?f=5934) with 15min time-to-live, which, as I understood, submits a limit-order at the current mid-point and that limit never moves with the price if it changes. So I should get a fill at mid or better price or the order will be cancelled after 15min.
But that's not what I'm seeing sometimes. I'm currently trying this order-type in my paper system and products for which I do have RT-subscription, so I should see a pretty-accurate bid-ask at the time of order submission, and I can see that my fills sometimes happen at worse than mid-price, which should not happen with this order type:
View attachment 284157
Does anyone have an idea why this might be happening?
I see 2 possible reasons:
one is that I misunderstood how "Snap to Midpoint" order behaves, and it can actually move towards a worse price from mid-point under certain conditions (that's my main concern).
And the second is that the price simply moves between the time when I receive the bid or ask and when the order hits the exchange, so the actual mid-point at that time is already different from what I've assumed.
If it's the second I'm fine with it, I'm just worried that I misunderstood how this order-type works..