private CryptoTrade ConvertTrade(Ticker trade)
        {
            var data = trade.Data;

            var buyId  = data.BuyOrderId.ToString(CultureInfo.InvariantCulture);
            var sellId = data.SellOrderId.ToString(CultureInfo.InvariantCulture);

            var result = new CryptoTrade()
            {
                Amount      = data.Amount,
                AmountQuote = data.Amount * data.Price,
                Side        = ConvertSide(data.Side),
                Id          = data.Id.ToString(CultureInfo.InvariantCulture),
                Price       = data.Price,
                Timestamp   = data.Microtimestamp,
                Pair        = trade.Symbol,

                ExchangeName    = ExchangeName,
                ServerTimestamp = data.Microtimestamp,

                MakerOrderId = data.Side == TradeSide.Buy ? sellId : buyId,
                TakerOrderId = data.Side == TradeSide.Sell ? sellId : buyId
            };

            return(result);
        }
Example #2
0
        internal void OnCryptoTrade(CryptoTrade trade)
        {
            RTDataRec Rec = GetRTDataRec(trade.pair, PGClusterNames.Crypto);

            Rec.PriceTick = trade.p == 0 ? TickType.FlatTick
                                                : Rec.Price > trade.p ? TickType.DownTick : TickType.UpTick;
            Rec.Price      = trade.p;
            Rec.CryptoSize = trade.s;
            string Change = (Math.Max(Rec.PreviousClose, trade.p) - Math.Min(Rec.PreviousClose, trade.p)).
                            ToString("0:00");

            Rec.Change     = double.Parse(Change);
            Rec.ChangeTick = Rec.Change == 0 ? TickType.FlatTick
                                                        : Rec.Change < 0 ? TickType.DownTick : TickType.UpTick;
        }
        private CryptoTrade ConvertTrade(string symbol, Trade trade)
        {
            var data = new CryptoTrade()
            {
                Amount       = trade.Size,
                AmountQuote  = trade.Size * trade.Price,
                Side         = ConvertSide(trade.Side),
                Id           = trade.Id.ToString(),
                Price        = trade.Price,
                Timestamp    = trade.Time.UtcDateTime,
                Pair         = symbol,
                ExchangeName = ExchangeName,
                Liquidation  = trade.Liquidation
            };

            return(data);
        }
        private void OnCryptoTrade(CryptoTrade trade)
        {
            string Text;

            if (IsJSONTextMode)
            {
                Text = JsonConvert.SerializeObject(trade);
            }
            else
            {
                Text = $"Trade: Pair: {trade.pair}, " +
                       $"Price: {trade.p}, Size: {trade.s}, " +
                       $"Trade ID: {trade.i}, Exchange ID: {trade.xt}, " +
                       $"Time: {PGBase.UnixTimestampMillisToESTDateTime( trade.t )} EST";
            }
            AppendText(Text);
        }
Example #5
0
        private CryptoTrade ConvertTrade(Trade trade)
        {
            var data = new CryptoTrade()
            {
                Amount      = trade.Size / trade.Price,
                AmountQuote = trade.Size,
                Side        = ConvertSide(trade.Side),
                Id          = trade.TrdMatchId,
                Price       = trade.Price,
                Timestamp   = trade.Timestamp,
                Pair        = trade.Symbol,

                ExchangeName = ExchangeName
            };

            return(data);
        }
        private CryptoTrade ConvertTrade(string symbol, MarketTradeDetailTickDataItem trade, DateTime serverTimestamp)
        {
            var data = new CryptoTrade
            {
                Amount      = (double)trade.Amount,
                AmountQuote = (double)(trade.Amount * trade.Price),
                Side        = ConvertSide(trade.Direction),
                Id          = trade.TradeId.ToString(),
                Price       = (double)trade.Price,
                Timestamp   = trade.Timestamp.UtcDateTime,
                Pair        = symbol,

                ExchangeName    = ExchangeName,
                ServerTimestamp = serverTimestamp
            };

            return(data);
        }
Example #7
0
        private CryptoTrade ConvertTrade(Trade trade)
        {
            var data = new CryptoTrade()
            {
                Amount      = trade.Amount,
                AmountQuote = trade.Amount * trade.Price,
                Side        = ConvertSide(trade.Amount),
                Id          = trade.Id.ToString(),
                Price       = trade.Price,
                Timestamp   = trade.Mts,
                Pair        = trade.Pair,

                ExchangeName    = ExchangeName,
                ServerSequence  = trade.ServerSequence,
                ServerTimestamp = trade.ServerTimestamp
            };

            return(data);
        }
        private CryptoTrade ConvertTrade(Trade trade)
        {
            var data = new CryptoTrade()
            {
                Amount       = trade.Quantity,
                AmountQuote  = trade.Quantity * trade.Price,
                Side         = ConvertSide(trade.Side),
                Id           = trade.TradeId.ToString(),
                Price        = trade.Price,
                Timestamp    = trade.TradeTime,
                Pair         = trade.Symbol,
                MakerOrderId = trade.IsBuyerMaker ? trade.BuyerOrderId.ToString() : trade.SellerOrderId.ToString(),
                TakerOrderId = trade.IsBuyerMaker ? trade.SellerOrderId.ToString() : trade.BuyerOrderId.ToString(),

                ExchangeName    = ExchangeName,
                ServerTimestamp = trade.EventTime
            };

            return(data);
        }
        private CryptoTrade ConvertTrade(TradeResponse trade)
        {
            var data = new CryptoTrade()
            {
                Amount       = trade.Size,
                AmountQuote  = trade.Size * trade.Price,
                Side         = ConvertSide(trade.TradeSide),
                Id           = trade.TradeId.ToString(),
                Price        = trade.Price,
                Timestamp    = trade.Time,
                Pair         = trade.ProductId,
                MakerOrderId = trade.MakerOrderId,
                TakerOrderId = trade.TakerOrderId,

                ExchangeName    = ExchangeName,
                ServerSequence  = trade.Sequence,
                ServerTimestamp = trade.Time
            };

            return(data);
        }
Example #10
0
        // =====>>>>>>>>>> JSONText Message Received

        public override void OnWebSocketJSONText(string JSONText)
        {
            try
            {
                string ObjJSONText;

                List <object> PGBaseList = JsonConvert.DeserializeObject <List <object> >(JSONText);
                foreach (var PGBase in PGBaseList)
                {
                    ObjJSONText = PGBase.ToString();
                    PolygonBase pGBase = JsonConvert.DeserializeObject <PolygonBase>(ObjJSONText);

                    switch (pGBase.ev)
                    {
                    case "XQ":
                        CryptoQuote quote = JsonConvert.DeserializeObject <CryptoQuote>(ObjJSONText);
                        if (quote != null)
                        {
                            OnCryptoQuoteEvent?.Invoke(quote);
                        }
                        break;

                    case "XT":
                        CryptoTrade trade = JsonConvert.DeserializeObject <CryptoTrade>(ObjJSONText);
                        if (trade != null)
                        {
                            OnCryptoTradeEvent?.Invoke(trade);
                        }
                        break;

                    case "XA":
                        CryptoAggregate cryptoAgg = JsonConvert.DeserializeObject <CryptoAggregate>(ObjJSONText);
                        if (cryptoAgg != null)
                        {
                            OnCryptoAggEvent?.Invoke(cryptoAgg);
                        }
                        break;

                    case "XS":
                        CryptoSIP CryptoSIPRef = JsonConvert.DeserializeObject <CryptoSIP>(ObjJSONText);
                        if (CryptoSIPRef != null)
                        {
                            OnCryptoSIPEvent?.Invoke(CryptoSIPRef);
                        }
                        break;

                    case "XL2":
                        CryptoLevel2 cryptoLevel2 = JsonConvert.DeserializeObject <CryptoLevel2>(ObjJSONText);
                        if (cryptoLevel2 != null)
                        {
                            OnCryptoLevel2Event?.Invoke(cryptoLevel2);
                        }
                        break;

                    case "status":
                        Status StatusIn = JsonConvert.DeserializeObject <Status>(ObjJSONText);
                        HandleStatusMessage(StatusIn);
                        break;

                    default:
                        break;
                    }
                }
            }
            catch (System.Exception ex)
            {
                HandleJSONTextException("websocket_MessageReceived", JSONText, ex);
            }
        }