using cAlgo.API;
namespace cAlgo
{
// このサンプルは ModifierKeys の使用方法を示しています
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class ModifierKeysSample : Indicator
{
private double _mouseBarIndex, _mousePrice;
[Parameter(DefaultValue = Key.R)]
public Key HotKey { get; set; }
[Parameter(DefaultValue = ModifierKeys.Control)]
public ModifierKeys HotKeyModifier { get; set; }
protected override void Initialize()
{
Chart.MouseMove += Chart_MouseMove;
Chart.MouseEnter += ResetMouseLocation;
Chart.MouseLeave += ResetMouseLocation;
ResetMouseLocation(null);
Chart.AddHotkey(DrawLines, HotKey, HotKeyModifier);
}
private void ResetMouseLocation(ChartMouseEventArgs obj)
{
_mouseBarIndex = -1;
_mousePrice = double.NaN;
}
private void Chart_MouseMove(ChartMouseEventArgs obj)
{
_mouseBarIndex = obj.BarIndex;
_mousePrice = obj.YValue;
}
private void DrawLines()
{
if (_mouseBarIndex == -1 || double.IsNaN(_mousePrice))
return;
var line = Chart.DrawTrendLine(_mouseBarIndex, _mousePrice, _mouseBarIndex + 10, _mousePrice, Color.Red);
}
}
}