Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Andrew
87
Andrew  

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

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

Alexander
2441
Alexander  

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

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

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

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

Andrew
87
Andrew  
nen, спасибо за идею :) буду пробовать :)
Victor Nikolaev
Модератор
15342
Victor Nikolaev  
nen:

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

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


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