romanzif
Местный
Команда форума
Администратор
- Монет
- 126,654
Код:
//+------------------------------------------------------------------+
void TrailSL()
{
double sl;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol() && OrderProfit()>0)
{
if(OrderType()==OP_BUY)
{
sl=NormalizeDouble(Bid-TrailDistance*Point,Digits); // расчет стоп-лосса к текущей цене - расстояние
if(OrderStopLoss()>sl || OrderStopLoss()==sl) continue;
bool res=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),OrderExpiration(),clrOrangeRed);
if(!res) Print("Modify Error: ",GetLastError());
}
if(OrderType()==OP_SELL)
{
sl=NormalizeDouble(Ask+TrailDistance*Point,Digits); // расчет стоп-лосса к текущей цене + расстояние
if(OrderStopLoss()<sl || OrderStopLoss()==sl) continue;
bool res=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),OrderExpiration(),clrOrangeRed);
if(!res) Print("Modify Error: ",GetLastError());
}
}
}
}
}
//+------------------------------------------------------------------+