public OrderBookCollector(EventServer eventServer) { this.eventServer = eventServer; oandaApi = new OandaAPI(); this.connection = DBUtils.OpenConnection(); foreach (var instrument in INSTRUMENTS) { var orderbook = oandaApi.GetOrderbookData(instrument, 3600); SaveOrderbook(orderbook, instrument); } var now = DateTime.Now; var millisecond = (now.Minute * 60 + now.Second) * 1000 + now.Millisecond; var remainMillisecond = INTERVAL_MINUTE * 60 * 1000 - millisecond % (INTERVAL_MINUTE * 60 * 1000) + 60 * 1000; Trace.WriteLine("now:" + now); Trace.WriteLine("remain:" + remainMillisecond); Trace.Flush(); var timer = new System.Timers.Timer() { Interval = (double)remainMillisecond, AutoReset = false, }; timer.Elapsed += Timer_FirstElapsed; timer.Start(); }
public EventSession(EventServer server, TcpClient tcpClient) { this.server = server; this.client = tcpClient; this.writer = new BinaryWriter(this.client.GetStream()); Trace.WriteLine("EventServer Session start " + tcpClient.Client.RemoteEndPoint); }
public void Execute() { try { Trace.WriteLine("Candlesticks Server starting..."); this.eventServer = new EventServer(); new OrderBookCollector(eventServer); new Thread(new ThreadStart(() => { eventServer.Execute(); })).Start(); } catch (Exception e) { Trace.WriteLine(e.ToString()); throw e; } Trace.WriteLine("Candlesticks Server started"); }