//+------------------------------------------------------------------+
#property copyright "eevviill"
#property link "http://volli6.blogspot.com/"
#property version "1.00"
#property strict
extern int Magic = 0;
extern double PercentClose = 20;
extern int step = 10;
struct tic_lev
{
int ticket[];
int lev[];
};
tic_lev data;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
ArrayInitialize(data.ticket,-1);
ArrayInitialize(data.lev,-1);
EventSetTimer(1);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTimer()
{
ArrayResize(data.ticket,OrdersTotal());
ArrayResize(data.lev,OrdersTotal());
//write in buf
for ( int i = OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
if((OrderType() == OP_BUY || OrderType()==OP_SELL) && StringFind(OrderComment(),"from")==-1)
{
data.ticket[i]=OrderTicket();
data.lev[i]=step;
}
}//end for
//trail
for (int i = OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(data.ticket[i],SELECT_BY_TICKET))
{
if(OrderCloseTime()==0)
{
if(OrderType() == OP_BUY)
{ //Alert(data.ticket[i]," ",data.lev[i]);
if(Ask > OrderOpenPrice()+ NormalizeDouble(data.lev[i]*Point*10,Digits))
{
if(OrderClose(OrderTicket(),OrderLots()*PercentClose/100, NormalizeDouble(Bid,Digits), 0, clrBlue))
{
if(OrderLots()!=OrderLots()*PercentClose/100)
{
if(OrderSelect(data.ticket[i],SELECT_BY_TICKET))
{
data.lev[i]+=step;
data.ticket[i]=int(StringSubstr(OrderComment(),4));
}
}
else
{
data.ticket[i]=-1;
data.lev[i]=-1;
}
}
}
}
}
}
else
{
data.ticket[i]=-1;
data.lev[i]=-1;
}
}
}
//+------------------------------------------------------------------+