roq-kucoin¶
$ conda install \
--channel https://roq-trading.com/conda/unstable \
roq-kucoin
$ conda install \
--channel https://roq-trading.com/conda/stable \
roq-kucoin
Supports¶
✅ |
❶ |
|
✅ |
❶ |
|
✅ |
||
✅ |
||
❌ |
||
✅ |
||
✅ |
||
❌ |
Note
✅ = Available.
❎ = Not implemented.
❌ = Unavailable.
❶ The exchange protocol does not support streaming updates for reference data and market status.
Using¶
$ roq-kucoin [FLAGS]
Flags¶
$ roq-kucoin --help
--exchange(kucoin)Exchange identifier
--rest_uri(https://openapi-sandbox.kucoin.com)Exchange end-point
--rest_proxyProxy end-point
--rest_ping_freq(5s)Ping frequency
--rest_ping_path(/api/v1/status)Ping path
--rest_request_timeout(30s)Request timeout
--rest_download_delay(333ms)Download throttling
--rest_download_orders_page_size(500)Page size used when downloading orders
--rest_download_orders_begin(24h)Download orders since (now - begin)
--rest_download_orders_inactive(false)Download inactive orders?
--rest_download_fills_page_size(500)Page size used when downloading fills
--rest_download_fills_begin(24h)download fills since (now - begin)
--rest_token_refresh_freq(8h)Token refresh frequency
--ws_ping_freq(5s)Ping frequency
--ws_request_timeout(15s)Request timeout
--ws_max_subscriptions_per_stream(100)Maximum number of symbols per connection
--ws_mbp_request_delay(500ms)Request delay
--ws_mbp_request_max_retries(0)Request max retries
--mbp_allow_price_inversion(false)Allow price inversion?
--request_limit(80)Maximum number of requests per interval
--request_limit_interval(10s)Monitor interval
--self_trade_prevention(CN)Self-trade prevention: CN, CO, CB, DC
--encode_buffer_size(1048576)Encode buffer size
--decode_buffer_size(10485760)Decode buffer size
Environments¶
$ --flagfile $CONDA_PREFIX/share/roq-kucoin/flags/prod/flags.cfg
# flagfile for the roq-kucoin gateway
--rest_uri=https://api.kucoin.com
$ --flagfile $CONDA_PREFIX/share/roq-kucoin/flags/test/flags.cfg
# flagfile for the roq-kucoin gateway
--rest_uri=https://openapi-sandbox.kucoin.com
Configuration¶
$ --config_file $CONDA_PREFIX/share/roq-kucoin/config.toml
Important
This template will be replaced when the software is upgraded. Make a copy and modify to your own needs.
# config template for the roq-kucoin gateway
symbols = [
"^BTC-USD[A-Z]$"
"^ETH-USD[A-Z]$",
]
[accounts]
[accounts.A1]
master = true
login = "YOUR_KUCOIN_API_KEY_GOES_HERE"
password = "YOUR_KUCOIN_PASSPHRASE_GOES_HERE"
secret = "YOUR_KUCOIN_SECRET_GOES_HERE"
symbols = [ ".*" ]
[users]
[users.test]
password = "1234"
symbols = ".*"
[users.trader]
password = "secret"
accounts = [ "A1" ]
symbols = [ ".*BTC.*", ".*ETH.*" ]
[rate_limits]
[rate_limits.global]
type = "ORDER_ACTION"
aggregate = true
request_limit = 100
monitor_period = "10s"
ban_period = "5m"
Market Data¶
Inbound¶
Subject |
Field |
||
|---|---|---|---|
|
|
⇒ |
|
|
|
⇒ |
|
|
|
⇒ |
|
|
|
⇒ |
Order Management¶
Inbound¶
Outbound¶
|
|
|
||||||
|---|---|---|---|---|---|---|---|---|
|
|
⇒ |
|
❌ |
||||
❌ |
|
✅ |
||||||
✅ |
|
⇒ |
|
✅ |
||||
✅ |
|
⇒ |
|
✅ |
|
|||
❌ |
✅ |
✅ |
TBD
TBD
TBD
Comments¶
The gateway requires a master account definition (API key) to be functional. The reason is that requesting L2 snapshots will require authentication.
The exchange API does not allow order cancelation prior to an ack or update being received by the client. (Other exchanges normally allow cancelation using a client order id.) An
roq::OrderAckwithroq::Error::UNKNOWN_EXTERNAL_ORDER_IDis the response if aroq::CancelOrderrequest is sent “too early”.There are no options to instruct the exchange to auto-cancel orders on disconnect.
There is currently no implementation to refresh the token for the private connection. A received token should be valid for 24 hours and dialy restarts should therefore be planned.
The KuCoin sandbox environment does not work with IP restriction. This was confirmed by KuCoin support.