Products Connect

Futures and options, behind a small protocol.

The gateway between qkt and a trading venue: one container per account. Futures, perpetuals and options over one small protocol.

Pre-1.0 · testnet and paper first
Latest release
v0.1.0
Licence
Apache-2.0
Adapters
paper, Deribit
Protocol
VGP v1
  1. qkt
  2. Venue gateway
  3. Adapter
  4. The venue
qkt.config.yaml
brokers:
  deribit:
    type: gateway
    gateway_url: http://127.0.0.1:8444
    api_key: env:DERIBIT_TRADER_TOKEN
    expected_adapter: deribit
    expected_account_login: "<client id>"
    expected_trade_mode: demo # real on mainnet

qkt trades through the gateway with a token, never with venue keys. It refuses to start if the adapter, the account or the trade mode does not match what you wrote here.

Source: qkt-venue-gateway/adapter-deribit/README.md; qkt/docs/reference/config-schema.md

In motion

An order, from qkt to a venue.

The same path for futures, perpetuals and options. The kill switch lives in the gateway, outside qkt.

An order travels from qkt through the venue gateway to a venue, and the fill comes back with the kill switch held outside qkt.

Try it

No venue account needed to start.

The paper adapter trades a simulated account on Deribit's live public prices. You need Docker and nothing else. It builds from source today.

quickstart
git clone https://github.com/elitekaycy/qkt-venue-gateway && cd qkt-venue-gatewaycp .env.example .env          # set PAPER_TRADER_TOKEN and PAPER_GUARDIAN_TOKENdocker compose up -d          # serves on 127.0.0.1:8443curl -H "Authorization: Bearer $PAPER_TRADER_TOKEN" http://127.0.0.1:8443/v1/health

Design goals

What the gateway is built to do for every venue.

  • Built not to double ordersA client order id is placed at most once.
  • Nothing lost on restartOrders are journaled before they are sent, and qkt replays from the last event it saw.
  • Lost orders recoveredAn unknown outcome is recovered from fills, not re-sent.
  • A kill switch outside qktA separate guardian token blocks new risk, for the account or one symbol. You call it yourself or from your own watchdog; Guardrails does not support the venue gateway yet.

Know the limits

What it is not.

  • Not for high frequencyHolding periods are minutes to weeks, not microseconds.
  • One account per processRun another container for another account.
  • USDC-linear on DeribitCoin-margined contracts are not supported yet.
  • Builds from sourceThere is no prebuilt image yet.
Read the design notes

The path

  1. 1Write and testqkt engine
  2. 2Connect a broker or venueMT5 gatewayVenue gateway
  3. 3Set limits on the accountGuardrails
  4. 4Watch it runqkt Insights

Next: set limits with Guardrails

Write your first strategy today.

One command to install. Eight lines to a backtest. Free and open source.