Новая версия платформы MetaTrader 5 build 4620: исправления ошибок в MQL5 и новые методы OpenBLAS - страница 20
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
По ситуации с Финамом дадите комментарий?
Поставил разбираться.
Похоже там конфликт с тем, что в тиковом потоке есть бид-аски вместе с базовым ласт. В идеальном состоянии должны быть только ласты. Это может сбивать тестер с толку.
На синтетических тестах скорости можно обмануться очень сильно. На упрощенных случаях многое вырождается, все укладывается в регистры и замеры обманывают.
Инлайнинг хотя и работает очень агрессивно, но зависит от всей цепочки вызовов и каждого места встраивания. В реальных местах банально в недостаток/занятость регистров можно упереться и код становится не таким быстрым.
Нет дела до теории. Факт - код работает заметно быстрее на ровном месте, если не использовать через тривиальный const-метод. Т.е. он не инлайнится.
Если готовы разобраться в причинах, скину код в ЛС. Предлагаю конструктив.
Нет дела до теории. Факт - код работает заметно быстрее на ровном месте, если не использовать через тривиальный const-метод. Т.е. он не инлайнится.
Если готовы разобраться в причинах, скину код в ЛС. Предлагаю конструктив.
Теория права, мы постоянно видим как все работает и в наших проектах. Приходится вручную помогать оптимизатору кода, разбираясь в сгенерированном коде.
Не сейчас, мы работает над новым компилятором. Очень большой объем работы.
После выпуска будем детальнейше все оптимизировать.
Надо многократно и чисто проверять, чтобы делать выводы. У вас очень мало информации и нет возможности воспроизвести.
4 года написано в логах скачки с 2020.01 - тестер ведь обеспечивает наличие предварительной истории, чтобы вы не с нулем баров стартовали.
Памяти, конечно, надо больше, таковы реалии текущих потребностей. Память сейчас стоит экстремально дешево.
Да, наверное я совсем никудышный специалист, но я не могу понять, почему по массиву содержащему имена символов, создать 17 графиков валютных пар в визуальном тестере всё работает без проблем. Если создать список 17 объектов посредством listObj.Add(obj) и не создавать графики валют, тоже работает без проблем, но далеко не полноценно. А вот если пользуясь списком объектов обратившись к свойствам символа создать 17 графиков всё вылетает. Я подготовил минимальный код. Сегодня посоветуюсь с опытным программистом, продемонстрирую ему что получается и потом, возможно придётся передать коды кому-то из сотрудников.
Поставил разбираться.
Похоже там конфликт с тем, что в тиковом потоке есть бид-аски вместе с базовым ласт. В идеальном состоянии должны быть только ласты. Это может сбивать тестер с толку.
Спасибо, что прокомментировали ситуацию.
Без спреда будут не правдоподобные результаты тестирования. В Открытии такой проблемы не наблюдалось.
И, раз будите думать над решением, то напомню, ещё лет 5 назад писал, что по экстремумам бара не происходит открытие отложек, что не правильно. По факту получалось, что история проторговки с реального счета не воспроизводима в тестере. Не видел сообщения, что это исправили.
b4673, столкнулся с отсутствием инлайна по факту.
Видимо, на какой-то вложенности инлайн перестает работать. Не смог создать лаконичную демонстрацию. Если нужны исходники тормозов - готов в ЛС.
Я никогда не полагался на компилятор касаемо инлайнинга. В подобных случаях делаю примерно так:
DIY инлайнинг с сохранением DRY принципа😄
Я никогда не полагался на компилятор касаемо инлайнинга. В подобных случаях делаю примерно так:
DIY инлайнинг с сохранением DRY принципа😄
Спасибо за вариант. К сожалению, у меня ситуация сложнее.
Класс-родитель идет отдельным mqh-файлом.
Ставим точку останова (см. исходник) и запускаем в дебаг-режиме (F5). Проход точки останова через F5/F10 вернет нас на это же место.
Если убрать вызов метода, то будет работать правильно - нажатие на F5/F10 вызовет проход кода ниже.
Это древняя ошибка с непонятной логикой проявления. Пришлось кромсать большой проект, пока не пришел к такому воспроизведению.
Строка для поиска: Oshibka 122.
b4673, неправильная работа точки останова.
Ставим точку останова (см. исходник) и запускаем в дебаг-режиме (F5). Проход точки останова через F5/F10 вернет нас на это же место.
Если убрать вызов метода, то будет работать правильно - нажатие на F5/F10 вызовет проход кода ниже.
Это древняя ошибка с непонятной логикой проявления. Пришлось кромсать большой проект, пока не пришел к такому воспроизведению.
Строка для поиска: Oshibka 122.
А компилятор не выбрасывает цикл без тела за ненадобностью, бесполезностью?
А компилятор не выбрасывает цикл без тела за ненадобностью, бесполезностью?
Нет. Можете его заполнить.