MANAGED
protected override void OnBarUpdate() { if (ToTime(Time[0]) == ToTime(5, 59, 0) && Position.MarketPosition == MarketPosition.Flat) //&& entryOrder == null) { EnterShort(1, "short"); } if (Position.MarketPosition == MarketPosition.Long && Position.GetProfitLoss(Close[0], PerformanceUnit.Currency)>= 180 ) { ExitLong("long"); } if (Position.MarketPosition == MarketPosition.Short && Position.GetProfitLoss(Close[0], PerformanceUnit.Currency)>= 180 ) { ExitShort("short"); } } protected override void OnExecution(IExecution execution) { if(execution.Order != null && execution.Order.OrderState == OrderState.Filled && execution.Order.Name == "short" && execution.Order.OrderAction == OrderAction.SellShort ) { EnterLongLimit(1, Position.AvgPrice + 2, "long"); } if(execution.Order != null && execution.Order.OrderState == OrderState.Filled && execution.Order.Name == "long" && execution.Order.OrderAction == OrderAction.Buy ) { EnterShortLimit(1, Position.AvgPrice - 2, "short"); } if(execution.Order != null && execution.Order.OrderState == OrderState.Filled) { Print(execution.Order.ToString());
UNMANAGED
[CODE
protected override void OnExecution(IExecution execution)
{
if(execution.Order != null && execution.Order.OrderState == OrderState.Filled && execution.Order.Name == "short" && execution.Order.OrderAction == OrderAction.SellShort )
{
shorttarget = SubmitOrder(0, OrderAction.BuyToCover, OrderType.Limit, 1, Position.AvgPrice - 18, 0, "short", "shorttarget");
shortstop = SubmitOrder(0, OrderAction.BuyToCover, OrderType.StopLimit , 1, Position.AvgPrice + 2, Position.AvgPrice + 2, "short", "shortstop");
longreverse = SubmitOrder(0, OrderAction.Buy, OrderType.StopLimit , 1, Position.AvgPrice + 2, Position.AvgPrice + 2, "long", "long");
}
if(execution.Order != null && execution.Order.OrderState == OrderState.Filled && execution.Order.Name == "long" && execution.Order.OrderAction == OrderAction.Buy )
{
longtarget = SubmitOrder(0, OrderAction.Sell, OrderType.Limit, 1, Position.AvgPrice + 18, 0, "long", "longtarget");
longstop = SubmitOrder(0, OrderAction.Sell, OrderType.StopLimit , 1, Position.AvgPrice - 2, Position.AvgPrice - 2, "long", "longstop");
shortreverse = SubmitOrder(0, OrderAction.SellShort, OrderType.StopLimit , 1, Position.AvgPrice - 2, Position.AvgPrice - 2, "short", "short");
}
if(execution.Order != null && execution.Order.OrderState == OrderState.Filled)
{
Print(execution.Order.ToString());
}
}][/CODE]
Comment