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 cmtjoancolmenero, Yesterday, 03:58 PM
|
11 responses
39 views
0 likes
|
Last Post Today, 11:40 AM | ||
Started by FrazMann, Today, 11:21 AM
|
0 responses
3 views
0 likes
|
Last Post
by FrazMann
Today, 11:21 AM
|
||
Started by geddyisodin, Yesterday, 05:20 AM
|
8 responses
52 views
0 likes
|
Last Post Today, 10:45 AM | ||
Started by DayTradingDEMON, Today, 09:28 AM
|
4 responses
26 views
0 likes
|
Last Post Today, 10:47 AM | ||
Started by George21, Today, 10:07 AM
|
1 response
22 views
0 likes
|
Last Post Today, 10:43 AM |
Comment