Exemple #1
0
        private static void Display(AggregateTradeEventArgs args)
        {
            var trade = args.Trade;

            lock (_sync)
            {
                _trades[trade.Symbol] = trade;

                if (_displayTask.IsCompleted)
                {
                    // Delay to allow multiple data updates between display updates.
                    _displayTask = Task.Delay(250)
                                   .ContinueWith(_ =>
                    {
                        AggregateTrade[] latestsTrades;
                        lock (_sync)
                        {
                            latestsTrades = _trades.Values.ToArray();
                        }

                        Console.SetCursorPosition(0, 0);

                        foreach (var t in latestsTrades)
                        {
                            Console.WriteLine($" {t.Time.ToLocalTime()} - {t.Symbol.PadLeft(8)} - {(t.IsBuyerMaker ? "Sell" : "Buy").PadLeft(4)} - {t.Quantity:0.00000000} @ {t.Price:0.00000000}{(t.IsBestPriceMatch ? "*" : " ")} - [ID: {t.Id}] - {t.Time.ToTimestamp()}".PadRight(119));
                            Console.WriteLine();
                        }

                        Console.WriteLine(_message.PadRight(119));
                    });
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// TEST
        /// </summary>
        /// <param name="args"></param>
        // ReSharper disable once UnusedMember.Local
        private static void Display(AggregateTradeEventArgs args)
        {
            lock (_sync)
            {
                Console.SetCursorPosition(0, 0);

                var trade = args.Trade;
                Console.WriteLine($"  {trade.Time.ToLocalTime()} - {trade.Symbol.PadLeft(8)} - {(trade.IsBuyerMaker ? "Sell" : "Buy").PadLeft(4)} - {trade.Quantity:0.00000000} @ {trade.Price:0.00000000}{(trade.IsBestPriceMatch ? "*" : " ")} - [ID: {trade.Id}] - {trade.Time.ToTimestamp()}         ".PadRight(119));

                Console.WriteLine();
                Console.WriteLine(_message.PadRight(119));
            }
        }
Exemple #3
0
        public void Properties()
        {
            var time = DateTimeOffset.FromUnixTimeMilliseconds(DateTime.UtcNow.ToTimestamp()).UtcDateTime;

            var           symbol           = Symbol.BTC_USDT;
            const long    id               = 12345;
            const decimal price            = 5000;
            const decimal quantity         = 1;
            const long    firstTradeId     = 123456;
            const long    lastTradeId      = 234567;
            const bool    isBuyerMaker     = true;
            const bool    isBestPriceMatch = true;

            var trade = new AggregateTrade(symbol, id, price, quantity, firstTradeId, lastTradeId, time, isBuyerMaker, isBestPriceMatch);

            var args = new AggregateTradeEventArgs(time, trade);

            Assert.Equal(time, args.Time);
            Assert.Equal(trade, args.Trade);
        }
        public void Properties()
        {
            var timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

            var           symbol           = Symbol.BTC_USDT;
            const long    id               = 12345;
            const decimal price            = 5000;
            const decimal quantity         = 1;
            const long    firstTradeId     = 123456;
            const long    lastTradeId      = 234567;
            const bool    isBuyerMaker     = true;
            const bool    isBestPriceMatch = true;

            var trade = new AggregateTrade(symbol, id, price, quantity, firstTradeId, lastTradeId, timestamp, isBuyerMaker, isBestPriceMatch);

            using (var cts = new CancellationTokenSource())
            {
                var args = new AggregateTradeEventArgs(timestamp, cts.Token, trade);

                Assert.Equal(timestamp, args.Timestamp);
                Assert.Equal(trade, args.Trade);
            }
        }
Exemple #5
0
 private static void Display(AggregateTradeEventArgs args)
 => Program.Display(args.Trade);
Exemple #6
0
 public void SubscribeAggregateTrades(AggregateTradeEventArgs aggregateTradeEventArgs)
 {
     throw new NotImplementedException();
 }