Skip to content

Commit cf180d6

Browse files
xfiodemboglitch100
authored andcommitted
Reading from individual symbol ticker stream fails (#134)
Created object BinanceTradeData to align with return payload from @ticker stream
1 parent b2926f0 commit cf180d6

File tree

2 files changed

+114
-1
lines changed

2 files changed

+114
-1
lines changed
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
using BinanceExchange.API.Converter;
2+
using BinanceExchange.API.Models.WebSocket.Interfaces;
3+
using Newtonsoft.Json;
4+
using System;
5+
using System.Collections.Generic;
6+
using System.Runtime.Serialization;
7+
using System.Text;
8+
9+
namespace BinanceExchange.API.Models.WebSocket
10+
{
11+
/// <summary>
12+
/// trade data response from Trades websocket endpoint (<symbol>@ticker || !ticker@arr)
13+
/// </summary>
14+
[DataContract]
15+
public class BinanceTradeData : ISymbolWebSocketResponse
16+
{
17+
[JsonProperty(PropertyName = "e")]
18+
[DataMember(Order = 1)]
19+
public string EventType { get; set; }
20+
21+
[JsonProperty(PropertyName = "E")]
22+
[DataMember(Order = 2)]
23+
[JsonConverter(typeof(EpochTimeConverter))]
24+
public DateTime EventTime { get; set; }
25+
26+
[JsonProperty(PropertyName = "s")]
27+
[DataMember(Order = 3)]
28+
public string Symbol { get; set; }
29+
30+
[JsonProperty(PropertyName = "p")]
31+
[DataMember(Order = 4)]
32+
public decimal PriceChange { get; set; }
33+
34+
[JsonProperty(PropertyName = "P")]
35+
[DataMember(Order = 5)]
36+
public decimal PriceChangePercent { get; set; }
37+
38+
[JsonProperty(PropertyName = "w")]
39+
[DataMember(Order = 6)]
40+
public decimal WeightedAveragePrice { get; set; }
41+
42+
[JsonProperty(PropertyName = "x")]
43+
[DataMember(Order = 7)]
44+
public decimal FirstTrade { get; set; }
45+
46+
[JsonProperty(PropertyName = "c")]
47+
[DataMember(Order = 8)]
48+
public decimal LastPrice { get; set; }
49+
50+
[JsonProperty(PropertyName = "Q")]
51+
[DataMember(Order = 9)]
52+
public decimal LastQuantity { get; set; }
53+
54+
[JsonProperty(PropertyName = "b")]
55+
[DataMember(Order = 10)]
56+
public decimal BestBidPrice { get; set; }
57+
58+
[JsonProperty(PropertyName = "B")]
59+
[DataMember(Order = 11)]
60+
public decimal BestBidQuantity { get; set; }
61+
62+
[JsonProperty(PropertyName = "a")]
63+
[DataMember(Order = 12)]
64+
public decimal BestAskPrice { get; set; }
65+
66+
[JsonProperty(PropertyName = "A")]
67+
[DataMember(Order = 13)]
68+
public decimal BestAskQuantity { get; set; }
69+
70+
[JsonProperty(PropertyName = "o")]
71+
[DataMember(Order = 14)]
72+
public decimal OpenPrice { get; set; }
73+
74+
[JsonProperty(PropertyName = "h")]
75+
[DataMember(Order = 15)]
76+
public decimal HighPrice { get; set; }
77+
78+
[JsonProperty(PropertyName = "l")]
79+
[DataMember(Order = 16)]
80+
public decimal LowPrice { get; set; }
81+
82+
[JsonProperty(PropertyName = "v")]
83+
[DataMember(Order = 17)]
84+
public decimal TotalTradedBaseAssetVolume { get; set; }
85+
86+
[JsonProperty(PropertyName = "q")]
87+
[DataMember(Order = 18)]
88+
public decimal TotalTradedQuoteAssetVolume { get; set; }
89+
90+
[JsonProperty(PropertyName = "O")]
91+
[DataMember(Order = 19)]
92+
[JsonConverter(typeof(EpochTimeConverter))]
93+
public DateTime StatisticsOpenTime { get; set; }
94+
95+
[JsonProperty(PropertyName = "C")]
96+
[DataMember(Order = 20)]
97+
[JsonConverter(typeof(EpochTimeConverter))]
98+
public DateTime StatisticsCloseTime { get; set; }
99+
100+
[JsonProperty(PropertyName = "F")]
101+
[DataMember(Order = 21)]
102+
public long FirstTradeId { get; set; }
103+
104+
[JsonProperty(PropertyName = "L")]
105+
[DataMember(Order = 22)]
106+
public long LastTradeId { get; set; }
107+
108+
[JsonProperty(PropertyName = "n")]
109+
[DataMember(Order = 23)]
110+
public long TotalNumberOfTrades { get; set; }
111+
112+
}
113+
}

BinanceExchange.API/Websockets/AbstractBinanceWebSocketClient.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ public Guid ConnectToTradesWebSocket(string symbol, BinanceWebSocketMessageHandl
144144
/// <param name="symbol"></param>
145145
/// <param name="messageEventHandler"></param>
146146
/// <returns></returns>
147-
public Guid ConnectToIndividualSymbolTickerWebSocket(string symbol, BinanceWebSocketMessageHandler<BinanceAggregateTradeData> messageEventHandler)
147+
public Guid ConnectToIndividualSymbolTickerWebSocket(string symbol, BinanceWebSocketMessageHandler<BinanceTradeData> messageEventHandler)
148148
{
149149
Guard.AgainstNullOrEmpty(symbol, nameof(symbol));
150150
Logger.Debug("Connecting to Individual Symbol Ticker Web Socket");

0 commit comments

Comments
 (0)