
Streaming market data is critical in running a successful algo trading system. Two functions are important in invoking, maintaining and cancelling the flow of data:
reqRealTimeBars
serves as the method to receive data. The request is subject to a maximum of 60 API queries in more than 600 seconds.cancelRealTimeBars
cancels all real time bar subscriptions.
Let’s review an example from GitHub in Python for historical five seconds bar:
self.reqRealTimeBars(3001, ContractSamples.EurGbpFx(), 5, "MIDPOINT", True, [])
def realtimeBar(self, reqId: TickerId, time:int, open_: float, high: float, low: float, close: float,
volume: int, wap: float, count: int):
super().realtimeBar(reqId, time, open_, high, low, close, volume, wap, count)
print("RealTimeBar. TickerId:", reqId, RealTimeBar(time, -1, open_, high, low, close, volume, wap, count))
In addition, quants can request data to include stream from outside Regular Trading Hours. For specific parameters on how to do so, see GitHub.
Moreover, complete market data bar routine written in Python is available via the Testbed sample, specifically the Program.py file.
Quants using Java, C#, C++ or VB can find relevant syntax samples in their favorite programming language in the dedicates sections of the GitHub Reference Guide: https://interactivebrokers.github.io/tws-api/realtime_bars.html
Finally, a reminder to sign up for Traders’ Academy API courses for a comprehensive and visual training in trading via the API.
Disclosure: Interactive Brokers
The analysis in this material is provided for information only and is not and should not be construed as an offer to sell or the solicitation of an offer to buy any security. To the extent that this material discusses general market activity, industry or sector trends or other broad-based economic or political conditions, it should not be construed as research or investment advice. To the extent that it includes references to specific securities, commodities, currencies, or other instruments, those references do not constitute a recommendation by IBKR to buy, sell or hold such investments. This material does not and is not intended to take into account the particular financial conditions, investment objectives or requirements of individual customers. Before acting on this material, you should consider whether it is suitable for your particular circumstances and, as necessary, seek professional advice.