Example #1
0
        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();
        }
Example #2
0
 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);
 }
Example #3
0
 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");
 }