It has been brought to my attention that an automatic chart reload is not that trivial to develop as it seems
That's true Arnie. But that shouldn't be a reason to not develop this? I can recall that you were very proactive on the forum in helping MultiCharts with the discretionary volume tools (which was quite impressive, btw). So those features apparently weren't trivial to develop either, and they also got done.
Of course, I don't want to downplay the technical complexities (even though it might sound like I was trying to do that). But that can not be a reason not to implement this. Especially given the 30 votes in the PM, which is relatively speaking quite a lot. If I were the only one who would like to see such a feature, okay, then it wouldn't be rational to spend resources on this.
But those 30 votes are only 2 less than the MD, 13 more than the download historical bid/ask data from IQFeed, and 27 votes more than the Footprint chart feature request. I can't imagine that these features were much easier.
Who want a chart to reload automatically in the middle of a session while an automatic strategy is on?
True, it's certainly not a great situation. But the alternative, when the internet connection is restored the new real-time data creates a (potentially huge) data gap, is much worse in my opinion.
How would the strategy react to a total data/strategy reload? If positions are being held when data flow is interrupted and you end up closing the position via broker platform, how will the automatic strategy react by the time data flow is reestablished and the missing data is being downloaded/reloaded?
True, good points. But this can be already done by using the MarketPosition_At_Broker keyword to see whether or not there is an open position at the broker.
Plus the BuyToCover and Sell keywords can only close an existing position and not open a reserve position. So, in the case that the trader closes his position manually through the broker, it won't matter if BuyToCover and Sell keywords are triggered. And yes, the SellShort and Buy keywords can open a new position, but I would be surprised if automatic traders haven't preceded these with a "if (MarketPosition(0) = 0) then.." check. So in that case, using MarketPosition_at_broker will prevent new buy/short orders from being submitted.
Btw, if I open a manual position with the Chart Trader in MultiCharts (8.0 Release, broker MB Trading), and add a stop-loss order, and then reload the chart, the position with the stop-loss attached to it is remembered correctly. Apparently, it's already possible to reload the chart without losing that information.
For those that have automatic strategies, how do you want this to be resolved?
I'll probably forget some steps, but something like:
When there is no open position...
- An automated strategy is enabled,
- The internet connection is lost (already tracked in OPT Logs tab and QuoteManager),
- *waiting for re-establishing of internet connection*
- When internet is reconnected, reload the chart,
- Recalculate the indicators and strategy,
- Keep the strategy on and submit any new trades that are generated from now on.
When there is an open position...
- An automated strategy is enabled,
- The internet connection is lost (already tracked in OPT Logs tab and QuoteManager),
- *waiting for re-establishing of internet connection*
- When internet is reconnected, reload the chart,
- Recalculate the indicators and strategy (and keep the strategy on),
- Now look at the market position at broker: if the broker position is flat, operate as if there is no open position (see above),
- If there is an open position at the broker, execute if needed the stop-loss orders that were tracked by MultiCharts itself (these are apparently already remembered, see my point above). (Also note that the stop-loss orders that are kept at the broker's server are perhaps already triggered, causing the position to be closed. In that case, see the previous bullet point),
- If there is an open position at the broker, assign these to the market position of the strategy (i.e., MarketPosition_At_Broker --> MarketPosition(0)) so that the strategy can manage the open position and submit the needed stop-loss and profit target orders for it (Note that this is already possible. Actually, I've already programmed this in PowerLanguage).
Probably not complete, so additions are welcomed.
Are your automatic strategies ready to deal with a full recalculation of positions when the data is reloaded?
I'm not sure what things of the position needs to be recalculated, since the position data can be pulled from the broker (MarketPosition_at_broker, AvgEntryPrice_At_Broker) when the internet connection is restored.
I believe as soon you answer this type of questions the sooner this option will be available.
I think it would also help if MultiCharts join in this conversation and tell us how they see this feature request. Perhaps we can then come up with a solution that is both easy to implement for MultiCharts and something that is useful to automatic traders (like I tried to do with the Reload-keyword idea).