Has anyone tried simultaneously subscribing to MD feeds in a concurrent programming style? From different threads, processes, or applications? Any trouble? For example, let's say I have this architecture: Python program 1 (main thread) - X - MD subscription (main thread: core 1: GIL 1) - AAPL MD subscription (thread 1: core 1: GIL 1) - TSLA MD subscription (thread 1: core 1: GIL 1) - IBM MD subscription (thread 2: core 1 GIL 1) ^^^ Simpler: same core and GIL, separate threads. Python program 2 (main thread) - JPM MD subscription (main thread: core 2: GIL 2) - VZ MD subscription (thread 1: core 2: GIL 2) - GS MD subscription (spawns new process - thread 1, core 3: GIL 3) ^^^ Some shared threads and GIL; new core and GIL for this program. Also new core, GIL, and process on the GS sub. Is IB smart enough to handle these concurrent subscriptions, and apply MD limits (both count and speed), or will it go down like the Hindenburg? Note that my intention is to push all stated maximums to limit: 100 total subscriptions, at 50 price points/second. Thx, Keith
for python, no threads. Subscribe to all tickers you want and handle the callback if needed in a separate worker thread (which probably is not needed). ib limits the rate of market data anyway so a separate thread/process is useless. 50 price points/second: python can handle this easily. I bet a dos bat file can too
The download amount from IB to you is not bound to a certain limit other than the maximum refresh rate per ticker (e.g. 250 ms for stocks). You are limited to upload 50 messages per second to IB's servers. Do you plan to send more messages to IB?