Где ошибка в управлении ордерами

 

Кто нибудь подскажет почему он открывает дополнительный ордер хотя открыта уже позиция, когда отключается инет и опять включается он начинает открывать ордер не видя что уже открыт ордер как этого избежать, что нужно добавить в код или наоборот исправить.

Спасибо.

С уважением.

int check_recent ()
   {int total,a;
   int temp=0;
   total=OrdersTotal();
   if (total==0) return(0);
   for (a=0;a<=total;a++)
      {
      OrderSelect(a,SELECT_BY_POS);
         if (OrderMagicNumber() == signal_id)
         temp++;
      }
   if (temp==0) {step=1; }//Alert("0 expert orders, step 1 initialized");}
   return(0);   
   }


int openorders(int signal)
   {
   double lot,prc;
   lot=Lots();
   if (signal==1) prc=Bid;
   else prc=Ask;
   ticket=OrderSend(Symbol(),signal,lot,prc,slippage,0,0,NULL,signal_id,0,CLR_NONE); lots_used=lot;
   if (ticket==-1) {Alert ("Ошибка открытия ордера",GetLastError());}// Alert("ordersend parametrs: signnal = ",signal,", price = ",prc);}
   return(0);}
 
1Rakso >>:

Кто нибудь подскажет почему он открывает дополнительный ордер хотя открыта уже позиция, когда отключается инет и опять включается он начинает открывать ордер не видя что уже открыт ордер как этого избежать, что нужно добавить в код или наоборот исправить.

Спасибо.

С уважением.


попробуй


 if (total>0) return (0);

 
if (total>0) return(0);
может так.
 
satop >>:
может так.

Спасибо огромное)) С наступающим старым новым годом Вас!!!!!!!!!!!!!!!!!!!!!!

Причина обращения: