Erlang library for Deribit API
The Deribit API is available in this package.
This package contains module:
deribit_api
- connects with Deribit API through REST or websocket
rebar3 compile
{ok, Connection} = deribit_api:open("Key", "Secret", websocket).
Result = deribit_api:getlasttrades(Pid, #{ instrument => "BTC-7APR17"} ).
deribit_api:getlasttrades(Connection, #{ instrument => "BTC-7APR17"}, {async, fun(R) -> io:format("Result: ~p~n", [R]) end}).
Ref = deribit_api:getlasttrades(Connection, #{ instrument => "BTC-7APR17"}, async),
receive
{Connection, {Ref, Status, Data}} -> io:format("Status: ~p, Data: ~p~n", [Status, Data])
end.
-
open()
open(Options)
open(AccessKey, AccessSecret)
open(AccessKey, AccessSecret, Option)
Creates new
Pid
- connection identifier, prepares connection with server. IfOption
is not provided, http connection is used to communicate withderibit.com
server,Params map values:
Name Type Definition AccessKey
string
Optional, Access Key needed to access Private functions AccessSecret
string
Optional, Access Secret needed to access Private functions Options
`atom string`
Parameters in all methods:
Key | Definition |
---|---|
Pid |
Required, connection identifier, from deribit_api:open |
Params |
Required map in some methods, see description of each |
Options |
Optional, see description below |
All methods accept optional Options
list as last parameter. Allowed values:
- not provided - method returns:
{error, Message}
- when error occurred,Message
is error message{ok, Result}
- when result was received,Result
is resonse
[async]
- result is sent to calling process andRef
- request identifier is returned. Sent message format:{Pid, {Ref, ok | error, Data = any()}
{async, fun:1}
- when result is receivedfun
is called.
-
index(Connection)
- Doc, public
index(Connection, Options)
Get price index, BTC-USD rates.
-
getcurrencies(Connection)
- Doc, public
getcurrencies(Connection, Options)
Get all supported currencies.
-
getorderbook(Connection, Instrument)
- Doc, public
getorderbook(Connection, Instrument, Options)
Retrieve the orderbook for a given instrument.
Parameters:
Key Type Decription Instrument
`string() binary()` -
getlasttrades(Connection, Params)
- Doc, public
getlasttrades(Connection, Params, Options)
Retrieve the latest trades that have occured for a specific instrument.
Params map values:
Key Type Decription Instrument
`string() binary()` count
integer()
Optional, count of trades returned (limitation: max. count is 100) since
integer()
Optional, “since” trade id, the server returns trades newer than that “since” -
getsummary(Connection, Instrument)
- Doc, public
getsummary(Connection, Instrument, Options)
Retrieve the summary info such as Open Interest, 24H Volume etc for a specific instrument.
Parameters:
Key Type Decription Instrument
`string() binary()` -
account(Connection)
- Doc, Private
account(Connection, Options)
Get user account summary.
-
buy(Connection, Params)
- Doc, private
buy(Connection, Params, Options)
Place a buy order in an instrument.
Params map values:
Key Type Decription Instrument
`string() binary()` Quantity
`integer() float() Price
`integer() float() PostOnly
boolean()
Optional, if true then the order will be POST ONLY Label
`string() binary()` -
sell(Connection, Params)
- Doc, private
sell(Connection, Params, Options)
Place a sell order in an instrument.
Params map values:
Key Type Decription Instrument
string
Required, instrument name Quantity
integer
Required, quantity, in contracts ($10 per contract for futures, ฿1 — for options) Price
float
Required, USD for futures, BTC for options PostOnly
boolean
Optional, if true then the order will be POST ONLY Label
string
Optional, user defined maximum 4-char label for the order -
edit(Connection, Params)
- Doc
edit(Connection, Params, Options)
Edit price and/or quantity of the own order. (Authorization is required).
Params map values:
Key Type Decription OrderId
integer()
Required, ID of the order returned by "sell" or "buy" request Quantity
`integer() float() Price
`integer() float() -
cancel(Connection, OrderId)
- Doc, private
cancel(Connection, OrderId, Options)
Cancel own order by id.
Parameters:
Key Type Decription OrderId
integer()
Required, ID of the order returned by "sell" or "buy" request -
cancelall(Connection, Type)
- Doc
cancelall(Connection, Type, Options)
Cancel all own futures, or all options, or all.
Parameters:
Key Type Decription Type
`all futures -
getopenorders(Connection, Params)
- Doc, private
getopenorders(Connection, Params, Options)
Retrieve open orders.
Params map values:
Key Type Description Instrument
`string() binary()` OrderId
integer()
Optional, order id -
positions(Connection)
- Doc, private
positions(Connection, Options)
Retreive positions.
-
orderhistory(Connection)
- Doc, private
orderhistory(Connection, Count)
orderhistory(Connection, Count, Options)
Get history.
Parameters
Key Type Description Count
integer()
Optional, number of requested records, if not provided all records is returned -
tradehistory(Connection, Params)
- Doc, private
tradehistory(Connection, Params, Options)
Get private trade history of the account. (Authorization is required). The result is ordered by trade identifiers (trade id-s).
Params map values:
Key Type Description Count
integer()
Optional, number of results to fetch. Instrument
`string() binary() StartTradeId
integer()
Optional, number of requested records
-
subscribe(Connection, Params)
- Doc, private
subscribe(Connection, Params, Options)
Subscribe to notifications. Notifications are send to calling process.
Params map values:
Key Type Description Count
`list(string()) [all] Events
`list(order_book trade -
unsubscribe(Connection)
- Doc, privateUnsubscribe notifications.