From cdcf0acea61c4699a532d70305645a719c22b30c Mon Sep 17 00:00:00 2001 From: jackyu66git Date: Sun, 3 May 2026 23:00:18 +0800 Subject: [PATCH] docs: update README for async entry, entering status, 50ms scan - Architecture diagram: async goroutine entry path - Trading Logic: async entry, entering status protection - Config note: floor rounding on both exchanges --- README.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 068b0f4..b273d58 100644 --- a/README.md +++ b/README.md @@ -24,11 +24,12 @@ PriceStore ─────────┼───────────── └─────────┬─────────┘ │ ┌───────────────▼────────────────┐ - │ Trader (trading logic only) │ - │ TryEntry / Tick / Exit │ - │ Maker fees, scale-in, stop │ - │ Synchronous entry (no goroutine)│ - │ NO display/stat calculations │ + │ Trader │ + │ TryEntry (async goroutine) │ + │ → placeOrder (REST) │ + │ Tick / Exit / Scale-in │ + │ Maker fees only │ + │ NO display/stat calculations │ └───────────────┬────────────────┘ │ ┌─────────▼─────────┐ @@ -97,7 +98,7 @@ Then open [http://localhost:8888](http://localhost:8888) for the Web dashboard. | `BITGET_API_KEY` / `BITGET_API_SECRET` / `BITGET_PASSPHRASE` | — | Bitget API credentials (test mode skips) | | `HL_PRIVATE_KEY` / `HL_ADDRESS` | — | HyperLiquid wallet credentials (test mode skips) | -> **Note:** Scan interval is fixed at **50ms**. At this rate the scanner catches every HyperLiquid ~200ms push without any jitter. +> **Note:** Scan interval is fixed at **50ms** (not configurable). Order sizes round DOWN (`math.Floor`) on both Bitget and HyperLiquid for consistency. ## Fee Model @@ -115,8 +116,10 @@ Round trip (2 legs entry + 2 legs exit): **0.07%** total fees. 1. **Scanner** runs every 50ms, checks all 6 coins for BG ↔ HL spread 2. **Entry** when net profit ≥ `TRADE_THRESHOLD` (after full round-trip fees) - Uses scan-time prices directly (no re-read from store to avoid WS jitter) - - Synchronous execution in the scanner tick (no goroutine delay) + - **Async goroutine** — `TryEntry` returns immediately, `executeEntry` runs in background - Direction sanity check (0.1% tolerance) prevents entry on reversed spreads + - `entering` status prevents `checkExit` / `checkScaleIn` during leg placement + - `entering` map prevents duplicate entries on the same coin 3. **Scale-in** adds another leg-worth when spread widens another 0.10% 4. **Exit** conditions (whichever hits first): - Spread converges to ≤ 0.02% → **价差收敛,止盈平仓**