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 judysamnt7, 03-13-2023, 09:11 AM
|
4 responses
53 views
0 likes
|
Last Post
by DynamicTest
Today, 08:25 PM
|
||
Started by ScottWalsh, Today, 06:52 PM
|
4 responses
33 views
0 likes
|
Last Post
by ScottWalsh
Today, 07:40 PM
|
||
Started by olisav57, Today, 07:39 PM
|
0 responses
5 views
0 likes
|
Last Post
by olisav57
Today, 07:39 PM
|
||
Started by trilliantrader, Today, 03:01 PM
|
2 responses
19 views
0 likes
|
Last Post
by helpwanted
Today, 07:25 PM
|
||
Started by cre8able, Today, 07:24 PM
|
0 responses
6 views
0 likes
|
Last Post
by cre8able
Today, 07:24 PM
|
Comment