QUOTE:
Apparently the 'strategy' is run quite differently in the Strategy Monitor, which can run the strategy for All the symbols in a Dataset and the way a single streaming chart works when a strategy is active on the chart.
There is a difference, but oh gosh, where do we start? The S. Monitor and S. Window
execute strategies in precisely the same way. The only difference is the data delivery. But when a new bar is loaded for a symbol, the strategy executes on the data, that's all there is to it in either tool.
There is a difference in the results (and even in the trades) of the S. Monitor and S. Window
when executing a Portfolio Simulation (Sizing Control) on a DataSet with more than 1 symbol:
a) When the Strategy Window operates on a DataSet, a Portfolio Simulation is just that - it combines the results of all trades and builds and equity curve as if you were trading it day by day. This almost always results in rejected trades during the simulation at times when you don't have enough free cash for new purchases (or shorts).
b) When the Monitor operates on a DataSet, there really is no "Portfolio Simulation". In other words, the sizing is applied to each symbol in its own separate simulation. The results of all symbols are not combined. This is why the User Guide tells you in more than one place that Raw Profit sizing is recommended in the S. Monitor. With Raw Profit mode, you won't have any skipped trades, so you'll always see the Alerts for every new trade or trade exit.
Re: Streaming. Yes. The way streaming charts operate is pretty much "industry standard". The only difference that you may find is that some providers will fill missing bars with the value of the previous interval, but with zero volume. In our opinion, this will distort indicators by adding measurements for trading activity that never occurred.
QUOTE:
The Strategy Monitor subscribes to nothing but instead simply asks for a bar from some 'other' internal code whenever the SM's clock fires for the standard period that it is set to?
Please see the User Guide. It explains that the 'other' code is based on your system clock, and that you should ensure it's synchronized with "market time".
QUOTE:
So if the SM requests a bar and the bar is 'missing' does it run the strategy for that time cell anyway?
No. No new bar, no need to run the Strategy, which as you can see in the code runs based on bar numbers.
CODE:
Please log in to see this code.
Strategy Monitor: Schedules a run for the end of the next interval and when it arrives (based on your system clock), 1) waits 5 seconds to ensure the historical bar is available on the server, 2) requests an update (delay to server), and 3) receives the update (delay from the server). So that's 5 seconds + Round trip delay. Furthermore, Fidelity updates 10 symbols at a time per Strategy. So, if you have 50 symbols, multiply the round trip delay by 5.
Streaming Window: Immediately knows that an end of interval occurred when either a) a tick in the next interval arrives, or, b) the "heartbeat" declares an end of interval. Here there is practically no delay.
So, if you're running a strategy on fewer than 10 symbols, for sure I'd just put them all in Streaming Windows. However, if you have say 16 charts or more, that's a lot to keep track of, so I'd opt for the Monitor. However, due to the delays, if running intervals at 5 minutes or less with 20 symbols or more in the Monitor, I'd recommended splitting your DataSets in groups of 10 symbols.