I would like to report that intermittently, once or twice a week. I run in to this exception below in an indicator that paints a shade in the chart for extended trading hours.
The error comes from NT libraries.
Time Category Message
4/16/2020 2:25:36 PM NinjaScript OnBarUpdate Exception: System.InvalidOperationException: Sequence contains no elements at System.Linq.Enumerable.Max(IEnumerable`1 source) at NinjaTrader.Gui.Chart.ChartControl.get_PanelWidthP ixels() at NinjaTrader.Gui.Chart.ChartControl.get_CanvasRight () at NinjaTrader.Gui.Chart.ChartControl.GetXBySlotIndex (Double slotIndex) at NinjaTrader.Gui.Chart.ChartControl.GetXByBarIndex( ChartBars chartBars, Int32 barIndex) at NinjaTrader.NinjaScript.DrawingTools.DrawingTool.C reateChartAnchor(NinjaScriptBase ownerNinjaScript, Int32 barsAgo, DateTime time, Double y) at NinjaTrader.NinjaScript.DrawingTools.Draw.Region(N injaScriptBase owner, String tag, Int32 startBarsAgo, DateTime startTime, Int32 endBarsAgo, DateTime endTime, ISeries`1 series1, ISeries`1 series2, Double price, Brush outlineBrush, Brush areaBrush, Int32 areaOpacity, Int32 displacement) at NinjaTrader.NinjaScript.DrawingTools.Draw.Region(N injaScriptBase owner, String tag, Int32 startBarsAgo, Int32 endBarsAgo, ISeries`1 series, Double price, Brush areaBrush, Int32 areaOpacity, Int32 displacement) at NinjaTrader.NinjaScript.Indicators.jPivots.OnBarUp date()
Here is the code fragment:
protected override void OnBarUpdate()
{
if (!isIntraday)
return;
try
{
(...)
// Premarket/Extended High Low
if (isPreMarketHours || isExtendedHours)
{
// Paint Extended Hours
if (ChartControl != null && this.Count > 0)
Draw.Region(this, "region" + CurrentBar, 0, -1, new Series<double>(this), ((double)0xFFFF), Brushes.LightCyan, 100);
}
(...)
}
catch (Exception ex)
{
NinjaScript.Log(String.Format("OnBarUpdate Exception: {0}", ex.ToString()), LogLevel.Error);
}
}
Thank you!
Comment