Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1711

 
 Нужно удаление одного из ордеров идентичного по времени открытия, лоту и цене открытия (два последних), насильно удалить один из таких. Спасибо.
 
Vitaly Muzichenko #:

Вопрос в другом, чтобы выводить "Входные параметры" на нужном языке.

Именно так.

А возможно это сделать через?

#define LANG(...)
...
#ifdef
...
#else 
...
#endif 
 
Vitaly Muzichenko #:

Вопрос в другом, чтобы выводить "Входные параметры" на нужном языке.

Только определяя при компиляции язык терминала и используя #ifdef -- #else -- #endif для условной компиляции

 
Порт-моне тв #:
 Нужно удаление одного из ордеров идентичного по времени открытия, лоту и цене открытия (два последних), насильно удалить один из таких. Спасибо.

Выложи код от скобки до скобки

{
.....
ticket = OrderSend(Symbol(),OP_BUY, Lot*3, Ask, Slippage, SLbuy, 0, "открыт ордер на покупку", Magic, 0, Blue);
.....
ticket = OrderSend(Symbol(),OP_SELL, Lot*3, Bid, Slippage, SLsell, 0, "открыт ордер на продажу", Magic, 0, Red);
}
именно этот участок.
 
Artyom Trishkin #:

Только определяя при компиляции язык терминала и используя #ifdef -- #else -- #endif для условной компиляции

Это упущение MQL. К сожалению (
 
Порт-моне тв #:

Я в тестере гоняю. Зачем мне экстрасенсы, если я сам телепат. И я поэтому знаю что именно мне нужно. А вы почем зря тратите свое и мое время бессмысленной болтовней.

Проверьте перед открытием есть ли позиция, открытая на этой свече (если по одной позиции на бар), есть ли позиция, открытая на этой свече по этой цене (ненадёжно из-за проскальзывания), есть ли позиция, открытая определённое количество секунд назад по этому сигналу....

Способов-то много. Но в коде у вас должна быть проверка на существование позиции по этому сигналу. Вам и решать как её организовать раз кода нету.

Именно по причине отсутствия кода все и гадают, что в итоге оказывается бессмысленной болтовней.

 
MakarFX #:

Выложи код от скобки до скобки

именно этот участок.
   if(sb1 + sb1/100*LotRisk*(DayMultiplicatorProfit/100/2) > AccountBalance()  && TimeCurrent()>TimeCheck_a && TimeCurrent()<TimeCheck_ac && Ogranichitel > 0)
     {

      if(OrderOfSymbol<1)
         if(signal=="buy")
            if(Close[1]>Open[1])
              {
               ticket = OrderSend(Symbol(),OP_BUY, Lot, Ask, 3, SLbuy, TPbuy, "открыт ордер на покупку", Magic, 0, Green);
               Print("OpenOrderSuccess");
              }


      if(OrderOfSymbol<1)
         if(signal=="sell")
            if(Close[1]>Open[1])
              {
               ticket = OrderSend(Symbol(),OP_SELL, Lot, Bid, 3, SLsell, TPsell, "открыт ордер на продажу", Magic, 0, Red);
               Print("OpenOrderSuccess");
              }

     }
 
Порт-моне тв #:
Меня сразу смущает
OrderOfSymbol
как ты его определяешь?
 
MakarFX #:
Меня сразу смущает как ты его определяешь?
OrderOfSymbol=CounterOrderTradeType(-1);

............


//+------------------------------------------------------------------+
//| Подсчет ордеров потекущему символу                               |
//+------------------------------------------------------------------+
int CounterOrderTradeType(ENUM_ORDER_TYPE order_type)
  {
   int cnt=0;
//----
   for(int pos=OrdersTotal()-1; pos>=0; pos--)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)==false)
         continue;
      if(OrderSymbol()!=_Symbol)
         continue;
      if(order_type == OrderType() || order_type == -1)
         cnt++;
     }
//----
   return(cnt);
  }

//+------------------------------------------------------------------+
вы все еще пытаетесь найти ошибку, но я вас уже несколько часов прошу о другом. Почему так?
 
Порт-моне тв #:

Пробуй

   if(sb1 + sb1/100*LotRisk*(DayMultiplicatorProfit/100/2) > AccountBalance()  && TimeCurrent()>TimeCheck_a && TimeCurrent()<TimeCheck_ac && Ogranichitel > 0)
     {
      if(OrderOfSymbol<1)
        {
         if(signal=="buy"&&Close[1]>Open[1])
           {
            if(OrderSend(Symbol(),OP_BUY, Lot, Ask, 3, SLbuy, TPbuy, "открыт ордер на покупку", Magic, 0, Green))
              {Print("OpenOrderSuccess");}
           }
         if(signal=="sell"&&Close[1]>Open[1])
           {
            if(OrderSend(Symbol(),OP_SELL, Lot, Bid, 3, SLsell, TPsell, "открыт ордер на продажу", Magic, 0, Red))
              {Print("OpenOrderSuccess");}
           }
        }
     }
Выделено желтым. Так и должно быть?
Причина обращения: