Новая версия платформы MetaTrader 4 build 1350 - страница 16

 
Vitaly Muzichenko #:

С архитектурой большие проблемы в мт5

В каждой архитектуре свои преимущества, и свои проблемы, конечно.

 
Прошу разработчиков исправить ошибку, которая заключается в том, что в MT4 время от времени прекращают поступать котировки, останавливаются графики, хотя индикатор соединения показывает, что связь установлена. Помогает перелогиниться или выбрать другой сервер. Эта проблема наблюдается как минимум последние лет пять, в том числе, присутствует на последней на данный момент версии MT4 build 1351.
 

Почему перестал находить серверы MetaQuotes? Билд 1350


 
Denis Zyatkevich #:
в MT4 время от времени прекращают поступать котировки, останавливаются графики, хотя индикатор соединения показывает, что связь установлена.

Когда нарветесь на такую ситуацию, сохраните дамп процесса с этой проблемой.

 
Ivan Titov #:

Почему перестал находить серверы MetaQuotes? Билд 1350

Кажется, есть ограничение на кол-во. Удалите несколько ненужных и повторите.

 
Andrey Khatimlianskii #:

Кажется, есть ограничение на кол-во. Удалите несколько ненужных и повторите.

Спасибо, помогло.

 
fxsaber #:

Когда нарветесь на такую ситуацию, сохраните дамп процесса с этой проблемой.

Архив с дампом (72МБ).
 

Не уверен, что такое поведение  можно считать нормальным.

Есть две ulong переменные, в которых хранится  текущее значение миллисекундного таймлера и когда следует инициировать некоторое действие.

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

Как известно забывчивость в приведение типов и правил операций нередко приводит к ошибкам, так как ожидаемый результат отличается от фактического (простейший случай с int/int я думаю встретился каждому).

Вот фрагмент кода:

     ulong temp=GetMicrosecondCount();

     long Next=(long)CheckMasterTask.CheckPoint;

     Panel21.SetText(12,"CheckPoint:"+string(Next)+" Current:"+string(temp),clrWhite,2000000,true);

     long z=(long)(Next-temp);

     Panel21.SetText(13,"Delta:"+string(z),clrYellow,2000000,true);

     Panel21.SetText(14,"current (&long):"+string(temp)+" delta: "+(string)((long)(Next-temp)),clrWhite,2000000,true);

     Panel21.SetText(15,"current:"+string(temp)+" delta: "+(string)(Next-temp),clrWhite,2000000,true);

     Panel21.SetText(16,"current:"+string(temp)+" delta: "+(string)(z),clrWhite,2000000,true);    

Кто-то может мне объяснить - почему получаем неверный результат при (string)(long-ulong)? Т.е требуется писать   (string)((long)(log-ulong))?  Что-то не то, имхо.

2021.11.19 04:15:46.653 Data Folder: C:\Users\Alex\AppData\Roaming\MetaQuotes\Terminal\71B6C1F6690DE8BC4851CD85C1FDC69D
2021.11.19 04:15:46.653 Windows 10 Home x64, IE 11, UAC, 4 x Intel Core i5-4200U  @ 1.60GHz, Memory: 3952 / 8072 Mb, Disk: 20 / 913 Gb, GMT+2
2021.11.19 04:15:46.653 Swissquote Bank MT4 build 1351 started (Swissquote Bank SA)

PS. Ответ оказался прост: ИЕРАРХИЯ ТИПОВ рулит

bool,char,short-int-unsigned int-long-unsigned long-float-double-long double

 
Mikhail Dovbakh #:

Не уверен, что такое поведение  можно считать нормальным.

Есть две ulong переменные, в которых хранится  текущее значение миллисекундного таймлера и когда следует инициировать некоторое действие.

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

Как известно забывчивость в приведение типов и правил операций нередко приводит к ошибкам, так как ожидаемый результат отличается от фактического (простейший случай с int/int я думаю встретился каждому).

Вот фрагмент кода:

     ulong temp=GetMicrosecondCount();

     long Next=(long)CheckMasterTask.CheckPoint;

     Panel21.SetText(12,"CheckPoint:"+string(Next)+" Current:"+string(temp),clrWhite,2000000,true);

     long z=(long)(Next-temp);

     Panel21.SetText(13,"Delta:"+string(z),clrYellow,2000000,true);

     Panel21.SetText(14,"current (&long):"+string(temp)+" delta: "+(string)((long)(Next-temp)),clrWhite,2000000,true);

     Panel21.SetText(15,"current:"+string(temp)+" delta: "+(string)(Next-temp),clrWhite,2000000,true);

     Panel21.SetText(16,"current:"+string(temp)+" delta: "+(string)(z),clrWhite,2000000,true);    

Кто-то может мне объяснить - почему получаем неверный результат при (string)(long-ulong)? Т.е требуется писать   (string)((long)(log-ulong))?  Что-то не то, имхо.

2021.11.19 04:15:46.653 Data Folder: C:\Users\Alex\AppData\Roaming\MetaQuotes\Terminal\71B6C1F6690DE8BC4851CD85C1FDC69D
2021.11.19 04:15:46.653 Windows 10 Home x64, IE 11, UAC, 4 x Intel Core i5-4200U  @ 1.60GHz, Memory: 3952 / 8072 Mb, Disk: 20 / 913 Gb, GMT+2
2021.11.19 04:15:46.653 Swissquote Bank MT4 build 1351 started (Swissquote Bank SA)

Какая-то КАША..

может вам сделать перерыв и вернуться к коду с ясной головой ?

данные разнотипны, что делают и возвращают ваши функции никому кроме вас неизвестно. Печать неочидна

 
Maxim Kuznetsov #:

Какая-то КАША..

может вам сделать перерыв и вернуться к коду с ясной головой ?

данные разнотипны, что делают и возвращают ваши функции никому кроме вас неизвестно. Печать неочидна

Сожалею, что мой пост вызвал у Вас такую реакцию. Но я никогда не опускаюсь до личных и поспешных оценок, тем более - не сделав никаких мозговых усилий.)

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