//+------------------------------------------------------------------+
//|                                                      library.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+

#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
#property library

void tral (int Magic,string Symb,int Dist,int Shag,bool Isp_shag,bool bezubitok)  export
{

double dist,shag;
if (Digits==3 || Digits==5)  {dist=Dist*10*Point;shag=Shag*10*Point;}
else if (Digits==2||Digits==4) {dist=Dist*Point;shag=Shag*Point;}


for (int pos=0;pos < OrdersTotal();pos++)
{
int tt=OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==Magic&&OrderSymbol()==Symb)
{
if (OrderType()==OP_BUY)
{
if (!Isp_shag&&!bezubitok&& NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))

int t=OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);



if (Isp_shag&&!bezubitok&& NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits)&&
NormalizeDouble(Ask-OrderStopLoss(),Digits)> NormalizeDouble(dist,Digits))
int t=OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);

if (!Isp_shag&&bezubitok&& NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits)&&

NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))

int t=OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);

if (Isp_shag&&bezubitok&& NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits)&&
NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits)&&NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
int t=OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);

}

if (OrderType()==OP_SELL)
{
if (!Isp_shag&&!bezubitok&& NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
int t=OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);

if (Isp_shag&&!bezubitok&& NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits)&&
NormalizeDouble(Ask-OrderStopLoss(),Digits)> NormalizeDouble(dist,Digits))
int t=OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);

if (!Isp_shag&&bezubitok&& NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits)&&

NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))

int t=OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);

if (Isp_shag&&bezubitok&& NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits)&&
NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits)&&NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
int t=OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);
}
}
}
}