private void OrdersHandler(OrderOrTradeUpdatedMessage messageData) { if (messageData == null) { return; } lock (OrderQueueAddObj) { var existOrder = queueOrder.FirstOrDefault(_ => _.Orderid == messageData.Orderid); if (existOrder != null) { existOrder.Commission = messageData.Commission; existOrder.FilledTradesAccumulatedQuantity = messageData.LastFilledTradePrice; existOrder.LastFilledTradeQuantity = messageData.LastFilledTradeQuantity; existOrder.Status = messageData.Status; existOrder.EventTime = messageData.EventTime; existOrder.TradeTime = messageData.TradeTime; existOrder.TradeId = messageData.TradeId; var cacheItem = queueOrderTraderRelation.FirstOrDefault(_ => _.OrderID == messageData.Orderid); var timeSpan = (long)(DateTime.Now - StartTime).TotalMilliseconds; if (cacheItem != null && cacheItem.LastQueryTime < timeSpan) { cacheItem.LastQueryTime = timeSpan; } } else { var trader = GetOrderTrader(messageData.Orderid); if (!string.IsNullOrEmpty(trader)) { queueOrder.Enqueue(messageData); } } } }
private void TradesHandler(OrderOrTradeUpdatedMessage messageData) { if (messageData == null) { return; } var existTrade = queueTrade.FirstOrDefault(_ => _.TradeId == messageData.TradeId); if (existTrade != null) { existTrade.Commission = messageData.Commission; existTrade.FilledTradesAccumulatedQuantity = messageData.LastFilledTradeQuantity; existTrade.LastFilledTradePrice = messageData.LastFilledTradePrice; existTrade.LastFilledTradeQuantity = messageData.LastFilledTradeQuantity; existTrade.EventTime = messageData.EventTime; existTrade.TradeTime = messageData.TradeTime; } else { var trader = GetOrderTrader(messageData.Orderid); if (!string.IsNullOrEmpty(trader)) { var order = queueOrder.FirstOrDefault(_ => _.Orderid == messageData.Orderid); if (order != null) { messageData.Symbol = order.Symbol; messageData.Side = order.Side; } queueTrade.Enqueue(messageData); } } }
private void QueryTraders(string symbol) { try { IEnumerable <Binance.API.Csharp.Client.Models.Account.Trade> symbolTrades = null; DateTime st = DateTime.Now; lock (sync) { symbolTrades = binanceClient.GetTradeList(symbol).Result; lastRequesTime = DateTime.Now; Sleep(st); } foreach (var tradeItem in symbolTrades) { var tradeCache = queueTrade.FirstOrDefault(_ => _.TradeId == tradeItem.Id); if (tradeCache == null) { var traderInfo = GetOrderTrader(tradeItem.OrderId); if (!string.IsNullOrEmpty(traderInfo)) { var order = queueOrder.First(_ => _.Orderid == tradeItem.OrderId); var tradeMsg = new OrderOrTradeUpdatedMessage() { Orderid = tradeItem.OrderId, TradeId = tradeItem.Id, Price = tradeItem.Price, FilledTradesAccumulatedQuantity = tradeItem.Quantity, LastFilledTradeQuantity = tradeItem.Quantity, LastFilledTradePrice = tradeItem.Price, Commission = tradeItem.Commission, CommissionAsset = tradeItem.CommissionAsset, TradeTime = tradeItem.Time, Symbol = order.Symbol, Side = order.Side, }; queueTrade.Enqueue(tradeMsg); } } else { tradeCache.Price = tradeItem.Price; tradeCache.FilledTradesAccumulatedQuantity = tradeItem.Quantity; tradeCache.LastFilledTradeQuantity = tradeItem.Quantity; tradeCache.LastFilledTradePrice = tradeItem.Price; tradeCache.Commission = tradeItem.Commission; tradeCache.CommissionAsset = tradeItem.CommissionAsset; tradeCache.TradeTime = tradeItem.Time; } } } catch (Exception ex) { LogException(ex, "BinanceAdapter.QueryTraders Exception"); Thread.Sleep(10000); } }
private static void OrdersHandler(OrderOrTradeUpdatedMessage messageData) { var ordersData = messageData; Console.WriteLine(ordersData.TradeId.ToString()); Console.WriteLine(ordersData.Orderid.ToString()); Console.WriteLine(ordersData.Symbol.ToString()); Console.WriteLine(ordersData.Side.ToString()); Console.WriteLine(ordersData.EventTime.ToString()); Console.WriteLine(ordersData.Type.ToString()); Console.WriteLine(ordersData.Status.ToString()); }
private static void OrdersHandler(OrderOrTradeUpdatedMessage messageData) { var ordersData = messageData; //Console.WriteLine(ordersData.TradeId.ToString()); //Console.WriteLine(ordersData.Orderid.ToString()); //Console.WriteLine(ordersData.Symbol.ToString()); //Console.WriteLine(ordersData.Side.ToString()); //Console.WriteLine(ordersData.EventTime.ToString()); //Console.WriteLine(ordersData.Type.ToString()); //Console.WriteLine(ordersData.Status.ToString()); Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(messageData)); }
private void OrdersHandler(OrderOrTradeUpdatedMessage messageData) { var ordersData = messageData; }
private void TradesHandler(OrderOrTradeUpdatedMessage messageData) { var tradesData = messageData; }
private static void TradesHandler(OrderOrTradeUpdatedMessage messageData) { var tradesData = messageData; Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(messageData)); }