示例#1
0
        public async Task Start()
        {
            await docClient.Warmup();

            var client = new PoloniexWebSocketClient {
                OnTradeAction = this
            };
            await client.Connect();

            await client.SubscribeToTrades("BTC_ETH");
        }
示例#2
0
        public async Task Initialize()
        {
            var client = new PoloniexWebSocketClient();
            await client.Connect();

            await client.SubscribeToTicker();

            foreach (var currencyPair in tickRouterLookup.Select(o => o.Key))
            {
                Ticker.Current.Subscribe(currencyPair, ProcessTick);
            }
        }
示例#3
0
        public static async Task Initialize()
        {
            if (status == BootupStatus.Initializing || status == BootupStatus.Initialized)
            {
                return;
            }

            status = BootupStatus.Initializing;

            // boot up the Poloniex websocket client
            var client = new PoloniexWebSocketClient();
            await client.Connect();

            await client.SubscribeToTicker();

            // boot up the user list
            users = await LoadUsers();

            Ticker.Current.Subscribe("BTC_ETH", ProcessTick);

            status = BootupStatus.Initialized;
        }
        public async Task Initialize()
        {
            await InitializePoloniex();

            Console.WriteLine("poloniex initialized");

            await InitializeBittrex();

            Console.WriteLine("bittrex initialized");

            async Task InitializeBittrex()
            {
                var bittrexHub = new NBittrex.BittrexHub();

                bittrexHub.OnUpdateSummaryStateTick += (_, tick) =>
                {
                    if (tick == null || tick.Deltas == null)
                    {
                        return;
                    }

                    foreach (var item in tick.Deltas)
                    {
                        OnPriceEvent(
                            currencyPair: Canonical(item.MarketName, BittrexSeparator),
                            exchange: Bittrex,
                            price: item.Last,
                            volume: item.BaseVolume,
                            bid: item.Bid,
                            ask: item.Ask);
                    }
                };

                await bittrexHub.Connect();
            }

            async Task InitializePoloniex()
            {
                // initialize current price
                var restClient = new ApiHttpClient();
                var marketData = await restClient.Public.GetTicker();

                foreach (var market in marketData)
                {
                    var val = market.Value;
                    OnPriceEvent(
                        currencyPair: Canonical(market.Key, PoloniexSeparator),
                        exchange: Poloniex,
                        price: val.Last,
                        volume: val.BaseVolume,
                        bid: val.HighestBid,
                        ask: val.LowestAsk);
                }

                var poloniexTicker = NPoloniex.API.Push.Ticker.Current;

                poloniexTicker.Tick += (_, tick) =>
                                       OnPriceEvent(
                    currencyPair: Canonical(tick.CurrencyPair, PoloniexSeparator),
                    exchange: Poloniex,
                    price: tick.Last,
                    volume: tick.BaseVolume,
                    bid: tick.HighestBid,
                    ask: tick.LowestAsk);

                await poloniexTicker.Initialize();

                var client = new PoloniexWebSocketClient();
                await client.Connect();

                await client.SubscribeToTicker();
            }
        }