Попробуй сделать задержку
int x; ... int start() { if (x==0) { Sleep(3000); x=1; } ...
Первый расчет все равно даже и с задержкой может получиться на неполностью загруженной истории.
Перед основным расчетом необходимо запоминать в глобальной переменной количество баров истории. Далее на каждом новом тике перед основным расчетом проверять количество баров истории. Если баров больше, чем в глобальной переменной на два и более, то делается полный пересчет. А новое значение количества баров запоминается. И так на каждом тике.
Первый расчет все равно даже и с задержкой может получиться на неполностью загруженной истории.
Перед основным расчетом необходимо запоминать в глобальной переменной количество баров истории. Далее на каждом новом тике перед основным расчетом проверять количество баров истории. Если баров больше, чем в глобальной переменной на два и более, то делается полный пересчет. А новое значение количества баров запоминается. И так на каждом тике.
Я делаю полный перерасчет если полученная разность больше единицы. Два - значит уже есть пропущенный бар. Но неизвестно где он находится
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
когда выключаешь терминал, а потом через некоторое время включаешь - начинается загрузка баров.. и когда подгружается последний бар он имеет индекс 0, соседний бар имеет индекс 1, и потом между ними появляются еще бары и индексы меняются (ну, кроме бара с индексом 0 :)).. из за этого у меня неправильно все работает)
как можно подождать загрузку всех недостоющих баров и только потом выполнять функции?