
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Стопудово утечки памяти в программе, их ищите.
Кстати, да.
Что у вас там с операторами new ? На каждый в обязательном порядке существует и вовремя вызывается delete ?
Кстати, да.
Что у вас там с операторами new ? На каждый в обязательном порядке существует и вовремя вызывается delete ?
Кстати, если есть утечки, при выходе из советника терминал пишет что-то типа memory leaks 12 Kb, точно не помню, но понятно
Кстати, да.
Что у вас там с операторами new ? На каждый в обязательном порядке существует и вовремя вызывается delete ?
С этим все хорошо.
Если остаются объекты, терминал пишет соответствующие сообщение.
delete вызывается везде вовремя, все объекты удаляются.
По поводу моего индикатора:
Терминал иногда пишет: indicator is too slow, please,rewrite it. (точно уже не воспроизведу, сообщение редко возникает, и сейчас его нет).
Оно появляется не при тестах, а когда индикатор просто на графике находится.
Может в MQl5 есть какое ограничение на вес индикатора? Ну допустим если ты напишешь индикатор весом в 10Мб, такой весь тяжелый, где куча мат. формул и куча всяких расчетов, то может MQL5 даже на график его загрузить не сможет, выдаст что -то типа не хватает памяти и что- то еще..., не??
Мой индикатор весит 284 Кб... На М30 расчитывается около 5 сек.
Но не думаю что это слишком много для MQL5
Запрос - TerminalInfoInteger() с соответствующим флагом.
Ошибка на неподходящий агент - ищите в документации по слову INIT_AGENT_NOT_SUITABLE (О, даже автоматически вам нашло - читайте)
Это я попробую, спасибо.
На такое чувство, что если поставлю это программное условие на память агента, он всех агентов забракует...
Стопудово утечки памяти в программе, их ищите.
какие могут быть еще утечки, кроме пропуска delete ?
B если бы были утечки, у меня бы память жралась при оптимизации, а у меня все норм.какие могут быть еще утечки, кроме пропуска delete ?
B если бы были утечки, у меня бы память жралась при оптимизации, а у меня все норм.Вроде больше никаких. Надеюсь, у вас нет массивов по сотням Мб? А рекурсия есть? Если есть, будет жраться стек, его можно увеличить в настройках, где-то в настроечных файлах терминала это есть.
И насчет индикаторов, 5 сек на проход это много. Индикаторы все работают в одном потоке и он будет тормозить остальные.
Вроде больше никаких. Надеюсь, у вас нет массивов по сотням Мб? А рекурсия есть? Если есть, будет жраться стек, его можно увеличить в настройках, где-то в настроечных файлах терминала это есть.
И насчет индикаторов, 5 сек на проход это много. Индикаторы все работают в одном потоке и он будет тормозить остальные.
Больших массивов нет. Есть индикаторные буферы на 10 последних баров и все.
Рекурсии тоже нет. Но можно про стек и про настройки про увеличение по подробнее, чтоб на будущее. Может статья, ссылка на справку?
У меня индикатор работает один. Тормозить ему некого. 5 сек никак не уменьшить, нейросетям надо обучиться.
Может если в будущем по методу Адама сделаю обучение, может получится до 3-4 сек снизить. Этот метод обучения на лето 2017 считался одним из самых лучших.
А кстати можно ли в облаке оптимизировать эксперты с iCustom? У агентов в облаке скорее всего нету такого индикатора, может из-за этого и ошибка?
Писал выше, это уже исключил:
Но можно про стек и про настройки про увеличение по подробнее, чтоб на будущее. Может статья, ссылка на справку?
Вот веселая статейка )) https://habrahabr.ru/post/128991/ или погуглить на "стек процессора". А вот в настройках МТ5 я сходу не нашел, прошелся поиском Total Commander по файлам настроек, слово stack не обнаружено. В МТ4 точно где-то видел задание размера.
В двух словах, это область памяти, которая обычно используется для хранения параметров, передаваемых в функцию и локальных переменных без модификатора static. По каноническим правилам, статические массивы должны создаваться на стеке, поэтому, если забабахать в функции
, то есть шанс получить ошибки, см. stdlib.mq5
case 4003: error_string="no memory for function call stack"; break;
case 4004: error_string="recursive stack overflow"; break;
case 4005: error_string="not enough stack for parameter"; break;
case 4006: error_string="no memory for parameter string"; break;
По поводу моего индикатора:
Терминал иногда пишет: indicator is too slow, please,rewrite it. (точно уже не воспроизведу, сообщение редко возникает, и сейчас его нет).
Оно появляется не при тестах, а когда индикатор просто на графике находится.
Может в MQl5 есть какое ограничение на вес индикатора? Ну допустим если ты напишешь индикатор весом в 10Мб, такой весь тяжелый, где куча мат. формул и куча всяких расчетов, то может MQL5 даже на график его загрузить не сможет, выдаст что -то типа не хватает памяти и что- то еще..., не??
Мой индикатор весит 284 Кб... На М30 расчитывается около 5 сек.
Но не думаю что это слишком много для MQL5
Это сообщение не про размер файла индикатора, а про его быстродействие.