diff --git a/config/brokers.toml b/config/brokers.toml index 18d67da5..bb57c78d 100644 --- a/config/brokers.toml +++ b/config/brokers.toml @@ -50,3 +50,8 @@ prefer_data_account = [ paper = "XX0000000" margin = "X0000000" ira = "X0000000" + + +[deribit] +key_id = 'XXXXXXXX' +key_secret = 'Xx_XxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXx' diff --git a/piker/brokers/deribit/README.rst b/piker/brokers/deribit/README.rst new file mode 100644 index 00000000..e8490f92 --- /dev/null +++ b/piker/brokers/deribit/README.rst @@ -0,0 +1,70 @@ +``deribit`` backend +------------------ +pretty good liquidity crypto derivatives, uses custom json rpc over ws for +client methods, then `cryptofeed` for data streams. + +status +****** +- supports option charts +- no order support yet + + +config +****** +In order to get order mode support your ``brokers.toml`` +needs to have something like the following: + +.. code:: toml + + [deribit] + key_id = 'XXXXXXXX' + key_secret = 'Xx_XxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXx' + +To obtain an api id and secret you need to create an account, which can be a +real market account over at: + + - deribit.com (requires KYC for deposit address) + +Or a testnet account over at: + + - test.deribit.com + +For testnet once the account is created here is how you deposit fake crypto to +try it out: + +1) Go to Wallet: + +.. figure:: assets/0_wallet.png + :align: center + :target: assets/0_wallet.png + :alt: wallet page + +2) Then click on the elipsis menu and select deposit + +.. figure:: assets/1_wallet_select_deposit.png + :align: center + :target: assets/1_wallet_select_deposit.png + :alt: wallet deposit page + +3) This will take you to the deposit address page + +.. figure:: assets/2_gen_deposit_addr.png + :align: center + :target: assets/2_gen_deposit_addr.png + :alt: generate deposit address page + +4) After clicking generate you should see the address, copy it and go to the +[coin faucet](https://test.deribit.com/dericoin/BTC/deposit) and send fake +coins to that address. + +.. figure:: assets/3_deposit_address.png + :align: center + :target: assets/3_deposit_address.png + :alt: generated address + +5) Back in the deposit address page you should see the deposit in your history + +.. figure:: assets/4_wallet_deposit_history.png + :align: center + :target: assets/4_wallet_deposit_history.png + :alt: wallet deposit history diff --git a/piker/brokers/deribit/api.py b/piker/brokers/deribit/api.py index 8febfb33..5e2ed10b 100644 --- a/piker/brokers/deribit/api.py +++ b/piker/brokers/deribit/api.py @@ -328,7 +328,7 @@ class Client: 'client_secret': self._key_secret, 'scope': access_scope } - + resp = await self.json_rpc('public/auth', params) result = resp.result @@ -615,7 +615,7 @@ class CryptoFeedRelay: if not self._fh.running: self._fh.run(start_loop=False) self._loop = asyncio.get_event_loop() - + # sync with trio to_trio.send_nowait(None) @@ -666,7 +666,7 @@ class CryptoFeedRelay: if not self._fh.running: self._fh.run(start_loop=False) self._loop = asyncio.get_event_loop() - + # sync with trio to_trio.send_nowait(None) diff --git a/piker/brokers/deribit/assets/0_wallet.png b/piker/brokers/deribit/assets/0_wallet.png new file mode 100644 index 00000000..5f5880ee Binary files /dev/null and b/piker/brokers/deribit/assets/0_wallet.png differ diff --git a/piker/brokers/deribit/assets/1_wallet_select_deposit.png b/piker/brokers/deribit/assets/1_wallet_select_deposit.png new file mode 100644 index 00000000..7527f635 Binary files /dev/null and b/piker/brokers/deribit/assets/1_wallet_select_deposit.png differ diff --git a/piker/brokers/deribit/assets/2_gen_deposit_addr.png b/piker/brokers/deribit/assets/2_gen_deposit_addr.png new file mode 100644 index 00000000..2006a710 Binary files /dev/null and b/piker/brokers/deribit/assets/2_gen_deposit_addr.png differ diff --git a/piker/brokers/deribit/assets/3_deposit_address.png b/piker/brokers/deribit/assets/3_deposit_address.png new file mode 100644 index 00000000..9db6f163 Binary files /dev/null and b/piker/brokers/deribit/assets/3_deposit_address.png differ diff --git a/piker/brokers/deribit/assets/4_wallet_deposit_history.png b/piker/brokers/deribit/assets/4_wallet_deposit_history.png new file mode 100644 index 00000000..997922a6 Binary files /dev/null and b/piker/brokers/deribit/assets/4_wallet_deposit_history.png differ diff --git a/piker/brokers/deribit/feed.py b/piker/brokers/deribit/feed.py index 76f99ec1..8d2967db 100644 --- a/piker/brokers/deribit/feed.py +++ b/piker/brokers/deribit/feed.py @@ -87,7 +87,7 @@ async def open_history_client( start_dt = pendulum.from_timestamp(array[0]['time']) end_dt = pendulum.from_timestamp(array[-1]['time']) - + return array, start_dt, end_dt yield get_ohlc, {'erlangs': 3, 'rate': 3}