Trader.MarketTime возвращает локальное время попытка вызова SyncMarketTime(Exchange.Rts) к успеху не привела. Расхождение времени в терминале QUIK и Trader.MarketTime осталось. Как получить биржевое время?
я полностью повторил вопрос из топика MarketTime в версии StockSharp_4.0.8 с учетом того что было прокомментировано.
В чем собственно проблема - на моей машине локальное время расходится со временем биржи примерно на 5 минут - причем время в нашей локалке синхронизируют наши админы (а уж что они берут за эталон - вопрос выходит за темы форума) так вот Trader.MarketTime возвращает локальное время после вызова SyncMarketTime(Exchange.Rts) изменяется Trader.MarketTimeOffset, но меняется не верно
вот какой код выполняю
Debug.Print(Trader.MarketTime)
Debug.Print(Trader.MarketTimeOffset.ToString)
SyncMarketTime(Trader, Exchange.Rts)
Debug.Print(Trader.MarketTimeOffset.ToString)
и вот что получаю:
26.12.2011 10:46:21 00:00:00 01:00:00
т.е. смещение на 1 час, хотя по логике должно быть что-то около 00:05:00
это очень похоже на примечание к методу SyncMarketTime
Примечание Если не удалось получить время биржи через NTP сервер, возвращается разница между часовым поясом TimeZoneInfo и локальным часовым поясом.
コメント (16)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Из терминала время получается через QuikTerminal.ServerTime
благодарю!
возвращает верное время! жаль что ITrader не реализует этот метод... надо будет подумать как из стратегии добраться...
Так специально сделали, ибо он порой пустой, запаздывает, ....
Перегрузите в своём QuikTrader метод MarketTime и возвращайте QuikTerminal.ServerTime там (если он не нал).
идея, наверное, хорошая - еще бы уметь 🤨
вообще такие вопросы лучше задавать гуглу :) но скоро новый год... 😎
public class MyTrader : QuikTrader { public override MarketTime {get {return Terminal.ServerTime ?? base.MarketTime;}} }
убедился, что хреновый источник QuikTerminal.ServerTime
вопрос у меня возник - SyncMarketTime лезет к NTP серверу напрямую? т.е. <u>минуя</u> настройки прокси броузера?
опытным путем выяснил, что на машине, где инет выделенный SyncMarketTime нормально отрабатывает, а на машине где инет через прокси - хрен. что можете посоветовать, чтоб SyncMarketTime заработал за прокси?
Да, минуя.
Насколько мне сказал Гугл - прокси сервера не поддерживают обрашения к NTP.
благодарю! а каким решением (сторонний компонент/сами писали) идет обращение к NTP серверу? почитаю, может достаточно порт какой-нибудь открыть?
благодарю! попробую поковырять...
http://msdn.microsoft.com/en-us/library/kd3cf2ex.aspx
грамотный вариант! но не проходит. похоже действительно NTP не работает через http-прокси...
Наверное у вас порты закрыты.
в том то и дело что закрыты. у меня на работе выход в инет есть только через прокси - все остальные порты закрыты. сам квик нормально ходит через проксик. для моей задачи вполне бы подошло и локальное время - его можно через те же NTP-сервера синхронизировать специальным софтом - но в нашей локалке каждые несколько минут происходит синхронизация хрен знает с чем - минут на 5 от общепринятого. в моем случае локальное время вообще использовать опасно 😀
Почему предпочтение time-a.nist.gov? (Вот прямо сейчас он у меня не доступен) time.nist.gov ,например, подключается рандомно к любому адресу из большого списка