1) Background mode only logs to logger without calling self.websocket_data callback in __onmessage()
This is a very simple bug with very simple fix and it really should not be in a release version. Please check
2) I am getting invalid symbol error for stocks with '&' in them. Same string is accepted by place_order without issue.
Example input to subscribe, tested each separately -
3) Something you can consider - There is too much data by default. Z has options to control how much data we get, perhaps you can consider having something similar. All i need is a price tick whenever we had volume change. and by default we get all data including market depth which is really overkill. This should reduce server load and bandwidth usage for you too, esp since it is freely available.
4) Historical api - from and to fields seems to consider date only even when using timestamp. So even if i only need last 30m data, i get full day data. Not much of an issue but just writing it here. IB historical allows this and maybe this could reduce server load if enough people use it ..
Edit - tested further. If i send 5 as interval, it works and i only get data for the requested time period. But for 1m bars, full day is sent. So maybe a bug too ..
Minute HL is nice ...