diff --git a/README.md b/README.md index 760e104..e085146 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Triangular Arbitrage Bot Real-time triangular arbitrage detection and execution for KuCoin Spot. -Single C binary — WebSocket book feeds, triangle evaluation, and order placement in one process. +Single C binary. WebSocket book feeds, triangle evaluation, and order placement in one process. ## Architecture @@ -19,25 +19,10 @@ Monolithic single-process design using N+1 pthreads: Order Book KuCoin REST ``` -Each executor thread owns one slot. The evaluator writes the signal directly into the slot via a CAS state machine (FREE → CLAIMED → READY). The executor picks it up on the next spin iteration (nanoseconds). If all slots are busy or no free slot available, the signal is dropped — no queueing. +Each executor thread owns one slot. The evaluator writes the signal directly into the slot via a CAS state machine (FREE → CLAIMED → READY). The executor picks it up on the next spin iteration (nanoseconds). If all slots are busy or no free slot available, the signal is dropped. The evaluator runs **in-process** on every book update (no cooldown). -The executor does **not** re-evaluate — it trusts the signal as valid at emission time. - -## Status - -| Component | Status | -|---|---| -| WebSocket client (level2/top5 depth) | Complete — multi-connection, reconnect, private balance/orderChange channels | -| Order book store | Complete — bid/ask cache with sequence tracking | -| Triangle enumeration | Complete — builder pattern from /api/v2/symbols | -| Profitability evaluation | Complete — paper-trade simulation cascade matching executor | -| Per-slot signal delivery | Complete — per-thread slot with atomic CAS state machine, no queue | -| Order execution | Complete — HF market orders, fill event wait, balance wait | -| Fill channel | Complete — eventfd-based cross-thread fill delivery | -| Concurrent execution | Optional — configurable `concurrent_slots` (default 1) | -| Fee table | Complete — fetched from /api/v1/base-fee, pair-specific lookup | -| Balance wait | Optional — configurable `balance_wait_enabled` | +The executor does **not** re-evaluate, it trusts the signal as valid at emission time. ## Prerequisites @@ -103,4 +88,13 @@ tri_arb/ ├── config.yaml # Runtime config (gitignored) ├── config.yaml.example # Config template └── scripts/ # Deployment scripts + +## Disclaimer + +This software is designed for low-latency environments. It is only useful when +colocated with the exchange's servers. + +## Contact + +Nicolás Sánchez — nicolassanchez@tutanota.com ```