Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #region Using declarations
- using System;
- using System.ComponentModel;
- using System.ComponentModel.DataAnnotations;
- using System.Windows.Forms;
- using System.Windows.Input;
- using NinjaTrader.Gui;
- using NinjaTrader.Gui.Chart;
- using NinjaTrader.Gui.SuperDom;
- using NinjaTrader.Gui.Tools;
- using NinjaTrader.Data;
- using NinjaTrader.NinjaScript;
- using NinjaTrader.Core.FloatingPoint;
- using NinjaTrader.NinjaScript.DrawingTools;
- using NinjaTrader.NinjaScript.AddOns;
- using System.Windows.Controls.Primitives;
- using SharpDX.Direct2D1;
- using SharpDX;
- using NinjaTrader.NinjaScript.AddOns.Attributes;
- #endregion
- // This namespace holds all indicators and is required. Do not change it.
- namespace NinjaTrader.NinjaScript.AddOns
- {
- [NinjaScriptAddon(Name = "Mouseclickorder", Description = "")]
- public class Mouseclickorder : NinjaTrader.NinjaScript.AddOns.AddOnBase
- {
- private ChartControl chartControl;
- private ChartPanel chartPanel;
- private ChartScale chartScale;
- private IDrawingTool selectedDrawingTool;
- protected override void OnStateChange()
- {
- if (State == State.SetDefaults)
- {
- IsOverlay = true;
- }
- else if (State == State.Configure)
- {
- chartControl = ChartControl;
- chartControl.ChartPanelMouseDown += ChartPanel_MouseDown;
- chartControl.ChartPanelMouseUp += ChartPanel_MouseUp;
- }
- }
- private void ChartPanel_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- selectedDrawingTool = null;
- if (e.Button != MouseButtons.Right)
- return;
- chartPanel = chartControl.ChartPanels.FirstOrDefault(p => p.IsMouseOver);
- chartScale = chartPanel?.ChartScale;
- if (chartScale == null)
- return;
- foreach (IDrawingTool drawingTool in chartControl.Owner.Dashboard.FocusedDrawingTools)
- {
- if (drawingTool != null && drawingTool.IsSelected)
- {
- selectedDrawingTool = drawingTool;
- break;
- }
- }
- }
- private void ChartPanel_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- if (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift))
- {
- double y = chartScale.GetValueByY(e.Y);
- if (y != ChartScale.NoValue)
- {
- double currentPrice = chartControl.LastPrice;
- if (e.Button == MouseButtons.Left)
- {
- if (y < currentPrice)
- {
- if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
- {
- chartControl.ChartPanel.OwnerChartControl.ChartTraderUi.PlaceOrder(ChartOrderAction.Sell, ChartOrderType.Limit, 0, y, "", "CT", "", true);
- }
- else
- {
- chartControl.ChartPanel.OwnerChartControl.ChartTraderUi.PlaceOrder(ChartOrderAction.Buy, ChartOrderType.Limit, 0, y, "", "CT", "", true);
- }
- }
- else if (y > currentPrice)
- {
- if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
- {
- chartControl.ChartPanel.OwnerChartControl.ChartTraderUi.PlaceOrder(ChartOrderAction.Sell, ChartOrderType.Stop, 0, y, "", "CT", "", true);
- }
- else
- {
- chartControl.ChartPanel.OwnerChartControl.ChartTraderUi.PlaceOrder(ChartOrderAction.Buy, ChartOrderType.StopMarket, 0, y, "", "CT", "", true);
- }
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement