Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 186

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А "довольно много вычислений на основе истории" складываете в динамический массив?
Есть такое дело, да :) Ну, точнее, несколько динамических массивов используются, но они по идее не должны разрастаться до слишком больших размеров.
И насчет разбить пополам - не похоже, чтобы была существенная разница, какой именно отрезок брать и сколько в нем входов. В среднем день обрабатывается за 2500-3500 ms, но неделю приходится ждать несколько минут. Сейчас нет под рукой подходящего лога, не могу сколько точно. Но на порядок больше чем 5х по дню, и большая часть времени уйдет на последний день-два. Месяц же можно оставить на ночь и к утру он скорее всего все еще будет висеть >.>
И насчет разбить пополам - не похоже, чтобы была существенная разница, какой именно отрезок брать и сколько в нем входов.
Интересно, существует ли где-нибудь статья типа "самые распространенные причины тормознутости экспертов"? Я тут пытаюсь между делом понять, почему советник в тестере в начале просто летает, но чем дальше, тем сильнее замедляется. Пока он еще не на той стадии разработки, чтобы это было так уж критично (для разработки основных механизмов и инструментов скорости хватает). Но все равно неудобно, что отрезки больше недели брать нет смысла, т.к. после скорость уже стремится к нулю.
Попробуйте бочку с краской поставить на колёсики и по мере надобности сдвигать следом за собой.
https://www.mql5.com/ru/forum/14041/page3#comment_605412
Попробуйте бочку с краской поставить на колёсики и по мере надобности сдвигать следом за собой.
https://www.mql5.com/ru/forum/14041/page3#comment_605412
Притча занятная :) Спасибо за совет. Осталось только найти ту самую бочку... или скорее бочки. Впрочем, уже есть смутные подозрения на обработчики новостей и уровней сопротивления...
Чаще всего такой бочкой является "начало времён" - собственную торговую историю (или ещё какой-то накапливаемую информацию) советник пытается заново полностью проанализировать на каждом баре (тике).
О! Как ни удивительно, проблема нашлась и устранилась буквально в считанные минуты. Действительно, дело было в торговой истории, перебиравшейся на каждом тике. В функции, доставшейся "по наследству" от кода а-ля "самый простой советник под mql5", который был взят за основу в самом начале. Что с тех пор как-то совершенно выпало из головы. Ну вроде работает и ладно, думаю - зачем его трогать... Видимо, стоит все же перебрать огрызки того кода :) На всякий случай, вдруг кто-то сюда нагуглит с похожими тормозами, выложу проблемный кусок и мой креатив на тему в попытке решить данную проблему. Уж не знаю, насколько мой вариант "правильнее" относительно исходника. Скорее всего это точно такой же говнокод как и все, что я пишу. [Мне-то, само-собой, без разницы. Я это к тому, что если вдруг кто-то подумает заюзать нижний кусок: учтите, что автор - говнокодер-самоучка. ^^] Но у меня по крайней мере вроде ничего не сломалось, а робот теперь летает как реактивный :) Ну, по сравнению с тем, что было, по крайней мере. Пробные два месяца прогнались примерно за минуту, что все же неплохой контраст с исходными 6+ часами %)
Было:
Стало:
В общем, спасибо за помощь :) Без наводки мне бы, наверно, еще долго не пришло бы в голову заглянуть в эти дальние пыльные углы кода...
О! Как ни удивительно, проблема нашлась и устранилась буквально в считанные минуты. Действительно, дело было в торговой истории, перебиравшейся на каждом тике. В функции, доставшейся "по наследству" от кода а-ля "самый простой советник под mql5", который был взят за основу в самом начале. Что с тех пор как-то совершенно выпало из головы. Ну вроде работает и ладно, думаю - зачем его трогать... Видимо, стоит все же перебрать огрызки того кода :) На всякий случай, вдруг кто-то сюда нагуглит с похожими тормозами, выложу проблемный кусок и мой креатив на тему в попытке решить данную проблему. Уж не знаю, насколько мой вариант "правильнее" относительно исходника. Скорее всего это точно такой же говнокод как и все, что я пишу. [Мне-то, само-собой, без разницы. Я это к тому, что если вдруг кто-то подумает заюзать нижний кусок: учтите, что автор - говнокодер-самоучка. ^^] Но у меня по крайней мере вроде ничего не сломалось, а робот теперь летает как реактивный :) Ну, по сравнению с тем, что было, по крайней мере. Пробные два месяца прогнались примерно за минуту, что все же неплохой контраст с исходными 6+ часами %)
Было:
Стало:
В общем, спасибо за помощь :) Без наводки мне бы, наверно, еще долго не пришло бы в голову заглянуть в эти дальние пыльные углы кода...
Недавно переориентировался на создание панелей, поэтому вопрос. Создаю две метки OBJ_RECTANGLE_LABEL и OBJ_LABEL и не знаю как сделать так чтобы перетаскивая OBJ_RECTANGLE_LABEL по графику чтоб и OBJ_LABEL перетаскивался точно также как единое целое. Может есть какой-то механизм привязки их друг к другу и действие по одному вызывает такое же по другому (всем другим)?
Готового механизма нет. Придётся прописывать самостоятельно. К счастью это не очень-то и сложно. Но немного поработать придётся.
Успехов.