(require '[polvo.utils.deribit :as deribit])
deribit/routesCorrespondence between keywords and endpoints.
deribit/http-request [route & params]A direct interface allowing access to HTTP API. Kebab-case params on request are automatically
converted to camel case params (for instance, :stop-price becomes "stopPrice").
(deribit/http-request :currencies)
(deribit/http-request :currencies :as-is? true)
(deribit/http-request :positions :params {:currency "BTC"} :key "<ACCESS-KEY>" :secret "<ACCESS-SECRET>")
deribit/http-client [param-dict & _ :as params]A more convenient interface allowing pre-specification of :api-key, :api-secret,
:as-is? and :testing? options.
(def cli (deribit/http-client :key "<ACCESS-KEY>" :secret "<ACCESS-SECRET>"))
(cli :currencies)
(cli :positions {:currency "BTC"}) ; passing parameters as a map
(cli :positions :currency "BTC") ; with a client you can also use keyword parameters
deribit/ws-client [& params]Creates a websocket client. Handlers are passed to gniazdo.core/client
(see stalefruits/gniazdo.
Returns a map with keys :client (the actual client) and :opts with metadata.
(require '[clojure.data.json :as json])
(defn print-response [msg]
(-> msg
(get "result")
println))
(defn print-stream [msg]
(do
(println (str "channel: " (-> msg (get "params") (get "channel"))))
(println (clojure.pprint/pprint (-> msg (get "params") (get "data"))))
(println)))
(def cli (deribit/ws-client :key "<ACCESS-KEY>"
:secret "<ACCESS-SECRET>"
:handlers {:on-receive (fn [response]
(let [msg (json/read-str response)]
(if (contains? msg "result")
(print-response msg)
(print-stream msg))))
:on-error #(println (str "error: " %))}))
deribit/send [ws-client route & [params & {:keys [id] :or {id nil}}]Sends a message asyncronously using a map created with deribit/ws-client. You can optionally
identify requests with an integer :id.
(deribit/send cli :time) ; cli as defined above
(deribit/send cli :instruments {:currency "BTC"} :id 2)
(deribit/send cli :public-subscribe {:channels ["book.BTC-PERPETUAL.raw"]})
deribit/expand [x]Helper for generating combinatorial channel names.
(deribit/expand [:book [:btc-perpetual :eth-perpetual] :raw])
; => ["book.BTC-PERPETUAL.raw" "book.ETH-PERPETUAL.raw"]
(deribit/expand [:book [:btc-perpetual :eth-perpetual] [:raw :100ms]])
; => ["book.BTC-PERPETUAL.raw" "book.BTC-PERPETUAL.100ms" "book.ETH-PERPETUAL.raw" "book.ETH-PERPETUAL.100ms"]
(deribit/expand [:price-index [:btc-usd :eth-usd]])
; => ["deribit_price_index.btc_usd" "deribit_price_index.eth_usd"]
deribit/kw->subscriptionAvailable conversions from keywords to channels.
deribit/parse-instrument [instrument]Parses a instrument name. Returns nil if instrument name is invalid.
(deribit/parse-instrument "BTC-PERPETUAL")
; => {:instrument "BTC-PERPETUAL", :kind "perpetual", :currency "BTC"}
(deribit/parse-instrument "BTC-5AUG16")
; => {:instrument "BTC-5AUG16", :kind "future", :currency "BTC", :expiration-date "2016-08-05"}
(deribit/parse-instrument "BTC-5AUG16-580-P")
; =>
; {:instrument "BTC-5AUG16-580-P",
; :kind "option",
; :currency "BTC",
; :expiration-date "2016-08-05",
; :strike 580,
; :option-type "put"}
(deribit/parse-instrument "BTC-25DSSD16")
; => nil
(deribit/parse-instrument "BTC-32DSSD16")
; => nil
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |