Я когда-то уже задавался этим вопросом: https://www.mql5.com/ru/forum/378634
Может что-то из того обсуждения вам будет полезно.
Сейчас посмотрел свои скриншоты трёхлетней давности, сравнил с вашими и вижу, что потребление памяти таки уменьшилось, почти в три раза.
Так что прогресс не стоит на месте, оптимизация выполняется. Получается, что разработчики не просто так свой хлеб едят.
MetaTrader 5 оптимизирован лучше, и при этом:
- у него на порядки больше данных, детализированнее история
- функциональность кратно выше
- предназначен для массивной работы, поэтому приоритет за кешами и удержанием памяти
- 64 битный
Сам комплекс сверхэффективный - откройте каталог программы и оцените наличие всего трех exe файлов небольшого размера на огромный функционал. Мизерное количество софтверных компаний в состоянии такое сделать.
Кроме того, мы прозрачно распространяем 3 версии оптимизированных программ: x64, AVX и AVX2. То есть, даем возможность каждому трейдеру выжать максимум из своих процессоров.
Вышесказанное и вся публичная история наших разработок является доказательством нашей оптимизации и эффективности.
Сам комплекс сверхэффективный - откройте каталог программы и оцените наличие всего трех exe файлов небольшого размера на огромный функционал.
Мизерное количество софтверных компаний в состоянии такое сделать.
Вот за это в сочетании с простотой установки и продуманной структурой хранения данных огромное спасибо и низкий поклон вашей команде!
Однако, возможно, есть ещё какие-то лайфхаки, о которых я не знаю? Если кто знает, пожалуйста, подскажите.
Отключить показ торговой истории и на каждом графике удалить autotrade-объекты.
Как пример, только на одном чарте 16K таких объектов (даже если последний раз торговали годы назад). Если используете шаблоны (templates), убедитесь, что в них отсутствуют эти объекты.
Janis Ozols:
На вкладке Сообщество отключить все неиспользуемые сервисы
Отключить показ торговой истории и на каждом графике удалить autotrade-объекты.
Спасибо! Можно включить их периодическое удаление по префиксу в советник, который установлен на этом графике (при наличии исходного кода).
Если не логиниться в Терминале к MQL5-сообществу, то потребление ресурсов должно быть ниже (не проверял).
Кстати, интересная мысль. А советники, купленные в Маркете, будут при этом работать? Подключение к Сообществу им нужно только в момент активации или постоянно?
советники, купленные в Маркете, будут при этом работать? Подключение к Сообществу им нужно только в момент активации или постоянно?
Не в курсе. Думаю, после активации искусственный disconnect не уменьшит потребление.
Скорее всего, запуск своего советника через Маркет-механизм и в виде простого EX5 - огромная разница.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2024.03.05 18:13
void OnStart() { MqlTick Ticks[]; ArrayResize(Ticks, 5e7); Print(MQLInfoInteger(MQL_MEMORY_USED)); // 2862 ArrayResize(Ticks, 1); Print(MQLInfoInteger(MQL_MEMORY_USED)); // 2862 }
И если нужно наплевать на быстродействие и уменьшить потребление памяти, то только ArrayCopy+ArrayFree.
В MT5 больше всего жрет история торговли. Когда запускаете MT5, то грузится кеш (N Mb) истории для процесса, который отвечает за визуализацию истории торговли. Своего рода невидимый советник.
Каждый следующий запуск советника, который работает с историей торговли, кратно увеличивает потребление. Один советник - кеш забирает Nx2 Mb, два советника - Nx3 Mb и т.д.
Взял b4364, отрубил все, что мог. Пустой счет.
Обратите внимание, что показатели RAM отличаются.
Далее запускаем такой советник.
void OnInit() { HistorySelect(0, INT_MAX); // Запросили всю историю торговли. HistorySelectByPosition(0); // Оставили только балансовые сделки. }
Слабо что-то поменялось по RAM.
А теперь заходим на счет с богатой торговой историей.
Просто один чарт.
Добавляем на него наш советник.
Второй чарт с советником.
Десять чартов с советником-пустышкой.
Поэтому при большой истории два варианта.
- Попросить брокера обнулить историю торговли.
- Открыть у брокера новый торговый счет и продолжить торговать там.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пожалуйста, подскажите, какие меры можно предпринять, чтобы уменьшить потребление оперативной памяти терминалом МТ5?
У меня на данный момент это выглядит вот так:
Казалось бы, МТ5 более современный терминал по сравнению МТ4. И он должен быть более оптимизирован, в том числе с точки зрения работы с память. Но почему-то на практике это не так.
При +/- одинаковом числе открытых графиков, индикаторов и советников на них, МТ5 расходует существенно больше оперативной памяти, чем МТ4.
Мне известны следующие способы снижения ресурсоёмкости терминала:
Однако, возможно, есть ещё какие-то лайфхаки, о которых я не знаю? Если кто знает, пожалуйста, подскажите.
Операционная система Windows Server 2016.