Как сделать, чтобы функция выполнялась после загрузки недостоющих баров?

 

когда выключаешь терминал, а потом через некоторое время включаешь - начинается загрузка баров.. и когда подгружается последний бар он имеет индекс 0, соседний бар имеет индекс 1, и потом между ними появляются еще бары и индексы меняются (ну, кроме бара с индексом 0 :)).. из за этого у меня неправильно все работает)

как можно подождать загрузку всех недостоющих баров и только потом выполнять функции?

 

Попробуй сделать задержку

int x;
...
int start()
{
if (x==0)
{
Sleep(3000);
x=1;
}
...
 

Первый расчет все равно даже и с задержкой может получиться на неполностью загруженной истории.

Перед основным расчетом необходимо запоминать  в глобальной переменной количество баров истории. Далее на каждом новом тике перед основным расчетом проверять количество баров истории. Если баров больше, чем в глобальной переменной на два и более, то делается полный пересчет. А новое значение количества баров запоминается. И так на каждом тике.

 
nen, спасибо за идею :) буду пробовать :)
 
nen:

Первый расчет все равно даже и с задержкой может получиться на неполностью загруженной истории.

Перед основным расчетом необходимо запоминать в глобальной переменной количество баров истории. Далее на каждом новом тике перед основным расчетом проверять количество баров истории. Если баров больше, чем в глобальной переменной на два и более, то делается полный пересчет. А новое значение количества баров запоминается. И так на каждом тике.


Я делаю полный перерасчет если полученная разность больше единицы. Два - значит уже есть пропущенный бар. Но неизвестно где он находится
Причина обращения: