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

 
MetaQuotes:

В четверг 10 декабря 2020 года будет выпущено обновление MetaTrader 4. В нем исправлен ряд ошибок и повышена стабильность работы платформы.

В частности, исправлена ошибка в оптимизации дата-соединения клиентских терминалов с дата-центрами брокера.

Обновление будет доступно через систему Live Update.

Спасибо Вам, что поддерживаете этот популярный терминал!)

Конечно есть много недостатков. Но нигде, даже  в Mt5 с его фишками, нет настолько простого и понятного способа программирования роботов от начала до конечного результата.

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

Но это все ничто, по сравнению с заморочками в других средах разработки и торговли. 

PS: MT5 конечно хорош, но и MT4 вполне достаточно для торговли, так как самое главное, это торговый алгоритм, а его и скриптами в большинстве случаев запилить можно (знаю о чем говорю, так как среднее количество строк кода в моих роботах от 1500 до 5000 - модульная архитектура алгоритмов решает все вопросы в обход ООП) 

Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Объект динамического массива - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
CHINGIZ MUSTAFAEV:

нигде, даже  в Mt5 с его фишками, нет настолько простого и понятного способа программирования роботов от начала до конечного результата.

Не вяжется с тем, что написали ниже.

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

 
fxsaber:

Не вяжется с тем, что написали ниже.

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

 
CHINGIZ MUSTAFAEV:

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

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

 

Какие-то изменения компилятора не дают выполняться виртуальному методу перекрытому в наследнике из-за того, что в базовом классе метод объявлен абстрактным. На стадии выполнения кода появляется ошибка "pure virtual function call". До нескольких последних билдов эта конструкция работала.

Код для воспроизведения привожу.

Поскольку метод виртуальный, его привязка должна осуществляться к объекту класса Concrete с реализацией, а не к абстрактному родительскому Pure.

Файлы:
MQL4pure.zip  2 kb
 
Stanislav Korotky:

Какие-то изменения компилятора не дают выполняться виртуальному методу перекрытому в наследнике из-за того, что в базовом классе метод объявлен абстрактным. На стадии выполнения кода появляется ошибка "pure virtual function call". До нескольких последних билдов эта конструкция работала.

Код для воспроизведения привожу.

Поскольку метод виртуальный, его привязка должна осуществляться к объекту класса Concrete с реализацией, а не к абстрактному родительскому Pure.

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

 

Видимо, наследие старой версии языка.

Если попытаться нарисовать вертикальную линию позднее, чем 19.01.2038 03:14:07, то её координата времени перескакивает в 0.

(Кастомный график)

 
Yurij Kozhevnikov:

Видимо, наследие старой версии языка.

Если попытаться нарисовать вертикальную линию позднее, чем 19.01.2038 03:14:07, то её координата времени перескакивает в 0.

(Кастомный график)

Это справедливо для любого графика. Такая же проблема до недавнего времени была и в МТ5. Там исправили, а тут - нет. Видимо, после 2038-года МТ4 все-таки загнется ))

 

Билд 1323, Win7-64. Пытаюсь выбрать другой стиль в МЕ, и после нажатия "ОК" - эдитор виснет. Проверил переключение стилей в старых версиях терминала на другом компьютере - там переключаются.


 
Vasiliy Pushkaryov:

Билд 1323, Win7-64. Пытаюсь выбрать другой стиль в МЕ, и после нажатия "ОК" - эдитор виснет. Проверил переключение стилей в старых версиях терминала на другом компьютере - там переключаются.


Ага, на Win7-64 воспроизводится.