Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У CopyXXX такая же скорость как и у iClose/iOpen/iXXXX функций. Только iXXX возвращает по одному элементу, а CopyXXX - множество и тем самым более эффективная и производительная.
Вероятно, вы не учитываете, что в МТ4 работает принудительное копирование _всей_ истории локального чарта в локальное(кеш) рыночное окружение эксперта перед каждым запуском обработчика тиков. А это очень дорого, хотя у нас есть метод экономного обновления этой информации. Специальная функция RefreshRates из MQL4 как раз и вызывает принудительное обновление кешей и истории локального чарта.
Вызывать CopyXXX гораздо эффективнее, причем у разработчиков появляется очень точный и аккуратный механизм кеширования ранее запрошенных данных. Например, не надо перезапрашивать глубокую историю на каждом тике, а хранить/дописывать ее локально и получать к ней максимально быстрый доступ.
Если сравнивать старые методы "прямого" (на самом деле там не прямой доступ) доступа Open/High/Low/Close и работу с локальным массивом double local[xxxx], то последний в разы быстрее. Поэтому лучше копировать к себе локально, а потом иметь быстрый локальный доступ к многократно запрашиваемым данным.
Это не индикатор
Что понимается под "обработчиком тиков" - пользовательские функции типа OnTick? Почему требуется копировать всю историю а не лишь появившиеся данные?
Да, OnTick/OnStart.
Я так понимаю, для многих стало откровением, что прямой доступ к локальному чарту в МТ4 не совсем прямой. Там двойной расход памяти и потери на синхронизации.
К счастью, у нас экономное обновление кеша, но это все равно дает системные расходы. В МТ5 мы полностью избавились от локального кеша и системный оверхед перед вызовом OnTick/OnStart меньше.
Да, OnTick/OnStart.
Я так понимаю, для многих стало откровением, что прямой доступ к локальному чарту в МТ4 не совсем прямой. Там двойной расход памяти и потери на синхронизации.
К счастью, у нас экономное обновление кеша, но это все равно дает системные расходы. В МТ5 мы полностью избавились от локального кеша и системный оверхед перед вызовом OnTick/OnStart меньше.
Год назад обсуждали производительность тестеров МТ4/MT5. Стандартный советник "MovingAverage" в МТ4 при аналогичных условиях тестирования отработал единичный прогон за минуту, тогда как в МТ5 за 2:34. Из-за чего можете объяснить такую разницу во времени? Первое, что приходит на ум "модульность" МТ5 и большой объем торгового окружения который приходится тянуть МТ5 при прогоне.
Модульность, внешний процесс и более качественное моделирование окружения, заточенное для мультивалютного исполнения.