using System.Windows; using System.Windows.Input; using NinjaTrader.Gui.Chart; //This namespace holds Indicators in this folder and is required. Do not change it. namespace NinjaTrader.NinjaScript.Indicators { public class VsaNew : Indicator { protected override void OnStateChange() { if (State == State.SetDefaults) { IsOverlay = true; } else if (State == State.DataLoaded) { if (this.ChartPanel != null) this.ChartPanel.MouseMove += new MouseEventHandler(OnMouseMove); } } protected override void OnBarUpdate() { //Add your custom indicator logic here. } internal void OnMouseMove(object sender, MouseEventArgs e) { ChartControl cc = ChartControl; ChartScale cs = new ChartScale(/*cc.PrimaryBars.*/ChartPanel, cc.PrimaryBars.Properties.ScaleJustification); Point cursorPos = e.GetPosition(ChartPanel); float fy = (float)cursorPos.Y; double tmp = cs.GetValueByY((float)cursorPos.Y); double tmp2 = cs.GetValueByYWpf((float)cursorPos.Y); Print("VsaNew: cursor Y: " + fy + " GetValueByY: " + tmp + " GetValueByYWpf: " + tmp2); } } }
Announcement
Collapse
No announcement yet.
Partner 728x90
Collapse
NinjaTrader
Are GetValueByY() and GetValueByYWpf() working?
Collapse
X
-
Are GetValueByY() and GetValueByYWpf() working?
Another OnMouseMove() issue. Am I doing something wrong, or is there a bug here? I move the cursor up and down, yielding Y values frm 0-724. In all cases, both GetValueByY() and GetValueByYWpf() return zero.
Code:Tags: None
-
Get the ChartScale from the Chart's ChartPanel.Scales object:
ChartScale cs = ChartPanel.Scales[ChartPanel.PanelIndex];
The below is working for me. Let me know if you see any issues
Code:public class MyCustomIndicator3 : Indicator { protected override void OnStateChange() { if (State == State.SetDefaults) { IsOverlay = true; } else if (State == State.DataLoaded) if (ChartPanel != null) ChartPanel.MouseMove += OnMouseMove; else if (State == State.Terminated) if (ChartPanel != null) ChartPanel.MouseMove -= OnMouseMove; } protected override void OnBarUpdate() { //Add your custom indicator logic here. } internal void OnMouseMove(object sender, MouseEventArgs e) { try { ChartScale cs = ChartPanel.Scales[ChartPanel.PanelIndex]; Point cursorPos = e.GetPosition(ChartPanel); float fy = (float) cursorPos.Y; if (cs != null) { double tmp = cs.GetValueByY((float) cursorPos.Y); double tmp2 = cs.GetValueByYWpf((float) cursorPos.Y); Print("VsaNew: cursor Y: " + fy + " GetValueByY: " + tmp + " GetValueByYWpf: " + tmp2); } } catch (Exception exception) { Print(exception); } } }
Last edited by NinjaTrader_Matthew; 08-24-2015, 08:28 AM.MatthewNinjaTrader Product Management
-
Originally posted by NinjaTrader_Matthew View PostGet the ChartScale from the Chart's ChartPanel.Scales object:
ChartScale cs = ChartPanel.Scales[ChartPanel.PanelIndex];
The below is working for me. Let me know if you see any issues
--EV
Comment
Latest Posts
Collapse
Topics | Statistics | Last Post | ||
---|---|---|---|---|
Started by carnitron, 03-25-2024, 01:59 PM
|
11 responses
50 views
0 likes
|
Last Post
by carnitron
Today, 02:18 PM
|
||
Started by Gerik, 12-21-2023, 08:20 AM
|
15 responses
202 views
0 likes
|
Last Post
by Mindset
Today, 02:06 PM
|
||
Started by visvabalaji, Today, 02:04 PM
|
0 responses
4 views
0 likes
|
Last Post
by visvabalaji
Today, 02:04 PM
|
||
Started by spottysallrite, Today, 11:31 AM
|
6 responses
14 views
0 likes
|
Last Post Today, 01:53 PM | ||
Started by volIQ, Yesterday, 04:28 PM
|
2 responses
16 views
0 likes
|
Last Post
by volIQ
Today, 01:42 PM
|
Comment