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.