Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления - страница 25
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Производительность почти не зависит от размера блоков чтения (см. входной inBlockSize): пробовал 10К и 100К.
Такая зависимость для одного включенного агента.
Т.е. сильно зависит от того, какими порциями читать.
И составил соответствующую таблицу.
Доступ пяти агентов к одному и тому же куску памяти (через RAMDRive) происходит в три раза медленнее, чем с включенным только одним агентом. Видимо, сказывается разруливание коллизий при одновременном чтении данных.
Попробовал на своем компе с 36 физ (72 лог) ядрами. И как предлагал сделал чтение на выбор из 1 блока памяти или из 4-х. Код доработанного эксперта приложен.
Performance = 68.8 Ticks(millions)/sec.
2 мин 45 сек
Performance = 42.3 Ticks(millions)/sec.
1 мин 07 сек
Performance = 40.2 Ticks(millions)/sec. - замедление 5%
1 мин 11сек
Performance = 39.1 Ticks(millions)/sec.
36 сек
Performance = 35.4 Ticks(millions)/sec. - замедление 9%
40 сек
Performance = 35.3 Ticks(millions)/sec. (31.4 при др. запуске)
21 сек
Performance = 31.9 Ticks(millions)/sec. (29.7 при др. запуске) - замедление 9 (6)%
22 сек
Performance = 4.1 Ticks(millions)/sec. (4.8 при др. запуске)
1 мин 20 сек (1:17 при др. запуске)
Performance = 22.6 Ticks(millions)/sec. (13,2 при др. запуске) - ускорение 5.5 (2.7) раз
15 сек (25 сек при др. запуске)
Performance = 2.0 Ticks(millions)/sec.
1 мин 22 сек
Performance = 7.5 Ticks(millions)/sec. - ускорение 3.7 раза
25 сек
Для 4 агентов чтение из 1 блока памяти на 5% быстрее, чем чтение из 4 блоков памяти (аналог того как сейчас работают агенты - у каждого свой блок памяти), но потребление памяти кратно числу агентов.
Для 8 агентов ускорение на 9%, а экономия памяти - в 8 агентов /4 блока памяти = 2 раза.
Для 16 агентов ускорение на 9%, а экономия памяти - в 16/4=4 раза.
Для 36 агентов замедление в 3-5 раз, а экономия памяти - в 36/4=9 раза.
Для 72 агентов замедление в 4 раза, а экономия памяти - в 72/4=18 раз.
Для моего процессора немного менялась скорость каждого ядра в зависимости от нагрузки. А процессоров 2 штуки - т.е. значения нужно *2
3600 MHz (1-2 ядра) 4 агента на 2 процессора
3300 MHz (4 ядра) 8 агентов
2900 MHz (8 ядер) 16 агентов
2800 MHz (9 и больше ядер) 36 и 72 агента
Т.е. для 4 и 8 агентов процессор на 10-15 % работал быстрее, чем для 16 и больше агентов. Возможно что 4 агента работали быстрее, чем 8 или 16 только за счет процессора, а не памяти.
На мой взгляд самое оптимальное 16 агентов с 4 блоками памяти - это дает экономию памяти в 4 раза. Замедление при этом 31.9 / 40.2 = 20% в сравнении с вариантом, когда каждому агенту выделен свой блок памяти (в таблице это 4 агента и 4 блока памяти). 10% из этих 20 связано с процессором. Т.е. соотношение 4 агента на 1 блок памяти - лучшее, значит для 36 агентов 9 блоков памяти было бы лучшим вариантом.
Память у меня 2-х канальная и 2 процессора. От каждого процессоа по 2 канала в память -> итого 4 одновременно работающих канала. Возможно поэтому 4 блока памяти стало оптимальным.
Протестировать с 16 или 36 блоками памяти нет возможности, т.к. мой RAM диск только 4Гб памяти может использовать. Возможно с таким тестом картина была бы яснее.
Форум по трейдингу, автоматизированным торговым системам и тестированию торговых стратегий
Обновление платформы MetaTrader 5, сборка 5120: улучшения и исправления
Ален Верлейен , 2025.06.25 21:17
Если я ничего не пропустил, похоже, команда «Найти в файлах» была удалена из контекстного меню MetaEditor. Почему?!
Не могли бы вы восстановить его, он очень полезен, даже если нечасто используется. Спасибо.
Форум по трейдингу, автоматизированным торговым системам и тестированию торговых стратегий
Обновление платформы MetaTrader 5, сборка 5120: улучшения и исправления
Ален Верлейен , 2025.06.25 22:10
Хорошо, я подтверждаю, что «Найти в файлах» есть при подключении к хранилищу Git в ME.
Похоже на небольшую ошибку, так как я не понимаю, почему эту команду следует включать только при использовании хранилища.
Попробовал на своем компе с 36 физ (72 лог) ядрами. И как предлагал сделал чтение на выбор из 1 блока памяти или из 4-х. Код доработанного эксперта приложен.
Для использования этого эксперта 4 файлa создаются скриптом в папке /RAM: (папку нужно переименовать на вашу)
У меня никакого влияния от количества блоков.
Таким образом создал блоки.
Так их читаю.
У меня никакого влияния от количества блоков.
Таким образом создал блоки.
Так их читаю.
Возможно поэтому:
Память у меня 2-х канальная и 2 процессора. От каждого процессоа по 2 канала в память -> итого 4 одновременно работающих канала. Возможно поэтому 4 блока памяти стало оптимальным.
Возможно поэтому:
если у вас 1 процессор и 1 канал в памяти.Не знаю, как посмотреть.
Не знаю, как посмотреть.
Я по спецификации памяти узнал, что она 2-х канальная. Поиском по полному названию модуля памяти.
Я по спецификации памяти узнал, что она 2-х канальная. Поиском по полному названию модуля памяти.
Еще и от платы и проца зависит.