roq-crypto-futures¶
Links¶
Supports¶
Spot |
|
Futures |
✓ |
Options |
|
Combos |
Reference Data |
✓ |
Market Status |
|
Top of Book |
✓ |
Market by Price |
✓ |
Market by Order |
|
Trade Summary |
✓ |
Statistics |
✓ |
Create |
✓ |
Modify |
|
Cancel |
✓ |
Cancel All |
✓ |
Auto-Cancel |
Positions |
|
Funds |
✓ |
Installing¶
$ mamba install \
--channel https://roq-trading.com/conda/stable \
roq-crypto-futures
$ mamba install \
--channel https://roq-trading.com/conda/unstable \
roq-crypto-futures
Using¶
$ roq-crypto-futures \
--name "crypto-futures" \
--config_file $CONFIG_FILE_PATH \
--client_listen_address $UNIX_SOCKET_PATH \
--flagfile $ENVIRONMENT_FLAGFILE
Flags¶
$ roq-crypto-futures --help
--exchange
(crypto-futures
)Exchange identifier
--rest_uri
(https://uat-deriv-api.3ona.co
)Exchange end-point
--rest_proxy
Proxy end-point
--rest_ping_freq
(5s
)Ping frequency
--rest_ping_path
(/api/spot/v1/public/time
)Ping path
--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-deriv-stream.3ona.co/v1/market
)Exchange end-point
--ws_user_uri
(wss://uat-deriv-stream.3ona.co/v1/user
)Exchange end-point
--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
(3
)Request max retries
--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?
Environments¶
$ $CONDA_PREFIX/share/roq-crypto-futures/flags/prod/flags.cfg
# flagfile for the roq-crypto-futures gateway
--rest_uri=https://deriv-api.crypto.com
--ws_market_uri=wss://deriv-stream.crypto.com/v1/market
--ws_user_uri=wss://deriv-stream.crypto.com/v1/user
$ $CONDA_PREFIX/share/roq-crypto-futures/flags/test/flags.cfg
# flagfile for the roq-crypto-futures gateway
--rest_uri=https://uat-deriv-api.3ona.co
--ws_market_uri=wss://uat-deriv-stream.3ona.co/v1/market
--ws_user_uri=wss://uat-deriv-stream.3ona.co/v1/user
Configuration¶
$ $CONDA_PREFIX/share/roq-crypto-futures/config.toml
Important
The template will be replaced when the software is upgraded. Make a copy and modify to your needs.
symbols = "BTCUSD.*"
[accounts]
[accounts.A1]
master = true
login = "YOUR_CRYPTO_FUTURES_API_KEY_GOES_HERE"
secret = "YOUR_CRYPTO_FUTURES_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¶
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Rest |
/v1/public/get-instruments |
||
Statistics¶
Type |
Comments |
---|---|
|
(spot.tickers) |
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¶
All symbols having tradable != true are dropped.
The rate-limiter is quite strict
Currently getting DISCONNECTED 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