Если в роботе используется обработка рыночных данных через массивы, а не через SQL, то с наступлением нового дня возникает необходимость сохранения накопленных данных (если ведётся архив), очистки и сброса счётчиков на начало торгов, если робот должен работать круглосуточно 7 дней в неделю.
В случае с Alfa-Direct для этого удобно использовать 2 события:
— автоматическое отключение терминала в 00:00;
— автоматическое подключение терминала в 00:15.
В API это событие OnConnectionChanged, имеющее 2 статуса: Connected и Disconnected.
Вешаем на это событие обработчик. Добавляем в него дополнительное условие по времени, чтобы исключить ложные рестарты при дисконнекте
внутри сессии:
if ((DateTime.Now.Hour == 23 && DateTime.Now.Minute > 50)
|| (DateTime.Now.Hour == 0 && DateTime.Now.Minute < 20))
Теперь робот можно крутить 24х7, если нужно куда-то уехать, но не закрывать позицию.