Announcement
Collapse
Looking for a User App or Add-On built by the NinjaTrader community?
Visit NinjaTrader EcoSystem and our free User App Share!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less
Partner 728x90
Collapse
NinjaTrader
Global Draw Object
Collapse
X
-
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); })); }
ChartControl.Indicators - https://ninjatrader.com/support/help...indicators.htm
We look forward to assisting.JimNinjaTrader Customer Service
Latest Posts
Collapse
Topics | Statistics | Last Post | ||
---|---|---|---|---|
Started by Haiasi, Today, 06:53 PM
|
1 response
3 views
0 likes
|
Last Post Today, 07:05 PM | ||
Started by ScottWalsh, Today, 06:52 PM
|
1 response
7 views
0 likes
|
Last Post Today, 07:02 PM | ||
Started by ScottW, Today, 06:09 PM
|
1 response
5 views
0 likes
|
Last Post Today, 06:53 PM | ||
Started by ftsc2022, 10-25-2022, 12:03 PM
|
5 responses
256 views
0 likes
|
Last Post Today, 06:48 PM | ||
Started by Board game geek, 10-29-2023, 12:00 PM
|
14 responses
244 views
0 likes
|
Last Post
by DJ888
Today, 05:38 PM
|
Comment