МТ4 или МТ5. Какие преимущества и недостатки? - страница 61

 
fxsaber:
Справедливости ради, мультисимвольный OnTick через миллисекундный таймер - вполне боевая машина.

Понятно, что другого выбора нет, как через OnTick. А эффективность?

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

 
Nikolai Semko:

Понятно, что другого выбора нет, как через OnTick. А эффективность?

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

  1. Пропущенные котировки при миллисекундном таймере почти никакого отношения к ТС не имеют - ничего не успеть. Более того, эти котировки пришли мертвыми (из прошлого), т.к. есть лаг в несколько миллисекунд даже у MT5 с нулевым пингом. К сожалению, все котиры, что пришли в Терминал всегда имеют возраст > 2-5 мс.
  2. Выполнение OnTick вполне можно уложить в 1 мс.
  3. Если говорить о Тестере, то текущая реализация мультисимвольности через события - это супер тормоз. А через таймер - тормозов нет.
Поэтому в данном случае для боевого применения аргумент мультисимвольности не сильный.
 
fxsaber:
  1. Пропущенные котировки при миллисекундном таймере почти никакого отношения к ТС не имеют - ничего не успеть. Более того, эти котировки пришли мертвыми (из прошлого), т.к. есть лаг в несколько миллисекунд даже у MT5 с нулевым пингом. К сожалению, все котиры, что пришли в Терминал всегда имеют возраст > 2-5 мс.
  2. Выполнение OnTick вполне можно уложить в 1 мс.
  3. Если говорить о Тестере, то текущая реализация мультисимвольности через события - это супер тормоз. А через таймер - тормозов нет.
Поэтому в данном случае для боевого применения аргумент мультисимвольности не сильный.

Скорость тестера и компиляции меня интересует в N- ую очередь, главное скорость рабочего режима. Тем более, решение скорости теста это вопрос лишь времени. Тогда как в МТ4 уже ничего меняться не будет.

На счет аргумента не согласен. Поскольку в МТ5 у меня есть выбор, а в МТ4 нет. И если скорость в какой-то момент не важна, то можно и через таймер с обращением хоть 10 сек. Ну а если сумасшедшая волантильность, когда происходит самое интересное, то на счету не то что каждая мс, а каждая мкс. 
Тем более, что я рассказываю, Вы же спец по тиковым котировкам. Сколько за секунду может прийти тиков в момент, скажем, пейролса? 

 
Nikolai Semko:

Тем более, что я рассказываю, Вы же спец по тиковым котировкам. Сколько за секунду может прийти тиков в момент, скажем, пейролса?

Вы не прочли первый пункт моих доводов.
 
Morexod:


Тестил на ноуте 32 бита.

На мт4 файл ех4 - 11 КБ - 1 шт.

На мт5 файл ех5 - 13 КБ - 1 шт. вторую версию проги под 64 бита не наблюдаю.

Откуда берется разница во времени при компиляции не ясно.

Вторая версия внутри ex5 файла.

Объяснение же было: компилятор работает дважды, генерируя две версии программы под две битности. Скомпилированный 64 битный код MQL5 работает в 2-20 раз быстрее своей 32 битной версии за счет совершенно другого оптимизирующего компилятора.

 
fxsaber:
Вы не прочли первый пункт моих доводов.
Для большинства задач, согласен, полная картина тиков большой роли не играет. Но задачи бывают разные. У меня, например, задача, когда в моменты сильной волантильности робот переключается со свечей на тики и ищет в тиковом графике линейные и дугообразные каналы, а так же распознает некоторые фигуры, такие как вымпелы, флаги, проверяет уровни Фибоначчи. В такой задаче важна более полная картина.
 
Nikolai Semko:
Для большинства задач, согласен, полная картина тиков большой роли не играет. Но задачи бывают разные. У меня, например, задача, когда в моменты сильной волантильности робот переключается со свечей на тики и ищет в тиковом графике линейные и дугообразные каналы, а так же распознает некоторые фигуры, такие как вымпелы, флаги, проверяет уровни Фибоначчи. В такой задаче важна более полная картина.
Мне кажется, он имел в виду, что анализ тиковой истории к обсуждаемой событийной модели отношения не имеет. Есть же CopyTicks, зачем собирать их самостоятельно?
 
Renat Fatkhullin:

Вторая версия внутри ex5 файла.

Объяснение же было: компилятор работает дважды, генерируя две версии программы под две битности. Скомпилированный 64 битный код MQL5 работает в 2-20 раз быстрее своей 32 битной версии за счет совершенно другого оптимизирующего компилятора.

Благодарю теперь понято, - компилятор работает дважды, генерируя коды для 32 и 64 битных систем, в одном файле.

 
Andrey Khatimlianskii:
Мне кажется, он имел в виду, что анализ тиковой истории к обсуждаемой событийной модели отношения не имеет. Есть же CopyTicks, зачем собирать их самостоятельно?
Так ведь CopyTicks нет в MQL4, а мы как раз обсуждали аргумент сравнения 4 и 5 в области именно мульсимвольного OnTick(). В МQL4 понятно, что все глухо, так как CopyTicks отсутствует и собирать мультисимвольные тиковые котировки можно только через OnTimer. В MQL5 же присутствует CopyTicks, но вопрос заключается в том, в какой момент обновлять котировки для меньшей загрузки процессора и большей полноты и актуальности картины тиков, в момент прихода очередного OnTimer или с помощью пользовательских прерываний. И является ли возможность осуществлять это с помощью прерываний весомым аргументом преимущества МQL5 или достаточно использовать OnTimer, как и в MQL4.
 

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

Статистика по кодобазе

Тип кодаMT4MT5
Советник27% (1114)20.1% (877)
Индикатор60.5% (2494)72.2% (3150)
Скрипт8.9% (365)3.2% (141)
Всего100% (4124)100% (4364)


Можно делать всякие выводы, но мне бросился (забегая вперед, не из-за цифр) следующий: в MT4 советников в 2.18 раза меньше индикаторов, в MT5 - 3.59 раза. Наверное, это следствие большей сложности MT5 при написании (и переписывании) советников, чем при написании индикаторов. Думаю, этот вывод более-менее объективен.

Поскольку большинство скриптов являются торговыми, то интересно сравнивать соотношение торговых программ (скрипты + советники) с индикаторами.

Получается, что в MT4 торговых в 1.68 раза меньше индикаторов, MT5 - в 3.09 раза. Явный перекос у MT5 наблюдается.


Ну и цифры - это одно, а визуальная оценка - другое. Смотрим на первые страницы кодобазы MT4/5, как отражение текущих реалий, а не средней "температуры по больнице".


MT4

MT4


MT5

MT5


На скринах выделены все советники. Думаю, комментарии излишни. Средние Цифры оказались несколько оптимистичнее для MT5, чем первая страница КБ.


ЗЫ Англоязычная кодобаза визуально смотрится совсем иначе.

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