roq-crypto#
Important
PLACEHOLDER! This gateway is in early development.
Links#
Purpose#
Maintain network connectivity with the Crypto.com exchange
Route exchange updates to connected clients
Route client requests to the relevant exchange accounts
Stream all messages to an event-log
Overview#
Spot |
✓ |
Futures |
|
Options |
Reference Data |
✓ |
Market Status |
|
Top of Book |
✓ |
Market by Price (L2) |
✓ |
Market by Order (L3) |
|
Trade Summary |
✓ |
Statistics |
✓ |
Create |
✓ |
Modify |
|
Cancel |
✓ |
Cancel All |
✓ |
Auto Cancellation |
Positions |
|
Funds |
✓ |
Data center located in: TBD
Conda#
$ mamba install \
--channel https://roq-trading.com/conda/stable \
roq-crypto
$ cp $CONDA_PREFIX/share/roq-crypto/config.toml $CONFIG_FILE_PATH
# Then modify $CONFIG_FILE_PATH to match your specific configuration
$ roq-crypto \
--name "crypto" \
--config_file "$CONFIG_FILE_PATH" \
--client_listen_address "$UNIX_SOCKET_PATH" \
--service_listen_address "$TCP_LISTEN_PORT" \
--flagfile "$FLAG_FILE"
Config#
Flags#
$ roq-crypto --help
--exchange
(crypto
)exchange identifier (string)
--request_limit
(80
)request limit per interval
--request_limit_interval
(10s
)request limit 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
--mbp_allow_price_inversion
(false
)allow price inversion?
--rest_uri
(https://uat-api.3ona.co
)REST end-point (URI)
--rest_proxy
proxy end-point (URI)
--rest_ping_freq
(5s
)ping frequency
--rest_ping_path
(/v2/public/get-ticker?instrument_name=BTC_USDT
)URI path used for REST connection keep-alive messages
--rest_request_timeout
(30s
)request: timeout
--rest_download_orders_page_size
(500
)page size used when downloading orders
--rest_download_orders_begin
(24h
)download orders since (now - begin)
--rest_download_only_active_orders
(false
)download only active 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_market_uri
(wss://uat-stream.3ona.co/v2/market
)WS end-point (URI)
--ws_user_uri
(wss://uat-stream.3ona.co/v2/user
)WS end-point (URI)
--ws_ping_freq
(5s
)ping frequency
--ws_request_timeout
(15s
)request: timeout
--ws_max_subscriptions_per_stream
(100
)max symbols per connection (count)
--ws_mbp_request_delay
(500ms
)request delay
--ws_mbp_request_max_retries
(3
)request max retries
Environments#
$ $CONDA_PREFIX/share/roq-crypto/flags
# flagfile for the roq-crypto gateway
--rest_uri=https://api.crypto.com
--ws_market_uri=wss://stream.crypto.com/v2/market
--ws_user_uri=wss://stream.crypto.com/v2/user
# flagfile for the roq-crypto gateway
--rest_uri=https://uat-api.3ona.co
--ws_market_uri=wss://uat-stream.3ona.co/v2/market
--ws_user_uri=wss://uat-stream.3ona.co/v2/user
Market Data#
Event |
Stream |
Messages |
Comments |
---|---|---|---|
MarketData |
ticker |
||
MarketData |
book |
||
MarketData |
trade |
||
MarketData |
ticker |
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Rest |
/v2/public/get-instruments |
||
Statistics#
Type |
Comments |
---|---|
|
(ticker) |
|
(ticker) |
|
(ticker) |
Order Management#
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Order Types#
TBD
Time in Force#
TBD
Position Effect#
TBD
Execution Instructions#
TBD
Account Management#
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Streams#
Type |
Comments |
---|---|
REST |
Primary purpose
|
Type |
Comments |
---|---|
WebSocket |
Primary purpose
Each connection
|
Comments#
The rate-limiter is quite strict
Currently getting errors when subscribing more channels…!?
Maybe need a queue for subscribtions…
Also, there’s a warning about not subscribing during the first second
Market data
Book is full snapshot on each update (must convert to incremental)
Need custom parser for book due to nested arrays