roq-gemini

Purpose

  • Maintain network connectivity with the Gemini exchange

  • Route exchange updates to connected clients

  • Route client requests to the relevant exchange accounts

  • Stream all messages to an event-log

Overview

Products

Spot

Futures

Options

Market Data

Reference Data

Market Status

Top of Book

Market by Price (L2)

Market by Order (L3)

Trade Summary

Statistics

Order Management

Create

Modify

Cancel

Cancel All

Auto Cancellation

Account Management

Positions

Funds

  • Data center located in NY5, Equinix, USA, New Jersey

Conda

1
2
3
conda install \
  --channel https://roq-trading.com/conda/stable \
  roq-gemini
1
2
3
cp $CONDA_PREFIX/share/roq-gemini/config.toml $CONFIG_FILE_PATH

# Then modify $CONFIG_FILE_PATH to match your specific configuration
1
2
3
4
5
6
roq-gemini \
      --name "gemini" \
      --config_file "$CONFIG_FILE_PATH" \
      --client_listen_address "$UNIX_SOCKET_PATH" \
      --metrics_listen_address "$TCP_LISTEN_PORT" \
      --flagfile "$FLAG_FILE"

Flags

1
roq-gemini --help

--cancel_on_disconnect

The Logon FIX message can be used to instruct the exchange to automatically cancel all orders if the exchange detects a disconnect.

Environments

Note

Please contact Gemini for connectivity details.

1
2
3
4
5
6
# flagfile

--fix_ord_uri=tcp://8.44.203.78:1528
--fix_mkt_uri=tcp://8.44.203.78:1529
--fix_drp_uri=tcp://8.44.203.78:1530
--rest_uri=https://api.sandbox.gemini.com/v1

Market Data

Event

Stream

Messages

Comments

roq::ReferenceData

MarketData

SecurityList (y)

Incomplete

roq::MarketStatus

MarketData

SecurityList (y)

Incomplete

roq::TopOfBook

Unavailable

roq::MarketByPriceUpdate

MarketData

MarketDataSnapshotFullRefresh (W), MarketDataIncrementalRefresh (X)

roq::MarketByOrderUpdate

Unavailable

roq::TradeSummary

MarketData

MarketDataIncrementalRefresh (X)

roq::StatisticsUpdate

Unavailable

Statistics

Order Management

Event

Stream

Messages

Comments

roq::OrderUpdate

OrderEntry

ExecutionReport (8)

roq::TradeUpdate

OrderEntry

ExecutionReport (8)

Event

Stream

Messages

Comments

roq::OrderUpdate

roq::TradeUpdate

Event

Stream

Messages

Comments

roq::CreateOrder

OrderEntry

NewOrderSingle (D)

roq::ModifyOrder

Unavailable

roq::CancelOrder

OrderEntry

OrderCancelRequest (F)

roq::CancelAllOrders

Rest

/v1/order/cancel/all

Not implemented

Event

Stream

Messages

Comments

roq::OrderAck

OrderEntry

ExecutionReport (8), OrderCancelReject (9)

Order Types

Type

Comments

MARKET

Mapped to '1' (FIX)

LIMIT

Mapped to '2' (FIX)

STOP_LIMIT

Mapped to '4' (FIX)

Time in Force

Type

Comments

GTC

Mapped to '1' (FIX)

IOC

Mapped to '3' (FIX)

FOK

Mapped to '4' (FIX)

AT_THE_CLOSE

Mapped to '7' (FIX)

Position Effect

Note

Not supported

Execution Instructions

Type

Comments

PARTICIPATE_DO_NOT_INITIATE

Mapped to '6' (FIX)

Account Management

Event

Stream

Messages

Comments

roq::PositionUpdate

roq::FundsUpdate

Event

Stream

Messages

Comments

roq::PositionUpdate

Unavailable

roq::FundsUpdate

Rest

balaneces

Not implemented

Streams

Type

Comments

FIX

Primary purpose

  • support order management

Each connection

  • supports a single account

Type

Comments

FIX

Primary purpose

  • live account updates, including orders and fills

Each connection

  • supports a single account

The master account is used to

  • discover the full list of symbols (by downloading exchange info)

  • request depth snapshots

Type

Comments

FIX

Primary purpose

  • live market data

Each connection

  • supports a slice of the symbols

Comments

  • FIX supports both order management and market data.

  • Support for reference data and market status is completely missing from all API interfaces. YOU SHOULD NOT RELY ON REFERENCE DATA AND MARKET STATUS FOR ANYTHING.

  • REST

    • Not implemented.

  • ReferenceData, MarketStatus

    • You should not rely on these feeds.