Отличие работы функции OnChartEvent в МТ4 и в МТ5 - страница 2

 
Eugeni Neumoin:
Почему же не угодишь? Вполне можно угодить. Надо сделать этот низкоуровневый доступ отключаемым или включаемым отдельной командой (функцией).

И продолжить разрешать поделки в стиле "абыкак", работающие с чужими деньгами? Ведь все, кому лень думать, начнут использовать. Это как #property strict - лень искать и исправлять свои ошибки - убирают из mql4-кода. А в mql5 - по умолчанию. Вот эти ленивцы и стонут - "сложно, избыточно, не дружелюбно - бяка"...

 
Artyom Trishkin:

И продолжить разрешать поделки в стиле "абыкак", работающие с чужими деньгами? Ведь все, кому лень думать, начнут использовать. Это как #property strict - лень искать и исправлять свои ошибки - убирают из mql4-кода. А в mql5 - по умолчанию. Вот эти ленивцы и стонут - "сложно, избыточно, не дружелюбно - бяка"...

Кстати, да.

Не раз замечал, что на варнинги народ внимания не обращает. Хотя, это очень полезная штука, предупреждает тебя о возможных ошибках. По мне - любой код должен компилироваться на strict-режиме без единого варнинга.

 
Artyom Trishkin:

И продолжить разрешать поделки в стиле "абыкак", работающие с чужими деньгами? Ведь все, кому лень думать, начнут использовать. Это как #property strict - лень искать и исправлять свои ошибки - убирают из mql4-кода. А в mql5 - по умолчанию. Вот эти ленивцы и стонут - "сложно, избыточно, не дружелюбно - бяка"...

Необходимо идти на разумные компромиссы. Иначе можно и до ассемблера скатиться.

В случае с экспертами, возможно, необходима максимальная производительность. Говорю возможно - потому, что есть техники, где не обязательно максимальную производительность отжимать.

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

 
Taras Slobodyanik:

Насколько помню, в МТ4 прямой доступ к объектам своего графика - как только произошло обращение, объект сразу изменяется.

В МТ5 есть очередь, в которую собираются все запросы, и всё исполняется по очереди.
Это можно увидеть при профилировании когда некоторые, встроенные, функции начинают явно "тормозить".

Раньше это был, конкретный тормоз, сейчас уже ускорили немного.

Видимо в этом причина.

В мт4 и мт5 графические построения работают по-разному - в мт4 ракета, а вот в мт5 какие-то тормоза. Это всё ускоряют, но хотя-бы сравнять пока как вижу - не удаётся.

P.S. Высокоуровневый) Ответ кстати так был и не получен
 
Vitaly Muzichenko:

Видимо в этом причина.

В мт4 и мт5 графические построения работают по-разному - в мт4 ракета, а вот в мт5 какие-то тормоза. Это всё ускоряют, но хотя-бы сравнять пока как вижу - не удаётся.

Поэтому и не было желания переходить на МТ5.

Зачем переходить туда, где нет смысла находиться?

 
Georgiy Merts:

Кстати, да.

Не раз замечал, что на варнинги народ внимания не обращает. Хотя, это очень полезная штука, предупреждает тебя о возможных ошибках. По мне - любой код должен компилироваться на strict-режиме без единого варнинга.

Кстати, предупреждения и в strict-режиме не всегда выскакивают. У них похоже такой режим: хочу дам предупреждение, а хочу - не дам...

Только что столкнулся с этим. На неинициализированную переменную не было ругательств.

 
Eugeni Neumoin:

Кстати, предупреждения и в strict-режиме не всегда выскакивают. У них похоже такой режим: хочу дам предупреждение, а хочу - не дам...

Только что столкнулся с этим. На неинициализированную переменную не было ругательств.

А вот таким хитрым пунктом контекстного меню не пробовали попользоваться?


 
Сначала, после перехода, был недоволен МТ5, потом адаптировался к отличиям с МТ4, и жаловаться стало не на что. Вроде хочется сказать "Не, МТ4 в этом и этом лучше", но не могу, потому как разницы лично для моих кодов нет. Что четверка, что пятерка, работают одинаково. И там и там быстро... В общем, пятерка для меня стала чуть чуть лучше четверки именно из за требовательности. В остальном, всё тоже самое. Для меня. 

ЗЫ. Всё таки, МТ5 получше. Не отнять. Возможностей и мощностей больше.
 
Eugeni Neumoin:

По многочисленным просьбам пользователей перевел код ZUP с MQL4 на MQL5.

В МТ4 все работает как часы. Большое количество кнопок графического интерфейса через функцию OnChartEvent отрабатывают мгновенно.

И когда открыт рынок, и когда закрыт - в выходные.

В МТ5 тот же самый код в рабочие дни работает, хотя и с задержками.

А в выходные некоторые функции графического интерфейса вообще отказываются работать. В рабочие дни эти функции работают, хотя и с огромной задержкой.

В МТ4 в тестере все функции графического интерфейса работают. А при профилировании в МТ5 некоторые кнопки работать отказываются.

Почему такое отличие в работе функции OnChartEvent  в МТ4 и в МТ5.

Всё верно говорят. Проблема в ChartRedrаw(). Прошел через эту проблему. Решается просто. Везде, где требуется обновление графика после пользовательского рисования, ставить флаг  перерисовки(глобальный), а потом в таймере проверять его и вызывать ChartRedrаw() и обнулять флаг.  Иначе, при постоянном вызове будут красные квадратики появляться.
 
Реter Konow:
Сначала, после перехода, был недоволен МТ5, потом адаптировался к отличиям с МТ4, и жаловаться стало не на что. Вроде хочется сказать "Не, МТ4 в этом и этом лучше", но не могу, потому как разницы лично для моих кодов нет. Что четверка, что пятерка, работают одинаково. И там и там быстро... В общем, пятерка для меня стала чуть чуть лучше четверки именно из за требовательности. В остальном, всё тоже самое. Для меня. 

ЗЫ. Всё таки, МТ5 получше. Не отнять. Возможностей и мощностей больше.

При переходе на МТ5 много неявных (нигде не описанных) отличий.

Например. В МТ4 не получалось удалять графический выделенный объект. Предполагаю, это было потому, что он был "захвачен" мышкой для перемещений.

Наворочал в МТ4 сложный код. Объект стал удаляться. Но редко проявлялась все-таки ошибка - объект оставался на графике. А после перерисовки графика он удалялся.

В МТ5 захваченный мышкой объект удаляется и функция ончартевент также грамотно отрабатывается в этом случае. Но в МТ5 эта функция и не понадобилась, так как  объект удаляется и без программных наворотов.

Ну и еще некоторые неявные отличия имеются. В статье по переходу на МТ5 с МТ4 не описанные.

=============

В МТ5 почистил код от излишеств МТ4.

=============

МТ5 мне не нужен. Не использую его в работе. Перевожу по многочисленным просьбам.