Note: the most recent version of this document can be found at: http://www.amibroker.com/ib.html . Please check this page for updates.
IB PLUGIN FEATURES SUMMARY:
supports upto 100 streaming symbols in real time (equal to IB TWS limit)
automatic connection (no need to manually "accept incoming connection" in TWS)
supports upto 30 DAYS intraday data BACKFILL in 1-minute bar interval
upto 2000 bars backfill using 1-sec/5-sec/15-second bar intervals
Brokers TWS is CPU-hungry application, therefore for best results we
recommend using machine with 1GHz processor or faster.
NOTE 2: There is a VIDEO tutorial showing how to set it up at http://www.amibroker.com/video/ib.html
To use Interactive Brokers data plugin with AmiBroker you need to:
In TWS, select Configure
-> API -> Enable Active X and Socket clients
Also enter 127.0.0.1 in TWS, Configure->API->Trusted IP addresses menu to prevent "Allow incoming connection?" dialog.
Run AmiBroker and create new database with Interactive Brokers plugin as a data source, following these steps:
Choose File->New database
Type a new folder
name (for example: C:\Program Files\AmiBroker\IB ) and click Create as
shown in the picture below:
Choose InteractiveBrokers(r) data Plug-in from Data source combo and "Enable" from Local data storage
Enter 30000 or more into "Number of bars to load" field
Now choose Base
time interval. Supported intervals are: 1-minute. Professional
Edition of AmiBroker allows also to select Tick, 1-second intervals.
Note that backfill is in bar interval of 1-minute or less (TWS limitation).
If you want to have long daily histories AND intraday charts you should consider running TWO instances of AmiBroker. One for EOD charts and second for intraday charting. Both instances may use IB as a data source.
From now on your AmiBroker reads quotes directly from the Interactive Brokers.
Backfill feature in plugin 1.3.7 allows to download 24 intraday historical data to fill-in the gaps that may have occurred when AmiBroker / TWS is not running.
IB Backfill feature is configurable from File->Database Settings, Configure :
Two main backfill-related settings are:
1. request length
2. automatic backfill
When request length is considered, as explained in TWS API Release Notes at: http://www.interactivebrokers.com/en/software/apiReleaseNotes/apiBetanotes.php currently IB backfill feature is limited to some fixed duration / bar interval ranges. For example you can get maximum 2000 1-second ticks, maximum 10000 seconds in 5-second interval (2000 bars), maximum 30000 seconds in 15-second interval (also 2000 bars) and maximum of 5 DAYS of 1-minute bars.
By default AmiBroker uses maximum allowable amounts.
As for "automatic backfill on first data access" - when it is checked AmiBroker attempts to backfill symbol when you display a chart for given symbol (or perform backtest or scan). Please note that TWS API currently allows only one backfill at a time so when there is a backfill already running in the background, automatic backfill request for next symbol will be ignored, until previous backfill is complete.
It is convenient to have this option turned on, however it can cause additional load on your internet connection because of data needed to be downloaded during backfill process.
If you switch "automatic backfill on first data access" option off, you will still be able to backfill data for current symbol or all symbols in real-time quote window list usign appropriate menu options from plugin status menu.
Backfill Current option allows to force backfill of currently selected symbol, while Backfill All RT quote window symbols allow to force backfill of all symbols listed in Real-Time Quote window. Backfill of multiple symbols is performed sequentially (one at a time) due to limitations of TWS.
Backfill length submenu allows to select desired backfill length.
During backfilling a tooltip pops up informing the user about symbol being currently backfilled and plugin status color changes to light blue (turquoise) as shown below:
BACKFILLING ALL SYMBOLS AT ONCE
To backfill all symbols at once do the following:
1. Open Realtime Quote window ( by selecting Window->Realtime Quote menu )
2. Right click on the Realtime Quote window and choose Add symbol / Add watch list / Type-in symbol to add any symbols you want to backfill.
3. Right-click on the plugin Status indicator and select desired Backfill length
4. Choose Backfill All RT quote window symbols option from the same menu.
Since Interactive Brokers severely limits number of backfills that customer may request within given time it is advised to use backfill length as short as possible, like 1-day or 5-day and avoid long ranges like 30-days.
Symbol format now uses the symbol mode of TWS, not the underlying mode. The symbol mode in TWS can be seen in the 'View->Symbol Mode' menu option in TWS.
The format is: SYMBOL-EXCHANGE-TYPE
SYMBOL is the same as the symbol column as displayed in TWS while under symbol mode
EXCHANGE (optional) is the exchange d in TWS while under symbol mode
TYPE (optional) is one the following:
STK - stocks, FUT -
futures, FOP - options on futures, OPT - options, IND - indexes, CASH -cash
Note that for stocks only the EXCHANGE and TYPE fields are optional. The exchange will be set to BEST (SMART) and the TYPE will be set to STK.
Please take special
care when typing symbols as some of them (futures) have MULTIPLE SPACES
in the symbol name. You have to type EXACTLY THE SAME number of spaces
as provided in the examples below
(see the dashes below symbol name that make it easier to see the number of characters)
|Stock||Cisco Corporation, Nasdaq|
|Stock||General Electric, NYSE|
|Stock||VODAFONE GROUP, London Stock Exchange|
|Emini ES Jun04 futures, Globex|
|Option||Jun 04, 36.0 CALL option QQQFJ|
|Index||Dow Jones Industrials Index|
YM JUN 04-ECBOT-FUT --- -
|Future||YM Jun 04 future,
(note 3 spaces between symbol and month and 1 space between month and year)
|Future||QM (Crude) June 2005 future contract, NYMEX|
|Commodity||London Gold Spot|
|CFD (contract for difference)||IB US500 contract for difference|
|Cash Forex||EURUSD currency
EURUSD currency pair, IDEALPRO
ECBOT futures symbols have length of 21 characters with 3 spaces between contract symbol and month name and one space between month and 2 digit year
NOTES ON IB API LIMITATIONS:
1. Backfill is available for REAL IB accounts only (not on demo)
2. Open price is NOT provided by IB. For that reason Open field is empty in real time quote window
3. The data from IB does not include a timestamp on the trades. The current system time is used to timestamp each tick.
4. IB TWS streaming data are NOT tick-by-tick, but rather 0.2-0.3 second snapshots, read this for details: http://www.interactivebrokers.com/cgi-bin/discus/board-auth.pl?file=/2/37364.html