Новая версия платформы MetaTrader 5 build 4230: больше встроенных приложений и расширение поддержки ONNX - страница 25
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
b4240, добавление строки замедляет выполнение строки выше.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2024.03.20 07:22
Не стал приводить здесь весь код (по ссылке).
Результат для варианта двух строк.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2024.03.20 07:22
Результат для одной строки (вторая удаляется).
Получается, что вторая строка замедляет первую в 1.5 раза!
Строка для поиска: Oshibka 099.
Не надо использовать хакерские методы в циклах for - так вы портите компилятору шаблон оптимизации циклов/векторизации и в рабочих условиях получаете код хуже. При этом надо учитывать, что есть немалый шанс самообмана на усеченной синтетике бенчмарков, где некоторые хакерские методы могут показать фейковое улучшение.
Вот по этому поводу давний вопрос. Часто требуется конструкция вида
Есть ли смысл писать её как
или как
или компилятор умеет делать такое сам?
А если функция другая? Например, что-то что-то из торговых функций XxxTotal()?
b4240, добавление строки замедляет выполнение строки выше.
Не стал приводить здесь весь код (по ссылке).
Результат для варианта двух строк.
Результат для одной строки (вторая удаляется).
Получается, что вторая строка замедляет первую в 1.5 раза!
Строка для поиска: Oshibka 099.
Вот по этому поводу давний вопрос
Спасибо, пригодилось.
b4242, костыль не нужен, с ним не будет работать.
Вот по этому поводу давний вопрос
0 300
1 300
2 300
3 300
4 300
5 300
6 301
7 301
8 301
9 301
...
299 301
300 301 "i < ObjectsTotal()" увидел новый объект
Просьба рассмотреть возможность файловых операций не только в песочнице (Read/Write: MQL5\Files\*.*), но и в тестерном кеше (Read: Tester\cache\*.tst, *.opt).
Сейчас для чтения этих файлов приходится подключать WinAPI, либо делать mklink, чтобы Маркет-продукты наделить доп. функционалом.
Строка для поиска: Uluchshenie 089.Поддерживаю просьбу.
И что это должно означать?
Я спрашивал про явную ситуацию с размером массива, которую, наверное, даже не самый продвинутый компилятор мог бы оптимизировать. А вот делает ли он это реально...
И понятно, что ресайзить массив (=создавать новый объект) внутри такого цикла - не самая лучшая идея.
И что это должно означать?
Я спрашивал про явную ситуацию с размером массива, которую, наверное, даже не самый продвинутый компилятор мог бы оптимизировать. А вот делает ли он это реально...
А вот этот вопрос, тайна покрытая мраком )))
Судя по косвенным признакам компилятор смотрит размер массива на каждой итерации (но это не точно)
И понятно, что ресайзить массив (=создавать новый объект) внутри такого цикла - не самая лучшая идея.