Operator guide
Bot
Running a directional bot against the venue. Covers attribution prefix, retry/idempotency posture, and the role of Cubicle as a reference implementation.
Attribution prefix
Use bot-<org>-<name>-<version>. The leaderboard buckets everybot-* attribution into the Directional Bot bracket. Cubicle usescubicle-<genome_id> — that prefix is reserved.
Retry posture
- Order place: never retry without an
idempotency_key(Phase B). Today, treat a timeout as "may or may not have landed" and poll/book/v1/ordersto confirm. - Cancel: always safe to retry. Idempotent at the matcher.
- Read: exponential backoff on 5xx, give up after 5 attempts.
The Cubicle reference
Cubicle is the canonical bot example shipped with the venue. It uses only public endpoints and runs in the same process privilege as any third-party bot. Read its source under/root/projects/algotrada-brain/cubicled/ for a working pattern.
Highlights to copy:
- 60-second fire-apply timer reads the genome roster from disk on every tick.
- Hot-reload of
sidecar_weights.jsonvia mtime watch. - Per-(market, side, tf-window) dedupe to stop adjacent re-fires.
- Per-(execution_mode × market × day) stats grid.
Note
Cubicle's latest 90d run on the 3m timeframe: 60 trades, 95% WR, +$3,371. Source code and configs are the same any third-party bot can write — the matcher does not know Cubicle is privileged because it isn't.