Idiomatic Ruby library for BitMEX API

in #bitmex6 years ago

Bitmex-api-ruby

Fully featured, idiomatic Ruby library for BitMEX API. Support for both REST and Websocket APIs as described in API Overview.

Installation

gem install bitmex-api

Usage

Listen for live trades in 3 lines of code:

# Importing library...
2.5.3 :001 > require 'bitmex-api'
 => true

# Create client...
2.5.3 :002 > client = Bitmex::Client.new
 => #<Bitmex::Client:0x00007fae7a569598 @host="www.bitmex.com", @api_key=nil, @api_secret=nil>

# Spit out live trades as they happen...
2.5.3 :003 > client.trades.all symbol: 'XBTUSD' do |trade|
  puts "#{trade.side} #{trade.homeNotional} #{trade.symbol} @ #{trade.price}"
end
2.5.3 :004 >
2.5.3 :005?>
==> {"info":"Welcome to the BitMEX Realtime API.","version":"2019-01-31T23:25:34.000Z","timestamp":"2019-02-02T12:35:05.892Z","docs":"https://www.bitmex.com/app/wsAPI","limit":{"remaining":37}}
==> {"success":true,"subscribe":"trade:XBTUSD","request":{"op":"subscribe","args":["trade:XBTUSD"]}}
Buy 0.2924442 XBTUSD @ 3440
Sell 0.0305277 XBTUSD @ 3439.5
Buy 0.2907 XBTUSD @ 3440
Sell 0.18810878 XBTUSD @ 3439.5
Sell 0.14537 XBTUSD @ 3439.5
Buy 0.17442 XBTUSD @ 3440
Buy 0.05814 XBTUSD @ 3440
Sell 0.014537 XBTUSD @ 3439.5

Or fetch trade history:

# get first 10 trades of the year
2.5.3 :006 > trades = client.trades.all symbol: 'XBTUSD', startTime: '2019-01-01', count: 10
 => [...]

2.5.3 :007 > trades.size
 => 10

# the very first trade in 2019
2.5.3 :008 > trades.first
 => #<Bitmex::Mash foreignNotional=10 grossValue=270780 homeNotional=0.0027078 price=3693 side="Sell" size=10 symbol="XBTUSD" tickDirection="ZeroMinusTick" timestamp="2019-01-01T00:00:03.904Z" trdMatchID="2bd201ae-3b79-0908-293e-d9bd1cc489f2">

This post is just a teaser, if you want to find out more info please see source code and documentation.

Enjoy futures trading!

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.029
BTC 76491.95
ETH 2940.27
USDT 1.00
SBD 2.64