One of the problem of the NinjaTrader design is that the custom plot calculations are done intrabar, even if the indicator is set to "CalculateOnBarClose = true". It cannot be prevent that the plot is being executed with an incoming tick. The only influence that the user has on this issue, is the Display Update Interval of the chart. If you set this to 0,1 sec, for sure you will run into problems in fast markets. I use a standard setting of 0.5 secs, meaning that the plot is only recalculated once every 0.5 seconds. This is typically good enough to avoid a freeze, if a lot of ticks comes in during a news release.
For clarification, the Plot() method is independent from OnBarUpdate() and is the rendering logic for the indicator. It is not called once per tick but on the "Display update interval" which triggers the rendering logic of the entire chart.
The following 3 users say Thank You to NinjaTrader for this post: