Skip to content

dio

dio is an OCaml 5 multicore trading engine. It runs a ladder strategy (buying dips and selling into reversals) and a top-of-book market maker against Kraken, Hyperliquid, Lighter, Interactive Brokers, and Alpaca.

Each traded asset runs in its own OCaml domain. Order intents funnel through a lock-free executor, market data lands in lock-free ring buffers, and a capital-survival oracle sizes each position from the asset's all-time drawdown history. A terminal dashboard attaches to the running engine over a Unix domain socket.

See it running live: the Dio experiment →

This trades real money

dio places real orders and comes with no warranty. The auto-hedge strategy is experimental — test on a testnet before risking capital. Read the risk and terms before you start.

Quick start

The image is public — on GitHub Container Registry (ghcr.io/malciller/dio-domains) and Docker Hub (malciller/dio-domains). Pull it, extract the starter files, and run it:

IMAGE=ghcr.io/malciller/dio-domains:latest
docker pull $IMAGE
docker run --rm -v "$PWD:/out" --entrypoint cp $IMAGE /usr/share/doc/dio/config.example.json /out/config.json
docker run --rm -v "$PWD:/out" --entrypoint cp $IMAGE /usr/share/doc/dio/.env.example /out/.env
docker run --rm -v "$PWD:/out" --entrypoint cp $IMAGE /usr/share/doc/dio/compose.yaml /out/compose.yaml
# edit config.json and .env for your venues and instruments

docker compose up -d                 # start the engine
docker compose run --rm dashboard    # attach the dashboard (Ctrl-p Ctrl-q to detach)

The deployment guide is a step-by-step walkthrough for first-time users. Configuration documents every config.json key and environment variable.

Documentation

Document Contents
Deployment Docker, compose, building from source, and remote deployment.
Configuration config.json keys and environment variables.
Capital oracle The sizing mathematics.
Specification The full software product specification (DIO-SPS-001).
Risk and terms Terms of use and how to pull the image.

Source

The source, releases, and issue tracker are on GitHub: https://github.com/malciller/dio-domains. Bug reports and feature requests are welcome there.