piker/piker/brokers/kraken
Tyler Goodlet 609b91e848 Try out `@trio_util.async_generator` for streaming
Apparently it will likely fix our `trio`-cancel-scopes-corrupted crash
when we try to let our `._web_bs.NoBsWs` do reconnect logic around
the asyn-generator implemented data-feed streaming routines in `binance`
and `kraken`.  See the project docs for deatz; obvs we add the lib as
a dep.
2023-03-20 12:54:48 -04:00
..
README.rst Renames to `ppu` 2022-07-30 17:33:45 -04:00
__init__.py Create sub-pkg logger once during import 2022-07-05 16:59:47 -04:00
api.py `kraken`: parse and load info `Transaction.sym: Symbol` 2023-03-02 19:25:43 -05:00
broker.py `kraken`: parse and load info `Transaction.sym: Symbol` 2023-03-02 19:25:43 -05:00
feed.py Try out `@trio_util.async_generator` for streaming 2023-03-20 12:54:48 -04:00

README.rst

kraken backend

though they don't have the most liquidity of all the cexes they sure are accommodating to those of us who appreciate a little xmr.

status

current support is production grade and both real-time data and order management should be correct and fast. this backend is used by core devs for live trading.

config

In order to get order mode support your brokers.toml needs to have something like the following:

[kraken]
accounts.spot = 'spot'
key_descr = "spot"
api_key = "69696969696969696696969696969696969696969696969696969696"
secret = "BOOBSBOOBSBOOBSBOOBSBOOBSSMBZ69696969696969669969696969696"

If everything works correctly you should see any current positions loaded in the pps pane on chart load and you should also be able to check your trade records in the file:

<pikerk_conf_dir>/ledgers/trades_kraken_spot.toml

An example ledger file will have entries written verbatim from the trade events schema:

[TFJBKK-SMBZS-VJ4UWS]
ordertxid = "SMBZSA-7CNQU-3HWLNJ"
postxid = "SMBZSE-M7IF5-CFI7LT"
pair = "XXMRZEUR"
time = 1655691993.4133966
type = "buy"
ordertype = "limit"
price = "103.97000000"
cost = "499.99999977"
fee = "0.80000000"
vol = "4.80907954"
margin = "0.00000000"
misc = ""

your pps.toml file will have position entries like,

[kraken.spot."xmreur.kraken"]
size = 4.80907954
ppu = 103.97000000
bsuid = "XXMRZEUR"
clears = [
 { tid = "TFJBKK-SMBZS-VJ4UWS", cost = 0.8, price = 103.97, size = 4.80907954, dt = "2022-05-20T02:26:33.413397+00:00" },
]