Module: Binance::Spot::Market
- Included in:
- Binance::Spot
- Defined in:
- lib/binance/spot/market.rb
Overview
This module includes all spot public endpoints, including:
-
server time
-
kline
-
ticker
-
trades
-
orderbook
-
etc
Instance Method Summary collapse
-
#agg_trades(symbol:, **kwargs) ⇒ Object
Compressed/Aggregate Trades List.
-
#avg_price(symbol:) ⇒ Object
Current Average Price.
-
#book_ticker(symbol: nil, **kwargs) ⇒ Object
Symbol Order Book Ticker.
-
#depth(symbol:, **kwargs) ⇒ Object
Order Book.
-
#exchange_info(symbol: nil, symbols: nil, permissions: nil) ⇒ Object
Exchange Information.
-
#execution_rules(**kwargs) ⇒ Object
Query Execution Rules.
-
#historical_block_trades(symbol:, **kwargs) ⇒ Object
Historical Block Trades.
-
#historical_trades(symbol:, **kwargs) ⇒ Object
Old Trade Lookup.
-
#klines(symbol:, interval:, **kwargs) ⇒ Object
Kline/Candlestick Data.
-
#ping ⇒ Object
Test Connectivity.
-
#reference_price(symbol:) ⇒ Object
Query Reference Price.
-
#reference_price_calculation(symbol:, **kwargs) ⇒ Object
Query Reference Price Calculation.
-
#ticker(symbol: nil, symbols: nil, windowSize: '1d') ⇒ Object
Symbol Order Book Ticker.
-
#ticker_24hr(symbol: nil, **kwargs) ⇒ Object
24hr Ticker Price Change Statistics.
-
#ticker_price(symbol: nil, **kwargs) ⇒ Object
Symbol Price Ticker.
-
#ticker_trading_day(symbol: nil, symbols: nil, **kwargs) ⇒ Object
Trading Day Ticker.
-
#time ⇒ Object
Check Server Time.
-
#trades(symbol:, **kwargs) ⇒ Object
Recent Trades List.
-
#ui_klines(symbol:, interval:, **kwargs) ⇒ Object
UIKlines.
Instance Method Details
#agg_trades(symbol:, **kwargs) ⇒ Object
Compressed/Aggregate Trades List
Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.
GET /api/v3/aggTrades
145 146 147 148 149 150 151 152 |
# File 'lib/binance/spot/market.rb', line 145 def agg_trades(symbol:, **kwargs) Binance::Utils::Validation.require_param('symbol', symbol) @session.public_request( path: '/api/v3/aggTrades', params: kwargs.merge(symbol: symbol) ) end |
#avg_price(symbol:) ⇒ Object
Current Average Price
Current average price for a symbol.
GET /api/v3/avgPrice
217 218 219 220 221 222 223 224 |
# File 'lib/binance/spot/market.rb', line 217 def avg_price(symbol:) Binance::Utils::Validation.require_param('symbol', symbol) @session.public_request( path: '/api/v3/avgPrice', params: { symbol: symbol } ) end |
#book_ticker(symbol: nil, **kwargs) ⇒ Object
Symbol Order Book Ticker
Best price/qty on the order book for a symbol or symbols.
GET /api/v3/ticker/bookTicker
303 304 305 306 307 308 |
# File 'lib/binance/spot/market.rb', line 303 def book_ticker(symbol: nil, **kwargs) @session.public_request( path: '/api/v3/ticker/bookTicker', params: kwargs.merge(symbol: symbol) ) end |
#depth(symbol:, **kwargs) ⇒ Object
Order Book
GET /api/v3/depth
86 87 88 89 90 91 92 93 |
# File 'lib/binance/spot/market.rb', line 86 def depth(symbol:, **kwargs) Binance::Utils::Validation.require_param('symbol', symbol) @session.public_request( path: '/api/v3/depth', params: kwargs.merge(symbol: symbol) ) end |
#exchange_info(symbol: nil, symbols: nil, permissions: nil) ⇒ Object
Exchange Information
GET /api/v3/exchangeInfo
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/binance/spot/market.rb', line 42 def exchange_info(symbol: nil, symbols: nil, permissions: nil) if symbols.is_a?(Array) symbols = symbols.map { |v| "%22#{v}%22" }.join(',') symbols = "%5B#{symbols}%5D" end if .is_a?(Array) = .map { |v| "%22#{v}%22" }.join(',') = "%5B#{}%5D" end @session.public_request( path: '/api/v3/exchangeInfo', params: { symbol: symbol, symbols: symbols, permissions: } ) end |
#execution_rules(**kwargs) ⇒ Object
Query Execution Rules
GET /api/v3/executionRules
66 67 68 69 70 71 72 73 74 75 |
# File 'lib/binance/spot/market.rb', line 66 def execution_rules(**kwargs) if kwargs[:symbols].is_a?(Array) kwargs[:symbols] = kwargs[:symbols].map { |v| "%22#{v}%22" }.join(',') kwargs[:symbols] = "%5B#{kwargs[:symbols]}%5D" end @session.public_request( path: '/api/v3/executionRules', params: kwargs ) end |
#historical_block_trades(symbol:, **kwargs) ⇒ Object
Historical Block Trades
GET /api/v3/historicalBlockTrades
380 381 382 383 384 385 386 387 |
# File 'lib/binance/spot/market.rb', line 380 def historical_block_trades(symbol:, **kwargs) Binance::Utils::Validation.require_param('symbol', symbol) @session.public_request( path: '/api/v3/historicalBlockTrades', params: { symbol: symbol }.merge(kwargs) ) end |
#historical_trades(symbol:, **kwargs) ⇒ Object
Old Trade Lookup
X-MBX-APIKEY required
GET /api/v3/historicalTrades
123 124 125 126 127 128 129 130 |
# File 'lib/binance/spot/market.rb', line 123 def historical_trades(symbol:, **kwargs) Binance::Utils::Validation.require_param('symbol', symbol) @session.public_request( path: '/api/v3/historicalTrades', params: kwargs.merge(symbol: symbol) ) end |
#klines(symbol:, interval:, **kwargs) ⇒ Object
Kline/Candlestick Data
Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.
GET /api/v3/klines
169 170 171 172 173 174 175 176 177 178 179 180 |
# File 'lib/binance/spot/market.rb', line 169 def klines(symbol:, interval:, **kwargs) Binance::Utils::Validation.require_param('symbol', symbol) Binance::Utils::Validation.require_param('interval', interval) @session.public_request( path: '/api/v3/klines', params: kwargs.merge( symbol: symbol, interval: interval ) ) end |
#ping ⇒ Object
Test Connectivity
GET /api/v3/ping
19 20 21 |
# File 'lib/binance/spot/market.rb', line 19 def ping @session.public_request(path: '/api/v3/ping') end |
#reference_price(symbol:) ⇒ Object
Query Reference Price
GET /api/v3/referencePrice
345 346 347 348 349 350 351 352 |
# File 'lib/binance/spot/market.rb', line 345 def reference_price(symbol:) Binance::Utils::Validation.require_param('symbol', symbol) @session.public_request( path: '/api/v3/referencePrice', params: { symbol: symbol } ) end |
#reference_price_calculation(symbol:, **kwargs) ⇒ Object
Query Reference Price Calculation
GET /api/v3/referencePrice/calculation
362 363 364 365 366 367 368 369 |
# File 'lib/binance/spot/market.rb', line 362 def reference_price_calculation(symbol:, **kwargs) Binance::Utils::Validation.require_param('symbol', symbol) @session.public_request( path: '/api/v3/referencePrice/calculation', params: { symbol: symbol }.merge(kwargs) ) end |
#ticker(symbol: nil, symbols: nil, windowSize: '1d') ⇒ Object
Symbol Order Book Ticker
Best price/qty on the order book for a symbol or symbols.
GET /api/v3/ticker
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 |
# File 'lib/binance/spot/market.rb', line 321 def ticker(symbol: nil, symbols: nil, windowSize: '1d') raise Binance::DuplicatedParametersError.new('symbol', 'symbols') unless symbols.nil? || symbol.nil? params = { symbol: symbol.upcase } if symbol if symbols symbols = symbols.map { |s| "\"#{s}\"" }.join(',') params = { symbols: "\[#{symbols}\]".upcase } end params[:windowSize] = windowSize @session.public_request( path: '/api/v3/ticker', params: params ) end |
#ticker_24hr(symbol: nil, **kwargs) ⇒ Object
24hr Ticker Price Change Statistics
24 hour rolling window price change statistics. Careful when accessing this with no symbol.
GET /api/v3/ticker/24hr
239 240 241 242 243 244 |
# File 'lib/binance/spot/market.rb', line 239 def ticker_24hr(symbol: nil, **kwargs) @session.public_request( path: '/api/v3/ticker/24hr', params: kwargs.merge(symbol: symbol) ) end |
#ticker_price(symbol: nil, **kwargs) ⇒ Object
Symbol Price Ticker
Latest price for a symbol or symbols.
GET /api/v3/ticker/price
286 287 288 289 290 291 |
# File 'lib/binance/spot/market.rb', line 286 def ticker_price(symbol: nil, **kwargs) @session.public_request( path: '/api/v3/ticker/price', params: kwargs.merge(symbol: symbol) ) end |
#ticker_trading_day(symbol: nil, symbols: nil, **kwargs) ⇒ Object
Trading Day Ticker
Price change statistics for a trading day.
GET /api/v3/ticker/tradingDay
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 |
# File 'lib/binance/spot/market.rb', line 259 def ticker_trading_day(symbol: nil, symbols: nil, **kwargs) raise Binance::DuplicatedParametersError.new('symbol', 'symbols') unless symbols.nil? || symbol.nil? if symbols symbols = symbols.map { |s| "\"#{s}\"" }.join(',') symbols = { symbols: "\[#{symbols}\]".upcase } end @session.public_request( path: '/api/v3/ticker/tradingDay', params: kwargs.merge( symbol: symbol, symbols: symbols ) ) end |
#time ⇒ Object
Check Server Time
GET /api/v3/time
28 29 30 |
# File 'lib/binance/spot/market.rb', line 28 def time @session.public_request(path: '/api/v3/time') end |
#trades(symbol:, **kwargs) ⇒ Object
Recent Trades List
GET /api/v3/trades
103 104 105 106 107 108 109 110 |
# File 'lib/binance/spot/market.rb', line 103 def trades(symbol:, **kwargs) Binance::Utils::Validation.require_param('symbol', symbol) @session.public_request( path: '/api/v3/trades', params: kwargs.merge(symbol: symbol) ) end |
#ui_klines(symbol:, interval:, **kwargs) ⇒ Object
UIKlines
uiKlines return modified kline data, optimized for presentation of candlestick charts
GET /api/v3/uiKlines
196 197 198 199 200 201 202 203 204 205 206 207 |
# File 'lib/binance/spot/market.rb', line 196 def ui_klines(symbol:, interval:, **kwargs) Binance::Utils::Validation.require_param('symbol', symbol) Binance::Utils::Validation.require_param('interval', interval) @session.public_request( path: '/api/v3/uiKlines', params: kwargs.merge( symbol: symbol, interval: interval ) ) end |