TaifoonTAIFOON
Taifoon · Docs
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/orders to 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.json via 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.