Hey Kernfusion, how is this effort going? Did you move to production and have you tried snap to market?
I'm asking because I moved back to Europe, and the country I'm living now requires me to register an LLC for full time trading. I did that, but then IB classifies me as professional wrt market data fees, so what used to be $120 per month in subscriptions is now $780. So I'm looking at alternatives
While doing research, I found these folks
https://firstratedata.com that offer intraday data, down to minutely. Usually 10-15 years of history, depending on the instrument. Posting here in case anybody needs it, and I know
@globalarbtrader was asking for data providers a few months back.
ohh, that's a bummer, so like it's not allowed to "trade" without an LLC? how about "investing" and where's the dividing line exactly?

or maybe it's about futures specifically..
But yeah, I was looking into trading through a corp. entity for tax purposes, but IB\Exchanges will charge the full price for data in that case, which kills the benefit (or at least spoils it..).
I've been trading in PROD these ICE\no-data products for about a month now(some more some less) : Cocoa, cotton no. 2, coffee, FC orange juice, Canola, Sugar no. 11, European Rapeseed Future. And will be adding more. They're a pain to onboard, because they all have different expiration rules and I have to study every contract specs to correctly preprogram the roll-timings for my automatic rolls, so can't onboard them in-bulk as I could for example with some CME FX an Bond contracts..
So far I think it's going good, I'm using OrderType = "SNAP MID"; (in PAPER I use that order type for everything at the moment, in PROD only for the onboarded ice futures) and according to my report all fills happen within the initial bid-ask spread (or actually between min(bid) and max(ask) within +\- 4 sec interval around the time I place the order). I realize that report wouldn't make sense for delayed products, because the bid\ask I see when I'm submitting the order is from 15 min ago, and when my snap-order hits the exchange it can be anything and might look to me as if the fill happened outside of the spread even though it was perfectly within the actual spread at that time.
But basically I think the snap order works fine.
I had another issue with collecting EOD prices.. IB doesn't make delayed Last price available when the market is closed, so for a while I was only getting the Delayed Close, which is not today's close but yesterday's, and you also have to be careful when you collect it over the weekend or on Monday, because the delayed close on Monday is actually Thursday close, but it also depends on the time of day..
So what I did - I started to run the EOD collecting job 2 times a day, in the morning when all markets are open and in the evening.. Still need to keep monitoring my EOD price history collection process to make sure there's no gaps.. If you're planning to use another EOD data provider (not sure why you'd need their minute data, because it'll still be delayed, and you get 15-min delayed from IB anyways..), then that part will be easier.. Though, more work to integrate with them, and how reliable and long-lasting are they is also a question..
Btw, IB's TWS actually gives EOD price history through the UI for unsubscribed contracts, and there's an option to save it in CSV, even though it's not available through the API, so that can be used for backfilling..
Overall, this seems workable, but don't trust this completely as I'm pretty lazy with monitoring things and might be missing some issues
