My analysis shows that at least 80% of all ticks are at the same price as the previous tick. (in some markets this is as high as 95%).
Most indicators do not change the way they look until they get a tick at a different price. (the Exceptions are those that calculate volume or use the tick count in some way)
So, perhaps you could consider providing a new Indicator Property called "IgnoreMeIfTickPriceHasn'tChanged" (or similar). That lets the developer tell Ninja that it doesn't need to call this indicator on every tick even when CalculateOnBarClose = False. Ninja can compare the Tick with the prior tick & skip the processing some or all of the indicators. (unless it is also new bar)
This might even permit you to Refresh the Chart on every tick, with much less overhead. Of course I'd still leave the option to set a minimum refresh interval. Even if your computer can refresh the chart 30 times each second. Human eyes are incapable of distinguishing that rate of change so I'd expect that anyone who thought logically about it would not want their charts refreshing more than a few times each second. Rather it is better to have it remain static & refresh immediately the data behind the chart changes. (or at a maximum of say 4 times / sec)
Hope this helps.
PS: Clearly an Automated Strategy is a very different discussion. As human eyes & reflexes aren't involved they would demand a much faster "refresh rate". But still, having the option to "eat ticks" if they are the same & your strategy doesn't care, would again reduce unnecessary overhead & possibly improve execution times.
Comment