public override Point[] GetSelectionPoints(ChartControl chartControl, ChartScale chartScale) { if (chartControl.BarsArray.Count == 0) return null; try { Bars bars = chartControl.BarsArray[0].Bars; ChartPanel chartPanel = chartControl.ChartPanels[chartScale.PanelIndex]; Point anchorPoint = Anchor.GetPoint(chartControl, chartPanel, chartScale); int idx = bars.GetBar(Anchor.Time); [color=red]double high = bars.GetHigh(idx);[/color] // Point highPoint = new Point(); [b] // how do I convert this "high" value to a useable "anchor point" to return?[/b] [color=red]return new[] { highPoint }; ??[/color] } catch (Exception e) { Print (e.Message); return null; } }
Announcement
Collapse
No announcement yet.
Partner 728x90
Collapse
NinjaTrader
Custom Drawing Tool Question...
Collapse
X
-
Custom Drawing Tool Question...
In GetSelectionPoints() I want to change the "anchor point" to the high of the bar selected, how would this be done?
Code:Tags: None
-
I will answer my own question for others :-)
Code:public override Point[] GetSelectionPoints(ChartControl chartControl, ChartScale chartScale) { if (chartControl.BarsArray.Count == 0) return null; try { ChartPanel chartPanel = chartControl.ChartPanels[chartScale.PanelIndex]; Point anchorPoint = Anchor.GetPoint(chartControl, chartPanel, chartScale); // high is defined else where in the code from Bars object -> bars.GetHigh(index); ChartAnchor HighAnchor = new ChartAnchor(Anchor.Time, high, chartControl); Point highPoint = HighAnchor.GetPoint(chartControl, chartPanel, chartScale); return new[] { highPoint }; } catch (Exception e) { Print (e.Message); return null; } }
-
Use the chartScale.GetYByValue() method and pass in the high value you calculated.
If you solely want the selection point to be on the high of the bar, there is no reason to create a new anchor point, you can just assign the anchorPoint.Y to that value:
Code:anchorPoint.Y = chartScale.GetYByValue(high); return new[] { anchorPoint };
Code:Point highPoint = anchorPoint; highPoint.Y = chartScale.GetYByValue(high); return new[] { anchorPoint, highPoint };
MatthewNinjaTrader Product Management
Comment
-
Thanks so much for sharing this!
Could you please paste the full context of your cod3? Need to do something similar in an indicator and am wondering where to put it. (OnBarUpdate? OnRender?)
Thanks again.
Comment
Latest Posts
Collapse
Topics | Statistics | Last Post | ||
---|---|---|---|---|
Started by StockTrader88, 03-06-2021, 08:58 AM
|
44 responses
3,966 views
3 likes
|
Last Post
by jhudas88
Today, 06:59 PM
|
||
Started by rbeckmann05, Today, 06:48 PM
|
0 responses
4 views
0 likes
|
Last Post
by rbeckmann05
Today, 06:48 PM
|
||
Started by rhyminkevin, Today, 04:58 PM
|
4 responses
54 views
0 likes
|
Last Post
by dp8282
Today, 06:13 PM
|
||
Started by iceman2018, Today, 05:07 PM
|
0 responses
5 views
0 likes
|
Last Post
by iceman2018
Today, 05:07 PM
|
||
Started by lightsun47, Today, 03:51 PM
|
0 responses
8 views
0 likes
|
Last Post
by lightsun47
Today, 03:51 PM
|
Comment