Наверное не так.
Функция start() вызывается с приходом каждого тика по символу.
Массив Time содержит время соответствующее барам.
Следующий фрагмент кода будет на каждом тике сравнивать время последнего бара с временем последнего бара на предыдущем тике. Если время бара изменилось, значит сформирован новый бар.
Функция start() вызывается с приходом каждого тика по символу.
Массив Time содержит время соответствующее барам.
Следующий фрагмент кода будет на каждом тике сравнивать время последнего бара с временем последнего бара на предыдущем тике. Если время бара изменилось, значит сформирован новый бар.
int prevDate = 0; int start() { if (prevDate != Time[0]) { NewBar(); prevDate = Time[0]; } /* Вычисления на каждом тике */ ......... } void NewBar() { /* Вычисления на новом баре */ ................... }
Эксперты на разных чартах мешать друг другу недолжны.
Каждый из них запускается по своему тику (т.е. в разное время).
Если один эксперт уйдет в спячку (Sleep(...)), остальные все равно должны работать.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
правильно ли я понимаю, что описанная на сайте проверка
Variable: prevtime(0);
...
If prevtime = Time Then exit;
prevtime = Time;
фактически включает эксперт не в начале бара, а просто с заданной периодичностью?
если да, при работе на портфеле это должно позволить экспертам работать "по очереди", не мешая друг другу таймаутами на выполнение операций - достаточно их запускать на исполнение с небольшим интервалом...
я щас пишу
if TimeMinute( CurTime ) - BarTime = Period then Begin
...
BarTime = TimeMinute( CurTime );
end;
, еще не тестил, но должно жить.
ЗЫ: Когда и какими компаниями планируется начало полноценного использования 4го клиента?
спасибо.