Обсуждение статьи "LifeHack для трейдера: готовим фастфуд из индикаторов" - страница 4

 
fxsaber:

Нет уверенности, что юзер в общем виде может ускорить этот процесс. Очевидно, что оверхед уходит на вычисление хэш-функции.

Вот именно. Поэтому нет резона делать свою хеш функцию в ООП обертке, раз уже эта функция реализована за кулисами MT5 и работает быстро.

fxsaber:

Там не пекся о производительности, но было понятно, что на вход любой хэш-функции нужно подавать массив MqlParam-значений. А это ну никак не может работать быстро с учетом того, что там есть тормозное string-поле.

Что говорит о том, что догнать системную хеш функцию на пользовательском уровне уже сложно, а обогнать на значимую величину - будет почти невозможно.

Но главное во всем этом вопросе, это то, что нет какого-либо значимого оверхеда Classic MT5 vs. MT4 Style, т.е. оптимизация ничего не даст.

 
Vasiliy Sokolov:

Удалил свой предыдущий пост, т.к. заметил, что советник MACD MQL4 style EA дополнительно обращается к графической подсистеме:

Т.е. сделанное тестирование было выполнено некорректно. После комментирования функции Comment производительность практически сравнялась

Если бы автор статьи хоть раз запустил профайлинг (что обязательно делать при замерах производительности - самоконтроль), то такой досадной ошибки в выводах не возникло бы точно.

Сам поверил результатам, а не надо бы. Мой косяк.

 
fxsaber:

Если бы автор статьи хоть раз запустил профайлинг (что обязательно делать при замерах производительности - самоконтроль), то такой досадной ошибки в выводах не возникло бы точно.

Сам поверил результатам, а не надо бы. Мой косяк.

+

 
fxsaber:

Но опять же, индикаторы и бары - зло.

Эту мысль не уловил.

 
Rashid Umarov:

Ну, вы хотели чтобы в одной статье на читателя вывалили сразу кучу информации.

Хотел объективных выводов.

Но касательно вашего метода - это лобовое решение, другие пробовали? И сравнивали производительность?

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


А другие, конечно, не пробовал, потому что

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

Обсуждение статьи "LifeHack для трейдера: готовим фастфуд из индикаторов"

fxsaber, 2018.01.26 09:02

сам категорически против вызова индикаторов откуда-то либо. Поэтому даже желания разбираться в вопросе нет.


Что же касается взятия на юзера задачи пристреливать ненужные хендлы

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

то такую тему для списка Статей вижу логичной.
 
Vasiliy Sokolov:

Удалил свой предыдущий пост, т.к. заметил, что советник MACD MQL4 style EA дополнительно обращается к графической подсистеме:

***


"Comment" я ввёл исключительно для проверки. Сверить работу можно в тестере, если запустить "MACD MQL4 style EA short.mq5" в визуальном режиме и поместить курсор на бар с индексом #1:

"MACD MQL4 style EA short.mh5" in tester

Рис. 1. "MACD MQL4 style EA short.mh5" in tester

И в тестировании СКОРОСТИ в тестере он не участвовал:

№ п/пСоветникКаждый тик на основе реальных тиковВсе тикиOHLC


Время тестаТрейдовСделокВремя тестаТрейдовСделокВремя тестаТрейдовСделок
 1 MACD Sample.mq5 0:01:19.485 122 244 0:00:53.750 122 244 0:00:03.735 119 238
 2 MACD Sample One value at a time.mq5 0:01:20.344 122 244 0:00:56.297 122 244 0:00:03.687 119 238
 3 MACD Sample 4 to 5 MQL4 style.mq5 0:02:37.422 122 244 0:01:52.171 122 244 0:00:06.312 119 238


 
Vasiliy Sokolov:

Эту мысль не уловил.

Бары и индикаторы в виде рисовалок на экране привествую. Но в советниках это почти абсурд.

Люди тестируют советники по реальным тикам, при этом по какой-то причине ориентируются не на тики, а на бары. И ладно бы, если бы бары строились по каждому виду цены (бид, аск, ласт), так и этого не происходит.

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

 
fxsaber:

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

Здесь даже самая умная работа с хендлами не поможет. А поможет только одно: переписывание индикатора на внутреннюю функцию эксперта с параметрами.

Имхо, все это далеко от практического примениня. Есть возможность освобождать хендлы: конечно можно придумать какой-нибудь академический пример, где эту возможность можно использовать, вместо того что бы написать быструю внутреннюю функцию и юзать ее (имхо).

 
Vladimir Karputov:

"Comment" я ввёл исключительно для проверки. Сверить работу можно в тестере, если запустить "MACD MQL4 style EA short.mq5" в визуальном режиме и поместить курсор на бар с индексом #1:

Рис. 1. "MACD MQL4 style EA short.mh5" in tester

И в тестировании СКОРОСТИ в тестере он не участвовал:

№ п/пСоветникКаждый тик на основе реальных тиковВсе тикиOHLC


Время тестаТрейдовСделокВремя тестаТрейдовСделокВремя тестаТрейдовСделок
 1 MACD Sample.mq5 0:01:19.485 122 244 0:00:53.750 122 244 0:00:03.735 119 238
 2 MACD Sample One value at a time.mq5 0:01:20.344 122 244 0:00:56.297 122 244 0:00:03.687 119 238
 3 MACD Sample 4 to 5 MQL4 style.mq5 0:02:37.422 122 244 0:01:52.171 122 244 0:00:06.312 119 238


Т.е. оверхед все-таки есть, при том не малый. Пример Владимира заслуживает большее доверия, т.к. вызов использовался в реальной работе советника. 

 
Vasiliy Sokolov:

Здесь даже самая умная работа с хендлами не поможет. А поможет только одно: переписывание индикатора на внутреннюю функцию эксперта с параметрами.

И это тоже аргумент в сторону "индикаторы - зло".