When I use MC 8 beta offline for backtesting purposes and try to display data received from IB historical data farm in previous sessions, the following issue occurs:
If "Download missing historical data" is checked in Data Server Mode menu, MC won't display a chart, although the data is stored in the cache (I checked this by "Edit data" in Quote Manager).
I consider this behaviour to be disadvantageous, since:
i) obviously MC only displays the IB historical data downloaded in the current session, even if the data is already stored in the cache from previous sessions - which may easily lead to IB traffic violations and limits the data range.
ii) I can display the data when I uncheck "Download missing historical data" or check "offline", but since this is quite cumbersome (have to close and re-open all workspaces), I would appreciate if there was an easier solution.
Bottom line: the data is there, in the cache, but is not being displayed - to me that makes no sense.
No IB data displayed - although already stored in the cache
- Henry MultiСharts
- Posts: 9165
- Joined: Aug 25 2011
- Has thanked: 1264 times
- Been thanked: 2958 times
Hello Seneca,
Plese let me know what resolution are you using (ticks, minutes, days).
Could you please describe the sequence of actions leading to the issue? What are the steps to reproduce this behaviour?
Plese let me know what resolution are you using (ticks, minutes, days).
Could you please describe the sequence of actions leading to the issue? What are the steps to reproduce this behaviour?
Hello Henry,
I'm using minute data, but tried other resolutions (ticks, 15 minutes etc.) as well, but the behaviour was the same.
I can easily reproduce the behaviour on different machines and different versions (MC 8 beta and MC release version). I just have to start MC (without being connected to IB server, i.e. TWS or IB Gateway is not running), setting is "Download missing historical data" (this is my default setting, so I don't open this menu at start-up), and recognize that no charts in the pre-configured (i.e. configured by me) chart windows are being created, regardless if Forex, Futures or else symbols. So I just start MC without doing anything else.
If I then change to "offline" (in "Data server mode" menu), the charts are being displayed, within a second (obviously the data is being restored from the cache). But this is no workaround, since I have to close and re-open all workspaces.
If I start MC when connected to the IB server, there are no issues, all charts are being created automatically (although the data is being downloaded and not restored from the cache, according to the API log).
I'm using minute data, but tried other resolutions (ticks, 15 minutes etc.) as well, but the behaviour was the same.
I can easily reproduce the behaviour on different machines and different versions (MC 8 beta and MC release version). I just have to start MC (without being connected to IB server, i.e. TWS or IB Gateway is not running), setting is "Download missing historical data" (this is my default setting, so I don't open this menu at start-up), and recognize that no charts in the pre-configured (i.e. configured by me) chart windows are being created, regardless if Forex, Futures or else symbols. So I just start MC without doing anything else.
If I then change to "offline" (in "Data server mode" menu), the charts are being displayed, within a second (obviously the data is being restored from the cache). But this is no workaround, since I have to close and re-open all workspaces.
If I start MC when connected to the IB server, there are no issues, all charts are being created automatically (although the data is being downloaded and not restored from the cache, according to the API log).
- Henry MultiСharts
- Posts: 9165
- Joined: Aug 25 2011
- Has thanked: 1264 times
- Been thanked: 2958 times
That is expected behaviour.
IB datafeed does not provide realtime minute data. In MultiCharts realtime minutes are built from ticks. They are not saved to the database because the bar can be different from the actual historical minute bar.
But IB provides historical minute data. So MultiCharts requests the minute data from IB server next time you request this information.
IB datafeed does not provide realtime minute data. In MultiCharts realtime minutes are built from ticks. They are not saved to the database because the bar can be different from the actual historical minute bar.
But IB provides historical minute data. So MultiCharts requests the minute data from IB server next time you request this information.
I fully understand this. But what I do not understand is that MC doesn't display the historical minute data that is already stored in the cache, when it is not connected to IB server.But IB provides historical minute data. So MultiCharts requests the minute data from IB server next time you request this information.
I think the preferable behaviour would be that MC generally displays the data already being stored in the cache, and as soon as there is a datafeed available, the cache data might be replaced by the historical datafeed of the current session, if there are any discrepancies.
In my case, the data stored in the cache originated from IB historical datafarm. So when connected to IB server MC replaces the cached historical minute data by exactly the same historical minute data downloaded in the current session!
Bottom line: There is data in the cache - IB historical minute data - but it is not being displayed. MC requests this data from IB server instead of just showing what is already there. Sorry, this makes no sense to me...
Last edited by seneca on Apr 15 2012, edited 1 time in total.
- Henry MultiСharts
- Posts: 9165
- Joined: Aug 25 2011
- Has thanked: 1264 times
- Been thanked: 2958 times
I am not sure that we are on the same page.I fully understand this. But what I do not understand is that MC doesn't display the historical minute data that is already stored in the cache, when it is not connected to IB server.
When historical minute data is downloaded from the server-it is saved to the database.
It will not be requested again unless you reload the data using Ctrl+R or View tab->Reload.
Real time cached data will not be requested from the server again during this session in case you have lost the connection to TWS.
Real time data you have accumulated in the cache will be replaced with the historical data from the server only if you will restart MultiCharts or reload the chart.
If you have closed the chart and then you are trying to plot it using the cached real time data in online mode-you will fail to do that because the chart will be trying to connect to the live feed (that is disconnected at the moment).
You will be able to plot the chart with this cached data and historical data in offline mode.