Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 62
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Чтение с жесткого диска (Не SSD) 1 Гбайта за 4 секунды!? Какой-то очень крутой диск.
В самом деле ? Я думал, что это было медленно (мне нужно прочитать 250 миллионов тиков: -D).
Сколько у вас есть ?
EDIT: Кстати, это не 1 ГБ / 4 секунды. Отображаемая память представляет собой размер массива в mql, а не размер данных, читаемых на жестком диске (они сильно сжаты на диске, всего ~ 6/7 байт за 1 тик)
EDIT: Кстати, это не 1 ГБ / 4 секунды. Отображаемая память представляет собой размер массива в mql, а не размер данных, читаемых на жестком диске (они сильно сжаты на диске, всего ~ 6/7 байт за 1 тик)
Это и есть канвас. Просто в канвас Вы только пишите, а мне еще нужно читать.
Делал через RAM-диск. Замеров не делал. Как только MT4-ресурсы починили, перешел на них, т.к. внутри Терминала все.
Все равно я ожидал бы 1-2 мега mqltick в секунду даже при r/w, т.е. на порядок быстрее.
Ведь, действительно, если упаковывать тики при передаче и распаковывать при приёме, можно пропускную способность увеличить на порядок. Это же гораздо вкуснее.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5
fxsaber, 2018.12.06 21:41
Лаг не сильно зависит от количества данных. Я бы не очень рекомендовал этот канал передачи данных, если нужна скорость.
Лог выше из HistoryTicks. Время трансфера
MqlTick - 60 байт.
Не всегда
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Бета-версия платформы MetaTrader 4 build 1145
fxsaber, 2018.12.06 10:29
Просьба исправить для совместимости двух платформПустой МТ5 1957 с 3 графиками без индикаторов и советников кушает 4-6% процессора.
Раньше столько потреблял мультивалютный индикатор, получающий на каждом тике информацию по 50 инструментам.
Дайте больше информации, пожалуйста:
Проверка на 4 графиках с миллионами М1 баров показала 0% нагрузку.
Можете воспроизвести ситуацию?
Сейчас не воспроизводится.
MetaTrader 5 x64 build 1958
Windows 10 (build 17134) x64, IE 11, UAC, Intel Core i7-4720HQ @ 2.60GHz, Memory: 10647 / 16311 Mb, Disk: 317 / 463 Gb, GMT+3 Всегда всё обновляю. Всё лицензия.
5 терминалов. Один девственный.
Демо-счета, alpari и MetaQuotes, один alpari заброшенный реал.
Везде:
-- обзор рынка: 28 основных кроссов.
-- по 4 случайных символа/графика. М1.
-- макс. баров в окне - 1000. В основном 2018.
-- на графиках нет объектов, советников, скриптов, индикаторов (кроме дефолтного терминала, там профиль, который после установки mt).
-- не обращаю внимания на всплески нагрузки на CPU в начале запуска терминала, а также
в моменты лихорадки котировок.
Час ночи:
Renat Fatkhullin, ПОЧЕМУ?
Результат
Предполагаю, что тормозит моя реализация.
ЗЫ Профилирование подтвердило, тормозит мой код.ЗЫ Профилирование подтвердило, тормозит мой код.
Попробовал ускорить, но получил
Оставил затею.
Не всегда
Лог выше из HistoryTicks. Время трансфера
Замер скорости
Результат
Предполагаю, что тормозит моя реализация.
ЗЫ Профилирование подтвердило, тормозит мой код.Код Ваш, я, конечно, не изучал. На меня наводят ужас эти бесконечные инклудники и вложенность классов(я конечно люблю классы, но не до такой степени).
Но смущает меня размер массива в 433556 тиков ( это в байтах 26 Mb). Возможно в этом причина или одна из причин тормозов. Ренат как-то говорил о влиянии кэшов процессора на производительность больших и малых массивов и я очень четко прочувствовал всю тормознутость на массивах в несколько мегабайт, когда массив превышает кэш процессора.
Поэтому, считаю, что нужно производить передачу более мелкими пакетами (например по 10 Килотиков), и лучше в упакованном виде. Более того не только передачу производить в упакованном формате, но и хранение в массиве - получателе, а распаковывать по мере необходимости тоже по несколько тысяч тиков. Когда имеешь дело с массивами таких объемов, это архиважно - оптимизировать работу с массивами и следить за непревышением рабочего массива кэша процессора. Думаю, выигрыш в скорости может достигать в несколько десятков раз при грамотной организации работы с массивами.