Ошибки, баги, вопросы - страница 3706

 
Yuriy Bykov #:

Если вы используете MetaEditor для работы с хранилищем MQL5 Algo Forge, то попробуйте:

  • сделать новую установку MT в отдельной папке (достаточно в любую новую папку скопировать файлы terminal64.exe и metaeditor64.exe),
  • запустить MetaTrader5 (желательно в режиме portable, но необязательно),
  • залогиниться в сообществе,
  • запустить MetaEditor и активировать MQL5 Algo Forge.
Вполне возможно, что хранилище заработает. Если да, то можно продолжить использовать эту папку с новой установкой. Либо вернитесь в старую папку, сделайте её резервную копию, удалите из неё всё, и повторите с ней указанные выше шаги.
Увы, это не MQL5 Algo Forge и не MT5, а MT4
 
Туплю, где ошибка?
void OnStart()
{
  uint Num = 1;
  
  Print(Num >> 32); // 7274610
}
Вроде, ноль должен быть.
 
fxsaber #:
Туплю, где ошибка? Вроде, ноль должен быть.
у меня 0. При любом сдвиге вправо, отличным от нуля будет ноль.
При сдвиге влево 0 будет только при сдвиге 32  
 
fxsaber # :
Stupid, where's the mistake? It seems that there should be zero.

На самом деле должно быть предупреждение. Не следует перемещать 32-битное целое число на 32 бита.

 Void OnStart()
  {
//----
   uint Num = 1 ;

   printf("%u", Num >> 32 );
   Print(Num >> 32);
  }

Непоследовательное поведение:

2026.02.06 11:30:17.467 _ (EURUSD,M15) 0
2026.02.06 11:30:17.467 _(EURUSD,M15) 3490582584

Сообщается в MQ.

 
Alain Verleyen #:

На самом деле должно быть предупреждение. Не следует перемещать 32-битное целое число на 32 бита.

Непоследовательное поведение:

2026.02.06 11:30:17.467 _ (EURUSD,M15) 0
2026.02.06 11:30:17.467 _(EURUSD,M15) 3490582584

Сообщается в MQ.

хм. Действительно. 
Причем рандомное число. 
 void OnStart()
  {
   uint Num = 1 ;

   printf ("%u", Num >> 32 );
   Print (Num >> 32);
   Print (Num >> 32);
   Print (Num >> 32);
   Print (Num >> 32);
  }

2026.02.06 11:44:07.708	TestTimeCur (EURUSD,M3)	0
2026.02.06 11:44:07.708	TestTimeCur (EURUSD,M3)	2147618872
2026.02.06 11:44:07.708	TestTimeCur (EURUSD,M3)	2147618872
2026.02.06 11:44:07.708	TestTimeCur (EURUSD,M3)	2147618872
2026.02.06 11:44:07.708	TestTimeCur (EURUSD,M3)	2147618872
2026.02.06 11:44:16.475	TestTimeCur (EURUSD,M3)	0
2026.02.06 11:44:16.475	TestTimeCur (EURUSD,M3)	2147487800
2026.02.06 11:44:16.475	TestTimeCur (EURUSD,M3)	2147487800
2026.02.06 11:44:16.475	TestTimeCur (EURUSD,M3)	2147487800
2026.02.06 11:44:16.475	TestTimeCur (EURUSD,M3)	2147487800
 
Alain Verleyen #:

На самом деле должно быть предупреждение. Не следует перемещать 32-битное целое число на 32 бита.

Непоследовательное поведение:

2026.02.06 11:30:17.467 _ (EURUSD,M15) 0
2026.02.06 11:30:17.467 _(EURUSD,M15) 3490582584

Сообщается в MQ.


void OnStart() {
   uint Num = 1 ;
   printf ("%u", Num >> 32 );
   Print(Num >> 32);
   
   if((Num >> 32) >= 0) Print("Done"); // данная строка прекращает последующее выполнение программы без краша.
   Print("End");
}
2026.02.06 12:10:41.123 TestTimeCur (EURUSD,M3) 0
2026.02.06 12:10:41.123 TestTimeCur (EURUSD,M3) 684724280
2026.02.06 12:10:42.059 TestTimeCur (EURUSD,M3) 0
2026.02.06 12:10:42.059 TestTimeCur (EURUSD,M3) 684527672
 
Nikolai Semko # :


Да, подобное утверждение является неопределенным поведением (UB в C++).
 

МТ4/MetaEditor
Раньше все коммитилось.
От хранилища не отключался. Что можно исправить?



 
Походу последний билд 5584 опять поломал функцию CustomRatesUpdate. Когда загружает кастомную историю, если она приходиться на промежуток при смене суток (например с 2026.02.07 23:59:00 на 2026.02.08 00:00:00) работа функции прерывается и выдает ошибки либо 4000 либо 5039. И потом с этой историей функция вообще отказывается работать - сразу ошибки выдает. До обновления все работало как швейцарские часики....
 
Aleksandrs Butrims # :
Походу последний билд 5584 опять поломал функцию CustomRatesUpdate . Когда загружает кастомную историю, если она приходиться на промежуток при смене суток (например с 2026.02.07 23:59:00 на 2026.02.08 00:00:00) работа функции прерывается и выдает ошибки либо 4000 либо 5039. И потом с этой историей функция вообще отказывается работать - сразу ошибки выдает. До обновления все работало как швейцарские часики....
Пожалуйста, предоставьте необходимый код для воспроизведения данной проблемы.