Esempio n. 1
0
 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);
             }
         }
     }
 }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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());
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
 private void OrdersHandler(OrderOrTradeUpdatedMessage messageData)
 {
     var ordersData = messageData;
 }
Esempio n. 7
0
 private void TradesHandler(OrderOrTradeUpdatedMessage messageData)
 {
     var tradesData = messageData;
 }
Esempio n. 8
0
        private static void TradesHandler(OrderOrTradeUpdatedMessage messageData)
        {
            var tradesData = messageData;

            Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(messageData));
        }