Обсуждение статьи "Сравниваем скорость самокэширующихся индикаторов"

 

Опубликована статья Сравниваем скорость самокэширующихся индикаторов:

В статье проводится сравнение классического MQL5-доступа к индикаторам с альтернативными способами в стиле MQL4. Рассматриваются несколько вариантов MQL4-стиля доступа к индикаторам: с кэшированием хэндлов индикаторов и без него. Исследован учет хэндлов индикаторов внутри ядра MQL5.

Результаты сравнения стилей доступа к девяти индикаторам (настройки даны на рис. 1):

MQL5 vs MQL4 9 indicators

Рис. 4. Затраты времени на доступ к девяти индикаторам

При сравнении результатов прошу учесть, что тестовый советник многократно усложнил задачу:

  • данные получаем одновременно с ДЕВЯТИ индикаторов;
  • обращаемся к индикаторам НА КАЖДОМ тике;
  • таймфрейм M1 — при этом было сгенерировано 26169180 тиков и 370355 баров.

Автор: Vladimir Karputov

 

Отсутствие контроля валидности хэндла

А теперь нужно сказать об огромной опасности применения кэширования хэндлов: нигде нет контроля существования хэндла в пользовательском кэше. То есть, никак не обрабатывается ситуация, когда хэндл индикатора удален. 

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


Заключение

Результаты тестирования различных способов доступа к индикаторам показали , что MQL5-стиль доступа к индикаторам по скорости на голову опережает любые MQL4-стили (как без кэширования хэндлов, так и с ним).

MQL5-стиль предполагает, что пользователь заранее знает, какие индикаторы (и их входные параметры) он будет использовать. Это примитивнейшие ТС!

В общем случае ТС вызывает индикаторы с вычисляемыми (а не жестко заданными) входными параметрами. И тут без MQL4-style+cache никак не обойтись.

Думаю, не сложно в КБ найти MT4-советник подобного уровня. Перевод его в то, что называется в статье MQL5-style, будет невозможен.


Поэтому выводы в статье годятся только для примитивнейших ТС, писать которые имеет смысл лишь в учебных целях.


ЗЫ

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Пиши и зарабатывай на MQL5

fxsaber, 2018.03.05 18:03

Не понимаю статьи, могущие без воды уместиться в один пост любой ветки форума.

Статья заиграла бы совсем другими красками, если бы рассмотрелся случай встройки исходника индикатора в советник.
 
fxsaber:ЗЫ
Статья заиграла бы совсем другими красками, если бы рассмотрелся случай встройки исходника индикатора в советник.

Такая статья будет написана

 69 "Как перенести расчетную часть любого индикатора в код эксперта"  NEW
 
 Dmitriy Gizlyk
 

То есть если два эксперта на одинаковых графиках (одинаковые символ и таймфрейм) создают индикаторы с одинаковыми входными параметрами — MQL5 в своём внутреннем учёте будет идентифицировать их как два разных хэндла.

это абсолютно неверный вывод. хэндл один и тот же и это подтверждается тем что id совпадает.

первый true результат свидетельствует только о том что уменьшился счетчик ссылок хендла.

 
Комбинатор:

это абсолютно неверный вывод. хэндл один и тот же и это подтверждается тем что id совпадает.

первый true результат свидетельствует только о том что уменьшился счетчик ссылок хендла.

Трактовка другая имелась в виду

MQL5 в своём внутреннем учёте будет идентифицировать их как два разных хэндла.

 
fxsaber:

Трактовка другая имелась в виду

я про эту трактовку и говорю
 
Комбинатор:
я про эту трактовку и говорю

"Внутренний учет" трактовал, как счетчик. Честно говоря, не понял, зачем в статье первая часть - про хендлы? Вроде, все до этого было разжевано не единожды и подано в более удобных формулировках. Вплоть до причин возможности выполняющихся индикаторов в Терминале, где нет открытых чартов.

 
Комбинатор:

это абсолютно неверный вывод. хэндл один и тот же и это подтверждается тем что id совпадает.

первый true результат свидетельствует только о том что уменьшился счетчик ссылок хендла.

Да, это ошибка в статье.


Вообще бросать надо придумывать и писать «в MQL4 стиле». MQL5 быстрее и правильнее. Именно понимание костылей и ограничений MQL4 привело нас к созданию нового языка и отказу от совместимости, чтобы не тянуть плохую схему доступа к данным.

 
Renat Fatkhullin:

Вообще бросать надо придумывать и писать «в MQL4 стиле». MQL5 быстрее и правильнее. Именно понимание костылей и ограничений MQL4 привело нас к созданию нового языка и отказу от совместимости, чтобы не тянуть плохую схему доступа к данным.

Вперед!

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Обсуждение статьи "Сравниваем скорость самокэширующихся индикаторов"

fxsaber, 2018.03.07 08:17

В общем случае ТС вызывает индикаторы с вычисляемыми (а не жестко заданными) входными параметрами. И тут без MQL4-style+cache никак не обойтись.

Думаю, не сложно в КБ найти MT4-советник подобного уровня. Перевод его в то, что называется в статье MQL5-style, будет невозможен.

 
fxsaber:

Вперед!

Притянуто за уши.

Не довод
 
Renat Fatkhullin:

Притянуто за уши.

Не довод

Продолжайте и дальше ратовать за примитивные ТС.

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