Получение и актуализация данных сейчас разделены на три логически независимых процесса.
- Формирование и актуализация свечных графиков. При старом сценарии с MetaTrader для этого использовался
mp_load_chart.phpпо списку инструментовпара + ТФ. При использовании API MetaTrader для первичной инициализации используется скрипт/api/initFeeds.php. - Поиск новых и актуализация старых моделей. Этот процесс запускается при появлении новых баров и реализован в
mp_calc_models.php. Подробнее логика пересчета описана в статье о пересчете моделей. - Высокочастотная актуализация незавершенных баров. Этот контур нужен для обновления промежуточных рыночных данных по всем инструментам.
- Получение данных от провайдера отделено от самого алгоритма расчета моделей.
- Информация по незавершенным барам, которая нужна для «анимации» цены на графике сайта, хранится без записи в БД, чтобы не создавать лишнюю нагрузку; для этого используется
PHP Memcached.
В текущей схеме предполагается запуск всех модулей по CRON. Если цены нужно получать напрямую из MT4, модуль формирования чартов может вызываться из эксперта MetaTrader.