131

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ramiz Mavludov
10583
Ramiz Mavludov  

Здравствуйте Ув. Гуру, продавцы и обычные ребята, администрация, читатель, мимо проходящий, случайно заглянувший и т.д. 

Вы сталкивались с 131 ошибкой при обновлении продуктов в последние 2-3 месяца?

Ясное дело что нужна проверка и она есть, но предыдущий раз когда обновлял продукт, без проблем все обошлось, теперь же на пути у модератора, встал большой и жирный 131 и не хочет пускать дальше.

Пытался выявить у себя эту ошибку, устанавливая различный лот, депозит, валюту, но, не удается.

У меня же, как положено при не хватке, соответствующее уведомление выдает журнал "AUDCAD,M30: Not enough money. Not enough ="Нужно больше золота"

Может есть какие то изменения в проверке, которые нужно было внести... 

Kino
6771
Kino  
Ramiz Mavludov:

Здравствуйте Ув. Гуру, продавцы и обычные ребята, администрация, читатель, мимо проходящий, случайно заглянувший и т.д. 

Вы сталкивались с 131 ошибкой при обновлении продуктов в последние 2-3 месяца?

Ясное дело что нужна проверка и она есть, но предыдущий раз когда обновлял продукт, без проблем все обошлось, теперь же на пути у модератора, встал большой и жирный 131 и не хочет пускать дальше.

Пытался выявить у себя эту ошибку, устанавливая различный лот, депозит, валюту, но, не удается.

У меня же, как положено при не хватке, соответствующее уведомление выдает журнал "AUDCAD,M30: Not enough money. Not enough ="Нужно больше золота"

Может есть какие то изменения в проверке, которые нужно было внести... 


131 

ERR_INVALID_TRADE_VOLUME131Неправильный объем

Проверяйте корректность лота, минимальный, максимальный и допустимый шаг изменения.

Kino
6771
Kino  

Для "четверки" пользуюсь такой функцией открытия позиции, ошибок нет.

//+----------------------------------------------------------------------------+
//|    Функция открытия ордера    https://www.mql5.com/ru/users/kino           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (Symbol() - текущий символ)             |
//|    op - операция (0-Buy 1-Sell)                                            |
//|    ll - лот                                                                |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - MagicNumber                                                        |
//+----------------------------------------------------------------------------+

bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int mn=0)
{
   int LS=0;
   double MinLot = MarketInfo(Symbol(),MODE_MINLOT);
   double MaxLot = MarketInfo(Symbol(),MODE_MAXLOT);
   double LotStep = MarketInfo(Symbol(),MODE_LOTSTEP);
   if (LotStep == 0.01) LS = 2;
   if (LotStep == 0.1) LS = 1;
   if (LotStep == 1) LS = 0;
   ll = NormalizeDouble(ll,LS);
   if (ll < MinLot) ll = MinLot; else ll = ll;
   if (ll > MaxLot) ll = MaxLot; else ll = ll;
   
   if (op == 0) // Открытие BUY
   {
      // Проверяем доступность свободных средств
      if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134))
            {
               Print(sy," ",ll," It is impossible to open the order Buy, not enough money.");
               return(0);
            }
      RefreshRates();

      // Открываем ордер
      int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,mn,0,BuyColor);
         if(ticketbuy<0)
         Print(sy," OpenPosition. OrderSend Buy fail #",GetLastError());
         else
         Print(sy," OpenPosition. OrderSend Buy successfully");

      // Sleep (Pause);

      // Модифицируем ордер (выставляем тейкпрофит и стоплосс)
      if (sl !=0 || tp !=0)
            {
            //--- Вычисленные значения цен SL и TP должны быть нормализованы
            double BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
            double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
            //--- Если входящие значения ноль то заменяем цену модификации на ноль
            if (sl == 0) BSLoss = 0;
            if (tp == 0) BTProfit = 0;

            bool resbuy = OrderModify (ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor);
                  if(!resbuy)
                     Print(sy," OpenPosition. OrderModify Buy fail #",GetLastError());
                  else
                     Print(sy," OpenPosition. OrderModify Buy successfully");
            }
   }

   if (op == 1) // Открытие Sell
   {
      // Проверяем доступность свободных средств
      if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134))
            {
               Print(sy," ",ll," It is impossible to open the order Sell, not enough money.");
               return(0);
            }
      RefreshRates();

      // Открываем ордер
      int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,mn,0,SellColor);
         if(ticketsell<0)
         Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError());
         else
         Print(sy," OpenPosition. OrderSend Sell successfully");

      // Sleep (Pause);

      // Модифицируем ордер (выставляем тейкпрофит и стоплосс)
      if (sl !=0 || tp !=0)
            {
            //--- Вычисленные значения цен SL и TP должны быть нормализованы
            double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
            double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
            //--- Если входящие значения ноль то заменяем цену модификации на ноль
            if (sl == 0) SSLoss = 0;
            if (tp == 0) STProfit = 0;

            bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor);
                  if(!ressell)
                     Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError());
                  else
                     Print(sy," OpenPosition. OrderModify Sell successfully");
            }
   }
return (True);
}
//End
Ramiz Mavludov
10583
Ramiz Mavludov  
Vladimir Zubov:

Для "четверки" пользуюсь такой функцией открытия позиции, ошибок нет.


Спасибо Владимир. Попробую. Получилось или нет, узнаю после того как его модератор проверит. 

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий