EOD Database with Interactive Brokers data plugin

Per the instructions at http://www.amibroker.com/ib.html:

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.

I've created a new database with EOD base interval and the IB data plugin data source:
image

The IB data plugin connects to TWS and captures historical data, but when I view the quotes in the quote editor, I see 1-minute data:

image

How can I capture and store the EOD data in the database? I want to use IB to continually overwrite the last bar of daily data.

What am I doing wrong? Is EOD data supported with the IB Data plugin?

IB plugin by design is intraday. It wasn't designed specifically for EOD as EOD is conceptually different. End-of-day by definition means one final quote at the end of the day, without "real time" component. What you can do is to turn on "Mixed intraday/EOD" and then those intraday quotes will be filtered out if you are using daily interval.

2 Likes

@Tomasz Thank you for the suggestion. Mixed intraday/EOD with daily interval is working as expected.

Is there any plan for a separate IB Plugin or a version with an option for EOD data downloads only to maintain a Daily Base Interval Only Database?

Using real-time streaming plugin for end-of-day data is overkill and not efficient.
Efficient solution for end-of-data is downloader such as AmiQuote that makes one request to download missing historical data points and does not require streaming.
If there is strong demand (I doubt it), I could write that.

I agree that using RT plug-in for EOD would be inefficient. I personally would welcome an Amiquote add-on for IB API. But I may be an audience of one. :slight_smile: It may be easier to use IB Native Python API to get the data and use Amiquote ASCII Importer to update the database.

I'd be keen to see this Interactive Brokers (EOD) Data API for Amiquote or standalone or both.

IB API does not offer efficient ways to download EOD data. AmiQuote with Yahoo is far far more efficient for EOD data.

Can we mix eod data from yahoo (with amiquote) with interactive brokers intraday data?

First please read this section of the Tutorial, to understand how external data plugins work with databases
https://www.amibroker.com/guide/h_workspace.html

and also this section of the manual:
https://www.amibroker.com/guide/h_rtsource.html
(scroll down to Things you should NOT do, or you should do very carefully )

AFTER reading those tutorials, you at least will know what happens and the fact that plugin is free to overwrite / remove any quote that you imported manually because the plugin controls the data. (with the exception of symbols that are marked as "Use only local database for this symbol"). Having said that, IB plugin specifically, keeps old data untouched, unless you re-backfill long history, so it would keep old EOD data too.

1 Like

Hmm not sure what does "long history" means but it seems interactive broker does seem to remove the amiquote data. So lets say I have two databases this would mean a strategy would need to access to both of these databases before deciding on trades. How would one go about doing this? One brute force approach seems to me to use a batch file to load a database first and save the necessary analysis in a permanent variable and use this result in the next step after loading the second database. Any better way of dealing with this issue?