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();
        }
 private void Timer_FirstElapsed(object sender, ElapsedEventArgs e)
 {
     try {
         Trace.WriteLine("Timer_FirstElapsed");
         var timer = new Timer()
         {
             Interval  = (double)INTERVAL_MINUTE * 60 * 1000,
             AutoReset = true,
         };
         timer.Elapsed += Timer_Elapsed;
         timer.Start();
         SaveOrderbook(oandaApi.GetOrderbookData(3600));
         Trace.WriteLine("Timer_FirstElapsed end");
     } catch (Exception ex) {
         Trace.WriteLine(ex);
     }
 }
Example #3
0
 private void Timer_FirstElapsed(object sender, ElapsedEventArgs e)
 {
     try {
         Trace.WriteLine("Timer_FirstElapsed");
         var timer = new System.Timers.Timer()
         {
             Interval  = (double)INTERVAL_MINUTE * 60 * 1000,
             AutoReset = true,
         };
         timer.Elapsed += Timer_Elapsed;
         timer.Start();
         foreach (var instrument in INSTRUMENTS)
         {
             for (int i = 0; SaveOrderbook(oandaApi.GetOrderbookData(instrument, 3600), instrument) == false && i < 3; i++)
             {
                 Thread.Sleep(1000);
             }
         }
         Trace.WriteLine("Timer_FirstElapsed end");
     } catch (Exception ex) {
         Trace.WriteLine(ex);
     }
 }