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 johntraderuser2, Today, 02:34 AM
|
0 responses
5 views
0 likes
|
Last Post Today, 02:34 AM | ||
Started by IanS00, 03-27-2024, 11:24 AM
|
2 responses
12 views
0 likes
|
Last Post Today, 02:00 AM | ||
Started by Mariawilcoxi, Today, 01:32 AM
|
0 responses
4 views
0 likes
|
Last Post
by Mariawilcoxi
Today, 01:32 AM
|
||
Started by gleichnerany, Today, 01:17 AM
|
0 responses
5 views
0 likes
|
Last Post
by gleichnerany
Today, 01:17 AM
|
||
Started by WHICKED, 03-27-2024, 12:33 PM
|
4 responses
46 views
0 likes
|
Last Post Today, 12:28 AM |
Comment