Синхронизация структур MqlRates для разных символом

 

В виду отсутствия многопоточности при расчёте индикаторов при их достаточно большом количесмтве терминал вешается на раз два. Особенно когда сам расчёт в индикаторе ресурсоёмкий именно поэтому решил полностью отказатся от индикаторов и все расчёты вести непосредственно в советнике.

Но прежде чем считать значения функций индикаторов необходимо получить исторические данные по нужным инструментам, поэтому в момент инициализации советника создаются структуры MqlRates для каждого символа с которыми и будет в последствии работать индикатор-функия чтобы посчитаться. 

Установил принудительно дату с которой нужно получить данные, вернее советник раньше этой даты тупо игнорит всё. В тоге после получения структур по десяти инструментам вижу что количество переданных в структуру данный для каждого инструмента разное. В целом то совпадает, но дыры в истории никто не отменял поэтому собственно вопрос.

Как синхронизировать получение структур через CopyRates чтобы количество полученных данных во всех структурах было одинаково и они были бы синхронизированы между собой по времени??? Грубо говоря, если мне нужно получить 100 данных с символа, а там дыры, то заполнять дыру тупо предыдущим значением. Удивительно но поис ничего не дал толкового. Но больше всего удивило что и вопросов подобных как то ни у кого не возникало. Может быть есть другие подходы к подобным системам. Может не через структуру даже, но я не знаю. По моему иметь после инициализации советника структуры массивов для другних инструментов было бы проще всего. Однако вот не задачка, это разное количество скопированных данных.


Как заполнить дыры в истории при копировании структуры по средством CopyRates. Дыру заполнять предыдущим значением. Думал заполнять структуру по барно, копируя в цикле по одному элементу,для всей структуры, но в копиратес нужно указывать массив целиком, а если я с помощью того же CopyRates хочу скопировать один элемент в конкретную позицию массива приёмника что тогда? Надеюсь на Вашу отзывчивость, а то я уже зааааа.. ался если честно. Конкретно для этого случая ничего толком в литературе так ничего и не встретил. 

 
Нет такой проблемы, если индикаторы правильно писать.
 
Dmitry Fedoseev:
Нет такой проблемы, если индикаторы правильно писать.

К сожалению есть. При вызове порядка 20 индикаторов достаточно сложных в расчёте замучишся синхронизировать и потом нет нет да и будет вылетать ошибка что все индикаторы посчитаться не могут, тем более когда они в одном потоке и дут. А в эксперте можно и подождать пока идёт расчёт и т.д.

А по поводу моего вопроса. Просто сам дурак, разобрался. При использовании именно скрейки фьючерсов исторических данных вполне хватает по всем инструметам и рассогласований нет. Когда история не велика, то количество баров по иструментам фьючерсов разное, та ми пропуски и т.д.  и тут получается проблема.

Причина обращения: