Отправлено 01 June 2012 - 14:37
Необходимо вместо "Sleep(Pause)" сделать чтобы ждал открытие позиции, а потом шел дальше:
extern double Lots=0.01;
int Magic=1000;
extern int Pip=10;
extern int Shag=10;
extern int Lev=3;
extern int TP=10;
extern int SL=10;
extern int Pause=10000;
int Le=1000;
int Pips=0;
int Level=0;
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
while(Le>1)
{
Level=Lev+1;
Pips=Pip;
string text=Magic;
while(Level>1)
{
OrderSend(Symbol(),OP_SELLSTOP,Lots,Ask-Pips*Point,10,Ask-Pips*Point+SL*Point,Ask-Pips*Point-TP*Point,text,Magic,0,CLR_NONE);
OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Pips*Point,10,Ask+Pips*Point-SL*Point,Ask+Pips*Point+TP*Point,text,Magic,0,CLR_NONE);
Level=Level-1;
Pips=Pips+Shag;
}
Sleep(Pause);
RefreshRates();
int err;
for (int j = OrdersTotal(); j >=0 ; j--)
{
Print("Запуск скрипта удаляющего все отложенные ордера ",TimeToStr(TimeCurrent(),TIME_MINUTES)," попытка ",err);
if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()>1)
{
while(true)
{
if (OrderDelete(OrderTicket())) break;
else
{
err++;
if (err>10) break;
Sleep(1000);
RefreshRates();
}
}
}
}
else Print( "Error when order select ", GetLastError());
}
}
return(0);
}
//+------------------------------------------------------------------+