Example #1
0
        public void Start()
        {
            Action <BaseExchange> subscribeRestExchange = client =>
            {
                client.Logon();
                foreach (var ins in _restInstruments.Values)
                {
                    ins.SubscribeOrderBook(client, (n, o) => OrderBookRestHandler(n, o));
                }
            };

            var config     = (BotcoinConfigSection)ConfigurationManager.GetSection("botcoin");
            var connection = config.FindConnectionElement("Arbitrage");

#if true
            var domainName = connection.DomainName;
            if (Dns.Resolve(Dns.GetHostName()).AddressList[0].ToString() == "185.226.113.60")
            {
                var str = domainName.Split('.');
                domainName = String.Format("{0}-test.{1}.{2}", str[0], str[1], str[2]);
            }
#endif
            _endPoint = new IPEndPoint(DbGatewayService.GetAddressByHost(domainName), connection.Port);
            _ticker   = new TickerService(_restInstruments, /*_wsInstruments,*/ _dbGateway.GetExchangeSettings(), _log);

            CreateExchanges();

            try
            {
                _ticker.Update();

                foreach (var client in _restExchanges.Values)
                {
                    subscribeRestExchange(client);
                }

                foreach (var client in _wsExchanges.Values)
                {
                    subscribeWsExchange(client);
                }

                _ticker.Start();
                _restSubscriber.Start();
            }
            catch (Exception ex)
            {
                _log.WriteError(ex.Message);
            }
        }