Обновление платформы MetaTrader 4 билд 625: Журналы в MetaTrader Market и новый MetaViewer - страница 49

 
Sergey_Mechanic:

Выключаем автотрейдинг кнопкой. Кидаем на график эксперт. Рожица, естественно, грустная.

Включаем автотрейдинг, рожица так и остаётся грустной, советник не начинает торговать. Приходится его удалять с графика и вновь размещать, предварительно проверив, что автотрейдинг включён.


Не надо удалять советника с графика. Вам необходимо включить галку автотогрговли в настройках этого конкретного советника
 
stringo:

Не надо удалять советника с графика. Вам необходимо включить галку автотогрговли в настройках этого конкретного советника

А, вон в чём дело... Спасибо.
 
Sergey_Mechanic:
Ну, во-первых, старый МЕ у меня не сохранился, а во-вторых, починить-то в любом случае надо.
Да это понятно, сам жду с нетерпением.
Только предпочитаю ждать в комфортных условиях.

А старые версии могут найтись в каталогах C:\...\MetaQuotes\Webinstall\
Если, конечно, на диске установлено больше одного терминала МТ4.
 
Sergey_Mechanic:


Господа разработчики, вы на эту проблему обратили внимание, чините? Невозможно стало править код, если он выровнен табуляторами, какая-то игра в кошки-мышки с курсором. Приходится копировать код в блокнот, в нём править, а потом из блокнота опять копировать в МЕ.

Этот баг появился в последнем, 915-м билде.

Ошибка будет исправлена в ближайшем обновлении. Для устранения проблемы до обновления МТ4 скопируйте MetaEditor build 930 из МТ5.
 

Предложение к компании MetaQuotes

https://www.mql5.com/ru/forum/151166

 
конструкция такая:
    while(ticket<=0 && n<5)
     {
      RefreshRates();
      ticket=OrderSend();
      Sleep(3000);
      if(ticket>0)
       {
            // если ордер открыт
       }
      else
       {
        if(!IsOptimization() && !IsTesting())
         {
          err=GetLastError();
          // сообщение об ошибке
                 }
        Sleep(4000);
       }
      n++;
     }
результат получен (обычно работает нормально) такой:
2014.04.18 19:30:30.980 '550xxxx': order was opened : #133378106 sell 0.01 EURJPY at 141.505 sl: 143.305 tp: 139.055
2014.04.18 19:30:30.583 '550xxxx': request in process
2014.04.18 19:30:30.254 '550xxxx': request was accepted by server
2014.04.18 19:30:30.047 '550xxxx': instant order sell 0.01 EURJPY at 141.505 sl: 143.305 tp: 139.055
2014.04.18 19:30:30.030 '550xxxx': order was opened : #133378105 sell 0.01 EURJPY at 141.505 sl: 143.305 tp: 139.055
2014.04.18 19:30:29.858 '550xxxx': request in process
2014.04.18 19:30:29.699 '550xxxx': login
2014.04.18 19:30:29.373 '550xxxx': request was accepted by server
2014.04.18 19:30:29.212 '550xxxx': instant order sell 0.01 EURJPY at 141.505 sl: 143.305 tp: 139.055

получается, слипы вообще не работают, код скомпилирован в старой версии (509)
 
mr_Johns:

получается, слипы вообще не работают, код скомпилирован в старой версии (509)
Так ведь в логе не показано, что ордер открыть не удалось. По коду видно, что Sleep должен срабатывать только в том случае, если имела место ошибка открытия ордера.
 
Scriptong:
Так ведь в логе не показано, что ордер открыть не удалось. По коду видно, что Sleep должен срабатывать только в том случае, если имела место ошибка открытия ордера.

там 2 слипа (посмотрите внимательнее), и первый как раз стоит после запроса, т.е. проверка - открылся ордер или нет, делается после паузы (по коду), но в реале этой паузы нет.
 
mr_Johns:

там 2 слипа (посмотрите внимательнее), и первый как раз стоит после запроса, т.е. проверка - открылся ордер или нет, делается после паузы (по коду), но в реале этой паузы нет.


Наверное, раньше его там не был... Шучу ;)

А если поставить Print?

   int ticket = -1;
   int n = 0;
   while(ticket<=0 && n<5)
   {
      RefreshRates();
      ticket=OrderSend(Symbol(), OP_BUY, 0.1, Ask, 0, 0, 0);
      Sleep(3000);
      if(ticket>0)
         Print("Трам-пам-пам");
      else
      {
        if(!IsOptimization() && !IsTesting())
          int err = GetLastError();

        Sleep(4000);
      }
      n++;
    }

Итог в общем журнале:

2014.04.18 20:59:45.035 Script TestSleep USDJPY,M30: removed

2014.04.18 20:59:42.035 '1922112': order was opened : #93009714 buy 0.10 USDJPY at 102.41 sl: 0.00 tp: 0.00

2014.04.18 20:59:42.034 '1922112': request in process

2014.04.18 20:59:42.034 '1922112': request was accepted by server

2014.04.18 20:59:41.536 '1922112': instant order buy 0.10 USDJPY at 102.41 sl: 0.00 tp: 0.00

2014.04.18 20:59:41.530 Script TestSleep USDJPY,M30: loaded successfully

Скрипт выгружен через 3 секунды после открытия ордера.

Итог в журнале экспертов:

2014.04.18 20:59:45.035 Script TestSleep USDJPY,M30: removed

2014.04.18 20:59:45.035 TestSleep USDJPY,M30: uninit reason 0

2014.04.18 20:59:45.035 TestSleep USDJPY,M30: Трам-пам-пам

2014.04.18 20:59:42.035 TestSleep USDJPY,M30: open #93009714 buy 0.10 USDJPY at 102.41 ok

2014.04.18 20:59:41.536 TestSleep USDJPY,M30: initialized

2014.04.18 20:59:41.530 Script TestSleep USDJPY,M30: loaded successfully

Возможно, у Вас параллельно работает две копии эксперта, которые срабатывают в один и тот же момент.

 
Scriptong:


Наверное, раньше его там не был... Шучу ;)

А если поставить Print?

Итог в общем журнале:

2014.04.18 20:59:45.035 Script TestSleep USDJPY,M30: removed

2014.04.18 20:59:42.035 '1922112': order was opened : #93009714 buy 0.10 USDJPY at 102.41 sl: 0.00 tp: 0.00

2014.04.18 20:59:42.034 '1922112': request in process

2014.04.18 20:59:42.034 '1922112': request was accepted by server

2014.04.18 20:59:41.536 '1922112': instant order buy 0.10 USDJPY at 102.41 sl: 0.00 tp: 0.00

2014.04.18 20:59:41.530 Script TestSleep USDJPY,M30: loaded successfully

Скрипт выгружен через 3 секунды после открытия ордера.

Итог в журнале экспертов:

2014.04.18 20:59:45.035 Script TestSleep USDJPY,M30: removed

2014.04.18 20:59:45.035 TestSleep USDJPY,M30: uninit reason 0

2014.04.18 20:59:45.035 TestSleep USDJPY,M30: Трам-пам-пам

2014.04.18 20:59:42.035 TestSleep USDJPY,M30: open #93009714 buy 0.10 USDJPY at 102.41 ok

2014.04.18 20:59:41.536 TestSleep USDJPY,M30: initialized

2014.04.18 20:59:41.530 Script TestSleep USDJPY,M30: loaded successfully

Возможно, у Вас параллельно работает две копии эксперта, которые срабатывают в один и тот же момент.


Возможно... у меня стоит несколько экспертов, но оба ордера открыты одним и тем же совом, иначе я бы и не волновался...
Причина обращения: