Непонятны скоростные результаты компилятора. В частности, самописный инлайн (rule) сильно уступает автоматическому инлайну (rule2).
Это элементарно - от количества точек вызова функции зависит логика применения инлайна.
В данном случае, пока одна точка вызова - инлайнится и работает быстрее, иначе нет. У компиляторов есть сложная функция оценки необходимости инлайна, не просто по количеству точек вызова.
Поэтому упрощенные синтетические тесты часто обманывают.
В пятницу 29 сентября 2023 года будет выпущена обновленная версия MetaTrader 5. В ней мы внесли ряд улучшений в новый торговый отчет и веб-терминал.
Очень приятно видеть улучшения в функционале Trading Report , но если задуматься, то действительно ли отсутствие именно такого красивого отчета ранее стало фактором, сформировавшим отставание Metatrader от TradingView в части популярности у широкого круга розничных трейдеров???
Если вы возьмете и проанализируете1000 наиболее популярных каналовYoutube, то к удивлению обнаружите что маркетинговый разрыв примерно 20:1,т.е. на 20ть учебно-образовательных роликов с использованием TradingView приходится 1 ролик с использованием терминалов Metatrader(4./5). Ограничьте исследование топовыми каналами форексных проп.компаний (@ftmo etc) и обучающих трейдинговых школ (@ICT etc), то вы вообще не встретите роликов с применением терминалов Metatrader или это будут очень единичные случаи -здесь условно можно считать что у топовых каналов разрыв достигает 100:1.
В чем же причина столь сильного отставания популярности Metatraderот TradingView?
Ответ достаточно прост: сам терминал Metatraderне содержит встроенногофункционала "Market Replay", а прилагающийся StrategyTester настолько ограничен в части использования для указанных целей, что не представляет собой никакой альтернативы для розничных трейдеров.
По сути текущая ситуация - это результат недооценки на стороне MQ важности образовательной части индустрии , образовательного контента,и эту упущение необходимо признать и поставить в планы разработки необходимые функциональные улучшения; вариантов адресации данной проблемы по сути всего два.
Вариант-1: Доработать функционал продукта"StrategyTester", сделав его более гибким и настраиваемым в визуальной его части, то естьдобавить:
панель управления для ручного открытия сделок и управления открытыми позициями,
режим многооконности как на пользовательском уровне, так и на программном уровне (в т.ч. работу функций ChartFisrt, ChartNext и поддержку отрисовки объектов на заданном по ChartID графике );
поддержку объектовтипа "Economic Calendar", "News" савтоматическим наполнением их историческими данными, соответствующими по времени (с дискретизацией 1 минуты);
поддержку буфера событий ChartEvents и функции OnChartEvent() для обеспечения возможностей тестирования в связке с комплексными советниками по управлению рисками сделок и торгового счета.
Вариант-2: Создать функционал "Market Replay"непосредственно в терминале MT5, то естьдобавить в терминал:
новое новую 4ю панель управления"Market Replay" и/или пользовательское меню и , в которых обеспечить возможность задать стартовую дату, режим (Все окна терминала/ Активное окно)и остальные необходимыепараметры для "MarketReplay";
новый набор программных функций для управления режимом "Market Replay" из советников, в том же объеме как и у пользовательского интерфейса;
поддержку объектовтипа "Economic Calendar", "News" савтоматическим наполнением их историческими данными, соответствующими по времени в "Market Replay" (лучше даже конвертировать их в отдельно стоящие окнами, как было сделано ранее с "Market");
возможность дообогашения историческими данными (M1 Bars, Ticks) любых символов в терминале, с ограничением на редактированиев 1 год от текущей системной даты (это позволит адресовать проблему ограниченности срока хранения исторических данных уровня М1/Ticks на МТ5 серверах форекс- брокеров);
вывод торговых ордеров, открытых в "Market Replay"на закладке "History" c признаком"Replay", с одновременной генерацией для них Transaction-событийи срабатывания функции OnTradeTransaction().
Если вы еще сомневаетесь в уровне приоритета данной задачи в бэклоге задач на разработку, то вот что может вам помочь определиться с приоритетами:
1) данная тема достаточно давно известна - имеется множество топиков на форуме с обсуждением недостатков системы тестирования;
2) имеется даже ряд отдельно стоящих платных продуктов, которые имитируют терминал Metatraderсо строенным функционалом "MarketReplay" - просто загуглите"forex tester" для того чтобы выйти на сайты таких продуктов;
3) в рамках портала "MQL5" имеются я отдельные варианты реализации "обходных решений"- так например уважаемый пользователь fxsaver представлял ранее библиотеку "Virtual", атрейдер Daniel Jose не так давнонастрогал аж 16 статей на тему создания подобного функционала.
Т.о. это тоже подвтержедение значимости проблемы - никто не стал бы в здравом уме тратить столько сил на разработку альтернативных решений/продуктов, если бы проблема отсутствия удобного "MarketReplay" не была столь значимой.
Однако представленные "обходные решения" типа разработок от Daniel Jose слишкомсложны и недоступны для широких масс, именно поэтому решение проблемы должно быть "платформенное" и "системное" - то есть на уровне самого терминала МТ5.
clrNONE по справке равна -1. Но если задать переменной color это значение, то условие (clrNONE > -1) - это сейчас всегда true, (clrNONE == -1) - это false.
clrNONE по справке равна -1. Но если задать переменной color это значение, то условие (clrNONE > -1) - это сейчас всегда true, (clrNONE == -1) - это false.
Вывод в MetaEditor
Вывод в терминале:
false это 0 , всё иное это true
операции сравнения < <= > >= кроме эквивалентности == != для типа color не определены и использовать их нельзя
clrNONE по справке равна -1. Но если задать переменной color это значение, то условие (clrNONE > -1) - это сейчас всегда true, (clrNONE == -1) - это false.
Сервис. Билд 4000 строит график, 4016 - нет
Подтверждаю. CustomTicksAdd возвращает ноль с нулевой ошибкой в b4016. В b4000 пашет правильно.
Приложенный код воспроизводит ошибку.
Приложенный код воспроизводит ошибку.
Лучше писать лаконичный вариант - быстрее разобраться. Например, по этой ошибке.
Строка для поиска: Oshibka 073.
Непонятны скоростные результаты компилятора. В частности, самописный инлайн (rule) сильно уступает автоматическому инлайну (rule2).
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Машинное обучение в трейдинге: теория, модели, практика и алготорговля
fxsaber, 2023.10.11 22:11
Там много, что может быть. Скрипт приложен, ниже его часть с функциями.
Результат.
Тут совершенно непонятно, что замеряется - см. выделенные комментарии. Якобы сильно быстрее rule2.
Непонятны скоростные результаты компилятора. В частности, самописный инлайн (rule) сильно уступает автоматическому инлайну (rule2).
Это элементарно - от количества точек вызова функции зависит логика применения инлайна.
В данном случае, пока одна точка вызова - инлайнится и работает быстрее, иначе нет. У компиляторов есть сложная функция оценки необходимости инлайна, не просто по количеству точек вызова.
Поэтому упрощенные синтетические тесты часто обманывают.
В пятницу 29 сентября 2023 года будет выпущена обновленная версия MetaTrader 5. В ней мы внесли ряд улучшений в новый торговый отчет и веб-терминал.
Очень приятно видеть улучшения в функционале Trading Report , но если задуматься, то действительно ли отсутствие именно такого красивого отчета ранее стало фактором, сформировавшим отставание Metatrader от TradingView в части популярности у широкого круга розничных трейдеров???
Если вы возьмете и проанализируете 1000 наиболее популярных каналов Youtube, то к удивлению обнаружите что маркетинговый разрыв примерно 20:1, т.е. на 20ть учебно-образовательных роликов с использованием TradingView приходится 1 ролик с использованием терминалов Metatrader(4./5). Ограничьте исследование топовыми каналами форексных проп.компаний (@ftmo etc) и обучающих трейдинговых школ (@ICT etc), то вы вообще не встретите роликов с применением терминалов Metatrader или это будут очень единичные случаи - здесь условно можно считать что у топовых каналов разрыв достигает 100:1.
В чем же причина столь сильного отставания популярности Metatrader от TradingView?
Ответ достаточно прост: сам терминал Metatrader не содержит встроенного функционала "Market Replay", а прилагающийся StrategyTester настолько ограничен в части использования для указанных целей, что не представляет собой никакой альтернативы для розничных трейдеров.
По сути текущая ситуация - это результат недооценки на стороне MQ важности образовательной части индустрии , образовательного контента, и эту упущение необходимо признать и поставить в планы разработки необходимые функциональные улучшения; вариантов адресации данной проблемы по сути всего два.
Вариант-1: Доработать функционал продукта "StrategyTester", сделав его более гибким и настраиваемым в визуальной его части, то есть добавить:
Вариант-2: Создать функционал "Market Replay" непосредственно в терминале MT5, то есть добавить в терминал:
Если вы еще сомневаетесь в уровне приоритета данной задачи в бэклоге задач на разработку, то вот что может вам помочь определиться с приоритетами:
1) данная тема достаточно давно известна - имеется множество топиков на форуме с обсуждением недостатков системы тестирования;
2) имеется даже ряд отдельно стоящих платных продуктов, которые имитируют терминал Metatrader со строенным функционалом "Market Replay" - просто загуглите "forex tester" для того чтобы выйти на сайты таких продуктов;
3) в рамках портала "MQL5" имеются я отдельные варианты реализации "обходных решений" - так например уважаемый пользователь fxsaver представлял ранее библиотеку "Virtual", а трейдер Daniel Jose не так давно настрогал аж 16 статей на тему создания подобного функционала.
Т.о. это тоже подвтержедение значимости проблемы - никто не стал бы в здравом уме тратить столько сил на разработку альтернативных решений/продуктов, если бы проблема отсутствия удобного "Market Replay" не была столь значимой.
Однако представленные "обходные решения" типа разработок от Daniel Jose слишком сложны и недоступны для широких масс, именно поэтому решение проблемы должно быть "платформенное" и "системное" - то есть на уровне самого терминала МТ5.
Кажется есть проблема с типом color.
clrNONE по справке равна -1. Но если задать переменной color это значение, то условие (clrNONE > -1) - это сейчас всегда true, (clrNONE == -1) - это false.
Вывод в MetaEditor

Вывод в терминале:

Кажется есть проблема с типом color.
clrNONE по справке равна -1. Но если задать переменной color это значение, то условие (clrNONE > -1) - это сейчас всегда true, (clrNONE == -1) - это false.
Вывод в MetaEditor
Вывод в терминале:
false это 0 , всё иное это true
операции сравнения < <= > >= кроме эквивалентности == != для типа color не определены и использовать их нельзя
(clrNONE == -1) - это false
Почему false?
Результат:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 4000: Улучшения в торговом отчете и веб-терминале
Vasiliy Pushkaryov, 2023.10.12 10:53
Кажется есть проблема с типом color.
clrNONE по справке равна -1. Но если задать переменной color это значение, то условие (clrNONE > -1) - это сейчас всегда true, (clrNONE == -1) - это false.
Вывод в MetaEditor

Вывод в терминале:

условие (clrLine > -1) - это true!!!
Почему false?
Я имел ввиду в МетаЭдиторе так, и мне это тоже непонятно
