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