roq-coinbase-pro¶
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-coinbase-pro
$ mamba install \
--channel https://roq-trading.com/conda/unstable \
roq-coinbase-pro
Using¶
$ roq-coinbase-pro \
--name "coinbase-pro" \
--config_file $CONFIG_FILE_PATH \
--client_listen_address $UNIX_SOCKET_PATH \
--flagfile $ENVIRONMENT_FLAGFILE
Flags¶
$ roq-coinbase-pro --help
--exchange
(coinbase-pro
)Exchange identifier
--fix_uri
(tcp+ssl://fix-public.sandbox.pro.coinbase.com:4198
)Exchange end-point
--fix_ping_freq
(5s
)Ping frequency
--fix_request_timeout
(15s
)Request timeout
--fix_cancel_on_disconnect
(true
)Cancel orders on disconnect?
--fix_self_trade_prevention
(N
)Self trade prevention: N=incoming order, B=both orders (string)
--fix_debug
(false
)(DEBUG) log fix messages?
--rest_uri
(https://api-public.sandbox.pro.coinbase.com
)Exchange end-point
--rest_proxy
Proxy end-point
--rest_ping_freq
(5s
)Ping frequency
--rest_ping_path
(/time
)Ping path
--rest_request_timeout
(30s
)Request timeout
--ws_uri
(wss://ws-feed-public.sandbox.pro.coinbase.com
)Exchange end-point
--ws_ping_freq
(5s
)Ping frequency
--ws_max_subscriptions_per_stream
(16
)Maximum number of symbols per connection
--ws_include_status
(false
)Include status updates?
--enable_market_by_order
(false
)Include market-by-order?
--encode_buffer_size
(1048576
)Encode buffer size
--decode_buffer_size
(10485760
)Decode buffer size
--mbp_allow_price_inversion
(true
)Allow price inversion?
Environments¶
$ $CONDA_PREFIX/share/roq-coinbase-pro/flags/prod/flags.cfg
# flagfile for the roq-coinbase-pro gateway
--fix_uri=tcp+ssl://fix.pro.coinbase.com:4198
--ws_uri=wss://ws-feed.pro.coinbase.com
--rest_uri=https://api.pro.coinbase.com
$ $CONDA_PREFIX/share/roq-coinbase-pro/flags/test/flags.cfg
# flagfile for the roq-coinbase-pro gateway
--fix_uri=tcp+ssl://fix-public.sandbox.pro.coinbase.com:4198
--ws_uri=wss://ws-feed-public.sandbox.pro.coinbase.com
--rest_uri=https://api-public.sandbox.pro.coinbase.com
Configuration¶
$ $CONDA_PREFIX/share/roq-coinbase-pro/config.toml
Important
The template will be replaced when the software is upgraded. Make a copy and modify to your needs.
symbols = [
"^BTC-USD[A-Z]?$",
"^ETH-USD[A-Z]?$"
]
[accounts]
[accounts.A1]
master = true
login = "YOUR_COINBASE_PRO_API_KEY_GOES_HERE"
password = "YOUR_COINBASE_PRO_PASSPHRASE_GOES_HERE"
secret = "YOUR_COINBASE_PRO_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 |
---|---|---|---|
Rest |
status |
||
Rest |
status |
||
MarketData |
ticker |
No quantity from exchange |
|
MarketData |
snapshot, l2update |
||
MarketData |
open, change, done |
||
MarketData |
match |
||
MarketData |
ticker |
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Statistics¶
Type |
Comments |
---|---|
|
|
|
|
|
Order Management¶
Event |
Stream |
Messages |
Comments |
---|---|---|---|
OrderEntry |
ExecutionReport (8) |
||
DropCopy |
Match |
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Event |
Stream |
Messages |
Comments |
---|---|---|---|
OrderEntry |
NewOrderSingle (D) |
||
OrderEntry |
OrderCancelRequest (F) |
||
Not implemented |
Event |
Stream |
Messages |
Comments |
---|---|---|---|
OrderEntry |
ExecutionReport (8), OrderCancelReject (9) |
Order Types¶
Type |
Comments |
---|---|
|
Mapped to |
|
Mapped to |
|
Mapped to |
Time in Force¶
Type |
Comments |
---|---|
|
Mapped to |
|
Mapped to |
|
Mapped to |
Note
A non-standard value of 'P'
(FIX) is used to indicate “Post-Only.
This value is derived from Execution Instruction (see below) and will override any other value
of Time in Force.
Position Effect¶
Note
Not supported
Execution Instructions¶
Type |
Comments |
---|---|
|
Mapped to the |
Account Management¶
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Unavailable |
|||
Unavailable |
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Unavailable |
|||
Rest |
accounts |
Streams¶
Type |
Comments |
---|---|
FIX |
Primary purpose
Each connection
|
Type |
Comments |
---|---|
WebSocket |
Primary purpose
Each connection
|
Type |
Comments |
---|---|
WebSocket |
Primary purpose
Each connection
|
Type |
Comments |
---|---|
REST |
Primary purpose
|
Constraints¶
Rate-limit usage is not communicated by the exchange
FIX OrderMassCancelRequest (q) is not supported and orders must therefore be canceled one by one
Comments¶
WebSocket is through a third-party CDN (CloudFlare) with all the issues such a solution entails.
FIX support is minimal and only supporting very basic order management.
Fills are not available from the FIX connection and there is a probability Match messages are lost from WebSocket connection. YOU SHOULD NOT RELY ON TRADE UPDATES FOR YOUR POSITION KEEPING !!!
TradeUpdate
You should not rely on this feed for your position keeping.
FundsUpdate
Only downloaded immediately after connection has been established.