воспроизвелось второй раз поэтому думаю тут все-таки бага.
оставил стратегию работать на ночь - в итоге в логах следующая картина с временем и датой: лог записыается внутри события OnProcess который настроен вызываться раз в десять секунд: 11.07.2011 23:59:37.380 11.07.2011 23:59:47.378 (через 10 секунд - т.е. все ок) 11.07.2011 23:59:57.377 (через 10 секунд - т.е. все ок) 12.07.2011 23:50:03.002 (а тут уже НЕ ОК - со сменой даты сглючило время!) 12.07.2011 23:50:03.003 ... и далее уже вызовы идут не через 10 секунд а через доли секунд - по крайней мере если верить логам 12.07.2011 23:51:26.306 12.07.2011 23:51:27.379 (тут завершается вызов через доли секунд и начинается снова через 10 секунд) 12.07.2011 23:51:37.392 ... далее продолжается через 10 секунд 12.07.2011 23:59:47.380 13.07.2011 00:00:01.834 (тут вдруг наступает новый день - хотя на самом деле все еще 12 число!) ... далее продолжается через 10 секунд и день уже неправильный!
и потом незадолго перед началом торгов вылезла куча эксепшнов про ненайденные инструменты (а накануне все находилось!) и программа окончательно упала ;)
PS. понятно что эти глюки не критичны т.к. проявляются в неторговое время - но - вдруг они что-то другое аффектят
Kommentare (9)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
У вас время берётся из квика - тампосле 23:59:59 оно устанавливается куда-то не туда, идёт кривое. Перегрузите QuikTrader и сделайте свой метод MarketTime - возвращайте, к примеру, системное время.
и правда время в Квике глючит.
А случайно на это время не завязано на вызовы OnProcess в TimeFrameStrategy? Только что она работала и выводила лог на каждый OnProcess: ... время идет по возрастанию до: 14.07.2011 19:20:00.889 14.07.2011 19:10:02.161 // тут время скакнуло назал и OnProcess перестал вызываться - брекпоинты не срабатывают - приложение где-то зависло.
себе же и отвечю - завязано. как только в Квике время скакнуло к 14.07.2011 19:20:10.824 все побежало дальше
Это уже точно баг!
Что именно является багом?
TimeFrameStrategy завязано на изменении времени - берётся текущее время, сравнивается с тем что было в предыдущий запуск Смысл запускать стратегию пока идёт клиринг?
Если есть желание - переопределяйте MarketTime в своём QuikTrader.
До конца хочется понять, что именно с вашей точки зрения работает не так.
P.S. Я сегодня как раз начал переделывать работу MarketTime не только для QuikTrader, но для всего BaseTrader - время будет браться, по задумке, из интернета с NTP сервера.
так если бы это было неторговое время (клиринг) тогда еще ок но это же было торговое время (посмотрите когда я написал сообщение - где-то в районе 20:00). просто в квике оно отображалось неправильно. в это время я вручную ставил и снимал заявки в квике! стакан обновлялся. и только моя TimeFrameStrategy висела.
Понял. Выход сейчас - перегрузить QuikTrader и свойство MarketTime, установив ему DateTime.Now
Я попробую сделать фикс с NTP сервером
кстати да, у меня такое тоже часто выскакивает.
3.2.11 в помощь. Там добавлена поддержка синхронизации с NTP сервером, старый метод взятия MarketTime из квика убран.