protected override void Initialize()
{
SetStopLoss("", CalculationMode.Ticks, 200, false);
CalculateOnBarClose = true;
}
protected override void OnBarUpdate()
{
if (Position.MarketPosition == MarketPosition.Flat)
{
SetStopLoss(CalculationMode.Ticks, 200);
}
else if (Position.MarketPosition == MarketPosition.Long)
{
if (Close[0] > Position.AvgPrice + 500 * TickSize)
{
SetStopLoss(CalculationMode.Price, Position.AvgPrice + 50 * TickSize);
}
if (Close[0] > Position.AvgPrice + 700 * TickSize)
{
SetStopLoss(CalculationMode.Price, Position.AvgPrice + 200 * TickSize);
}
if (Close[0] > Position.AvgPrice + 1000 * TickSize)
{
SetStopLoss(CalculationMode.Price, Position.AvgPrice + 600 * TickSize);
}
}
else if (Position.MarketPosition == MarketPosition.Short)
{
if (Close[0] < Position.AvgPrice - 500 * TickSize)
{
SetStopLoss(CalculationMode.Price, Position.AvgPrice - 50 * TickSize);
}
if (Close[0] < Position.AvgPrice - 700 * TickSize)
{
SetStopLoss(CalculationMode.Price, Position.AvgPrice - 200 * TickSize);
}
if (Close[0] < Position.AvgPrice - 1000 * TickSize)
{
SetStopLoss(CalculationMode.Price, Position.AvgPrice - 600 * TickSize);
}
}

Comment