Interactive Brokers

Features
Broker Connection
Account Details
Historical Data
Historical Data with Monthly Time Frame
Historical Data with Ticks, Ticks/Range, Contracts, Contracts/Day Time Frame
Historical Data with bar updates directly from the datafeed
Real-Time or delayed data
Real-Time or delayed data level 2
Margins on order preview
Footprint, Imbalance, Heatmap chart styles
Trailing-Stop Orders
Historical Data Filtering
IB provides historical data according to this scheme: About Interactive Brokers API Historical Data.
For your convenience, below is an excerpt from the Interactive Brokers documentation page.
NBBO
NBBO stands for National Best Bid and Offer. It's a quote that reports the highest bid price and lowest ask price in a security, sourced from among all available exchanges or trading venues
Example of Historical Data Filtering
Suppose we want to execute a combo order on the E-Mini S&P 500 March-June Spread Future with quantity 10. When the order is filled, the order quantity will not be part of the volume reported in the historical data, neither for the March nor for the June Future. The combo volume will be reported only in the Time and Sales.
Settings on Trader WorkStation (TWS) or Gateway
In the Interactive Brokers TraderWorkStation (TWS) or Gateway software, you need to change some of the settings to be able to connect correctly from MarvelChart.
Open the settings window and choose the API → Settings tab.

In the TWS or Gateway API settings tab, change the following entries:
Name | Type | Value |
---|---|---|
Enable ActiveX and Socket Clients | Required |
|
Read-Only API | Required |
|
Expose entire trading schedule to API | Suggested |
|
Allow connection from localhost only | Suggested |
|
Remote connection settings
Only in case you want to make a connection between MarvelChart and TWS/Gateway running on different machines, in the TWS/Gateway settings you need to make additional changes:
enter the IPv4 address of the PC where MarvelChart is running in the list of trusted addresses of TWS/Gateway;
disable the Allow connection from localhost only item;
At the same time, in the MarvelChart settings, you need to select the Manual mode and specify the IPv4 address of the machine where TWS/Gateway is running.