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)); }); } } }
/// <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)); } }
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); } }
private static void Display(AggregateTradeEventArgs args) => Program.Display(args.Trade);
public void SubscribeAggregateTrades(AggregateTradeEventArgs aggregateTradeEventArgs) { throw new NotImplementedException(); }