

//+----------------------------------------------------------------------------+
//| Сопровождение ордеров простым тралом |
//+----------------------------------------------------------------------------+
void TrailingOrders()
{
double di,pa,pb,pp,st,tk;
bool mod;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
pp=MarketInfo(OrderSymbol(),MODE_POINT);
if(OrderType()==OP_BUYSTOP)
{
pa=MarketInfo(OrderSymbol(),MODE_ASK);
if(OrderOpenPrice()-pa>(Delta+Prohod+TrailingStep-1)*pp)
{
di=OrderOpenPrice()-pa-(Delta+Prohod)*pp;
if(OrderStopLoss() >0) st=OrderStopLoss() -di; else st=0;
if(OrderTakeProfit()>0) tk=OrderTakeProfit()-di; else tk=0;
mod=OrderModify(OrderTicket(),pa+(Delta+Prohod)*pp,st,tk,0,Blue);
}
}
if(OrderType()==OP_SELLSTOP)
{
pb=MarketInfo(OrderSymbol(),MODE_BID);
if(pb-OrderOpenPrice()>(Delta+Prohod+TrailingStep-1)*pp)
{
di=pb-OrderOpenPrice()-(Delta+Prohod)*pp;
if(OrderStopLoss() >0) st=OrderStopLoss() +di; else st=0;
if(OrderTakeProfit()>0) tk=OrderTakeProfit()+di; else tk=0;
mod=OrderModify(OrderTicket(),pb-(Delta+Prohod)*pp,st,tk,0,Red);
}
}
}
}
}
}
//+------------------------------------------------------------------+
AM2