Ошибки, баги, вопросы - страница 2558
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Даю информацию по окружению:
- Индикаторов 16, отрисовка не сложная, без канваса, тулбаров, и прочих изысков - палочки/полосочки - скрин прикладываю.
- На чарте нет программ, открываю окно после оптимизатора, это как пример - тормозят и рабочие чарты, но меньше (там меньше индикаторов).
- Нет, эвенты не обрабатываются.
- Выбран режим отображения баров Unlimited, т.е. подкачка вроде как исключена.
- Графических объектов нет, точней я удалил все стрелки и черточки. Остался лейбл один - он из индикатора. Сегодня выходной и это не должно как то мешать - котировок нет.
Выше выложил скрин, в котором видно, что графическая карта не задействована - как то узнать можно, что она задействуется или это нормально, что нагрузка возле нуля, а ядро загружено?
Вот она известная проблема на лицо, работа индикаторов в одном потоке!
Один поток не справляется с нагрузкой!
Нужна многопоточность, сколько раз уже об этом писали.
Всё оказалось проще, я сохранил шаблон после оптимизации, открыл новый чарт и загрузил шаблон - не тормозит, а значит тормозит именно тогда, когда чарт вызывается из оптимизатора!
Не обратил внимание, что по умолчанию открылся H1, а тормоза на M1. Встроенные индикаторы по прежнему хорошо работают, а какие то мои тормозят при отрисовке.
Нашел я у себя индикатор, который даже в 1 экземпляре может нагрузить процессор (достаточно колесо мыши покрутить на чарте вперед-назад ) - если требуется для детального разбирательства - могу выслать в личку.1) нужно вот здесь урезать осетра с INT_MAX (2 млрд):
это мы поправим со своей стороны тоже
2) всей памятью надо управлять самым жестким образом, тут нет GC
3) переинициализация индикатора на смене таймфрейма происходит теплая без физической переинициализации с нуля, так что нужно самостоятельно освобождать память. особенно ресурсы на глобальном уровне
4) используйте ООП, он хотя бы даст возможность правильно описывать и контролировать ресурсы
Понятно, спасибо.
Действительно, без INT_MAX не удалось воспроизвести краш. В жизни бы не подумал. Впредь буду аккуратней с использованием крайних значений. Часто их использовал.
Иногда хочется в коде хочется быть дураком, чтобы воспроизвести и проверить защиту от дураков.
разница в производительности MQ5 против MQL4 фантастическая, но хотелось бы закончить мультиплатформенный код, поэтому возник вопрос:
1. какой профилировщик (MQ5 или MQL4) лучше использовать для оценки оптимизации после внесения изменения в исходник?
2. имеет ли смысл все Print() оборачивать в проверку флага if( MQLInfoInteger(MQL_OPTIMIZATION)) или вызовы Print() будут автоматически исключены без потери производительности?
Оптимизатор
Сначала все ядра пахали около часа без ошибок. В советнике никаких массивов нет. Затем полезли такие ошибки.
На машине запущен только один Терминал. 16Гб, 7 ядер задействовано.
ЗЫ Проход отличается от остальных большим количеством трейдов
Сколько съедает история торгов тогда?
ЗЗЫ Проскакивает иногда "no disk space", хотя десятки гигабайтов свободны.
Вопрос на засыпку: как в кодобазу положить исходик вместе с графическими ресурсами в формате bmp (которые идут, например, в OBJ_BITMAP_LABEL)? В стандартной библиотеке в папке res только bmp-файлы (т.е. я не в курсе, чтобы ресурсы могли быть png/jpg). Если приложить в зипе, код ведь не скомпилируется при проверке?
Это каким-то образом должно ответить на вопрос про кодобазу?