Не открываются и не закрываются ордера :(

 

Доброго времени суток. Может кто-то сталкивался с проблемой. При автоматическом трейдинге с трудом открываются и закрываются ордера. Перепробовал кучу дилинговых центров, везде та же проблема - в 50% случаев ордер не проходят операции открытия/закрытия и вылезает ошибка 129 (вроде как цены изменились). Код открытия:

int Open_buy()
   {
   int new_buy;
   i=0;
      while(i==0)
         {
         RefreshRates();
         new_buy = OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"ордер вверх");
         if(new_buy == -1)
            {
            Print("неудачно открытие бай ",GetLastError());
            Print("Ask ",Ask);
            Sleep(5000);
            }
         else
            {
            old_last_buy = last_buy;
            last_buy = new_buy;
            i=1;
            }
         }
   return(0);
   }

Код закрытия:

int Close_buy(int _order)
   {
   for(int y = 0; y < 3; y++)
      {
      RefreshRates();
      if(OrderClose(_order,1,Ask,3)!=true)
         {
         Print("не удалось закрыть бай ",GetLastError());
         Sleep(5000);
         RefreshRates();
         }
      else return(0);
      }  
   }

Пробовал на Альпари, Мастерфорексе, ФХкомпани... Везде таже ситуация, может открыться/закрыться сразу а может через минуту-две.

Билд 220. (Пробовал на билде 218 - те же яйца).

При установке клиентов метатрейдера (там где проверяется пинг до серверов) пишет от 250 до 1000 ms. Выходил в инет через 2-х разных провайдеров (не помогает). Какой пинг нормальный?

Может быть есть решения, а то я уже винду готов переустановить...

 

А ты случаем SELL тоже по "Ask" не пытаешься открываться (закрывать длинную позицию тоже логичней по "Bid")? Раз 50% случаев транзакция не проходит... ;)

У меня бывает часто реквот (ошибка 138), с ним я борюсь зацикливанием отправки ордера определенное количество раз (10-20) с "RefreshRates()" перед каждым повтором запроса на открытие.

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