Ошибки, баги, вопросы - страница 2329

 
Сергей Таболин:

Не заметил... Куча всего.

Исправили.

 

Как отключить оптимизацию при компиляции через стандартный редактор? Где и какой флаг прописать?

 
pavlick_:

Как отключить оптимизацию при компиляции через стандартный редактор? Где и какой флаг прописать?

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

Время компиляции

TheXpert, 2017.01.03 14:14

отключите оптимизацию в настройках редактора

в metaeditor.ini в раздел [Experts] ключ Optimize=0:
[Experts]
Optimize=0

Вроде так

 
fxsaber:

Спасибо, помогло. Падает эксперт вместе с терминалом из-за каких-то кривых оптимизаций (добавление сайд эффектов и копмпиляция c optimize=0 проблему решают). Попытка локализовать успехом не увенчалась - исчезает ошибка, а выкладывать многофайловую портянку как-то не хочется.

 
pavlick_:

Спасибо, помогло. Падает эксперт вместе с терминалом из-за каких-то кривых оптимизаций (добавление сайд эффектов и копмпиляция c optimize=0 проблему решают). Попытка локализовать успехом не увенчалась - исчезает ошибка, а выкладывать многофайловую портянку как-то не хочется.

Приложите пожалуйста проблемный EX5 (может через ЛС)

 
Ilyas:

Приложите пожалуйста проблемный EX5 (может через ЛС)

У себя кидаю на EURUSD, через секунды 4 терминал падает.

Может важно: x64, Wine

Файлы:
last.ex5  119 kb
 
Ilyas:

Я примерно понял причину. У меня есть глобальная переменная

CArrayObj actobjects;

Что-то с порядком инициализации мкл окружения и миссива видимо, если actobjects указатель и сам размещаю там массив, то ничего не падает. Класс в глобальных переменных - неправильная практика, конечно, перепишу. Но проблемы вылезут и со static массивами в функциях (в мкл ведь не действует правило - инициализация при первом входе в функцию).

В общем, если это считается за ошибку, то зная примерно причину, смогу локализовать, наверное.

 
pavlick_:

В общем, если это считается за ошибку, то зная примерно причину, смогу локализовать, наверное.

Не, не могу поймать, исчезает чудесным образом после вырезки кода. Влияет даже закомментированность некоторых строк (которые не исполняются до падения).

 

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

Можно это сделать без создания еще одного почти идентичного mqh?


Когда класс короткий, его легко можно сделать многострочным макросом и все выходит просто. Но здесь код длинный.

Создавать mqh-клон не хочется, т.к. если поправлю один mqh, то надо будет все свои действия повторять во втором. И возникает человеческий фактор забывчивости и невнимательности.


Через шаблонный класс еще можно. Но совершенно не очевидно, как это скажется на скорости выполнения. Класс нужен для быстрых прогонов.

 
fxsaber:
#ifdef