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); }
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); }
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); }
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); }
// =====>>>>>>>>>> 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); } }