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 AaronKoRn, Today, 09:49 PM
|
0 responses
11 views
0 likes
|
Last Post
by AaronKoRn
Today, 09:49 PM
|
||
Started by carnitron, Today, 08:42 PM
|
0 responses
10 views
0 likes
|
Last Post
by carnitron
Today, 08:42 PM
|
||
Started by strategist007, Today, 07:51 PM
|
0 responses
11 views
0 likes
|
Last Post Today, 07:51 PM | ||
Started by StockTrader88, 03-06-2021, 08:58 AM
|
44 responses
3,980 views
3 likes
|
Last Post
by jhudas88
Today, 06:59 PM
|
||
Started by rbeckmann05, Today, 06:48 PM
|
0 responses
9 views
0 likes
|
Last Post
by rbeckmann05
Today, 06:48 PM
|
Comment