Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Global Draw Object

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Global Draw Object

    Is there a way to make a draw object (for example an Arrow) for an indicator appear on all chart, on multiple instrument? In other words, the draw object on Nasdaq -NQ will also appear on S&P 500 - ES chart.

    #2
    Hello cryfgg,

    Thanks for your post.

    We do not offer any support for global drawing objects on multiple instruments.

    The closest you can get would be to add a public method to your indicator that takes a start time and end time, and a start and end price. The method could then use those parameters to call Draw.ArrowLine() with a specific tag to update that arrow line, or draw a new one.

    The indicator then would need to be added to all charts that where the arrow line should be draw.

    Then, when the indicator should call Draw.ArrowLine(), do this instead: loop through all windows, and within all windows that are charts, loop through the active ChartControl Indicators collection and find your indicator, then call the indicator's public method and give it the start/end price/time parameters. (I would only attempt to modify things on other windows after State == State.Realtime)

    Here is some code to loop through windows and loop through indicators in the ActiveChartControl Indicators collection.

    Code:
        foreach (var window in NinjaTrader.Core.Globals.AllWindows)
        {
            // check if the found window is a Chart window, if not continue looking
            if (!(window is NinjaTrader.Gui.Chart.Chart)) continue;
    
            window.Dispatcher.InvokeAsync(new Action(() =>
            {
                // try to cast as a Chart, if it fails it will be null
                var foundChart = window as NinjaTrader.Gui.Chart.Chart;
    
                // make sure we found a chart
                if (foundChart == null) return;
    
                // make sure the found chart is the owner window
                if (foundChart != this.Owner as NinjaTrader.Gui.Chart.Chart) return;
    
                // Instantiate indicator collection
                ChartObjectCollection<NinjaTrader.Gui.NinjaScript. IndicatorRenderBase>  indicatorCollection = foundChart.ActiveChartControl.Indicators;
    
                 // Loop through indicators in collection
                 foreach (Indicator indi in indicatorCollection)
                      Print(indi.Name);
    
             }));
    
         }
    Draw.ArrowLine() - https://ninjatrader.com/support/help..._arrowline.htm
    ChartControl.Indicators - https://ninjatrader.com/support/help...indicators.htm

    We look forward to assisting.

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by Geovanny Suaza, 02-11-2026, 06:32 PM
    0 responses
    668 views
    0 likes
    Last Post Geovanny Suaza  
    Started by Geovanny Suaza, 02-11-2026, 05:51 PM
    0 responses
    377 views
    1 like
    Last Post Geovanny Suaza  
    Started by Mindset, 02-09-2026, 11:44 AM
    0 responses
    110 views
    0 likes
    Last Post Mindset
    by Mindset
     
    Started by Geovanny Suaza, 02-02-2026, 12:30 PM
    0 responses
    575 views
    1 like
    Last Post Geovanny Suaza  
    Started by RFrosty, 01-28-2026, 06:49 PM
    0 responses
    580 views
    1 like
    Last Post RFrosty
    by RFrosty
     
    Working...
    X