Is there something that I am missing?
Thanks,
Sebastian
#region Using declarations using System; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Drawing.Drawing2D; using System.Xml.Serialization; using NinjaTrader.Cbi; using NinjaTrader.Data; using NinjaTrader.Indicator; using NinjaTrader.Strategy; #endregion namespace NinjaTrader.Strategy { [Description("Strategy02")] public class Strategy02 : Strategy { #region Variables private int fast = 10; private int slow = 25; private IOrder myEntryLongOrder = null; private int barNumberOfLongOrder = 0; #endregion protected override void Initialize() { SMA(Fast).Plots[0].Pen.Color = Color.Orange; SMA(Slow).Plots[0].Pen.Color = Color.Green; Add(SMA(Fast)); Add(SMA(Slow)); CalculateOnBarClose = true; } protected override void OnBarUpdate() { if (CrossAbove(SMA(Fast), SMA(Slow), 1) && myEntryLongOrder == null) { myEntryLongOrder = EnterLongLimit(0, true, 1, Low[0], "Long Entry"); barNumberOfLongOrder = CurrentBar; } if (CurrentBar > barNumberOfLongOrder + 5){ CancelOrder(myEntryLongOrder); } } protected override void OnOrderUpdate(IOrder order) { if (myEntryLongOrder != null && myEntryLongOrder == order){ Print(order.ToString()); if (order.OrderState == OrderState.Cancelled){ myEntryLongOrder = null; } } } #region Properties /// <summary> /// </summary> [Description("Period for fast MA")] [GridCategory("Parameters")] public int Fast { get { return fast; } set { fast = Math.Max(1, value); } } /// <summary> /// </summary> [Description("Period for slow MA")] [GridCategory("Parameters")] public int Slow { get { return slow; } set { slow = Math.Max(1, value); } } #endregion } }
Comment