Работа завершена
Техническое задание
Формула индекса - простое среднее арифметическое. Т.е. USD = (1/EURUSD +1/GBPUSD + 1/AUDUSD +1/NZDUSD + USDJPY + USDCAD + USDCHF)/7, EUR = (EURUSD +EURGBP +EURAUD +EURNZD +EURJPY +EURCAD +EURCHF)/7 и так далее. Вычисление через набор из 7 мажоров, минуя кроссы, приветствуется.
Обязательно организовать побарную синхронизацию. В котировках (на малых тф, в основном по ночам и на менее ликвидных парах) встречаются дыры, например по EURUSD бар в наличии, а на NZDUSD не было тиков и бар в это время не сформировался. Если это не учитывать и просто совместить 2 ряда без проверок, то один сместится относительно другого, что даст некорректные значения. В случае, если на одной паре значение имеется, а на другой отсутствует - это отсутствующее значение (или значения, в случае пропуска нескольких баров) необходимо заполнить ценой предыдущего от "дыры" бара. В итоге все ряды должны полностью совпадать по количеству баров и их времени.
Мне нужно экспортировать полученные значения в csv. Я пользовался индикатором https://www.mql5.com/ru/forum/70708 Если парсить значения индекса (проверял на примитивном самописном индикаторе индекса) на большую глубину (10+ лет на М1), то индикатор упирается в not enough memory. Поэтому реализация работы в виде советника, который посчитает индекс и сам запишет его значения в csv, возможно более предпочтительна.