
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(OrdersTotal()<1){PutBuyLimitCountOrders();}
if(CountTrades()==10 && BuOrdersProfit()>0) {CloseBuOrders();}
Comment("\nBu Orders Profit: ",BuOrdersProfit(),
"\nOpen Position: ",CountTrades());
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void PutBuyLimitCountOrders()
{
for(int i=1;i<=10;i++)
{
int ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.2,Ask-(i*100*Point),3,
Ask-(i*100*Point)-2000*Point,
Ask-(i*100*Point)+2000*Point,"",111,0,Blue);
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
double BuOrdersProfit()
{
double all=0;
for(int i=OrdersTotal()-1;i>=7;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==111)
{
if(OrderType()==OP_BUY)
{
all+=OrderProfit();
}
}
}
}
all=NormalizeDouble(all,Digits);
return(all);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
double CloseBuOrders()
{
double all=0;
bool cl;
for(int i=OrdersTotal()-1;i>=7;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==111)
{
if(OrderType()==OP_BUY)
{
cl=OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
}
}
}
}
all=NormalizeDouble(all,Digits);
return(all);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int CountTrades()
{
int count=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==111)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
count++;
}
}
}
return(count);
}
//+------------------------------------------------------------------+
extern int ShlagBaum = 1; // 0-остаемся в постели,1-покупаем,2-продаем,3-crazy menu
результат оптимизации эксперта за последних 3 месяца:
советник в базе: www.opentraders.ru/downloads/509/
AM2