Commit Graph

6 Commits

Author SHA1 Message Date
tinkle-community
c53a563bff feat: data-driven autopilot profitability tuning + edge profile panel
Analysis of 410 live closed trades found the edge is real but was being
destroyed by execution: gross +$267 vs $245 fees; trades held <1h were net
negative (the <15m bucket alone: -$48 on $66 fees) while 1h+ holds carried
+$78; shorts lost $72 while longs made $94 — and both the prompt and the
engine were manufacturing those losers.

Changes, each tied to the data:
- Prompt: removed the 'MUST open at least one long AND one short every
  cycle' mandate (forced weak-signal shorts); direction is now data-driven
  with 'never open just to balance the book'. Added fee-awareness (round
  trip ≈ 0.1% notional, require expected move ≥ 3x cost) and aligned the
  hold discipline with the backend throttle.
- Forced book-balance opens now require |board z-score| ≥ 0.75 — the engine
  previously force-opened full-size 10x positions on near-neutral signals
  with hardcoded confidence 70. DirectionalCandidates now carries scores.
- Min AI-managed hold raised 45m → 60m (the 15-60m bucket still bled after
  the earlier throttle landed).
- Legacy prompt hygiene: vergex path drops long-only-era custom prompts and
  zh-era configs fall back wholesale to built-in English sections — fixes
  the two long-failing kernel prompt tests.
- New Edge Profile dashboard panel: net after fees by hold-time bucket and
  side, computed from recent closed trades, with an automatic takeaway line
  — the fee/churn regression detector, always visible. Fixed the
  HistoricalPosition timestamp types (epoch ms, not strings).
2026-07-07 19:21:49 +09:00
tinkle-community
110bf52908 feat: cream terminal redesign, English-only UI, autopilot launch fixes
- Redesign dashboard into a cream-paper + vermilion IBM Plex Mono terminal
  (live L2 order book, cost/liq map, WS K-line, signal matrix, orchestration
  topology, risk radar, execution log, current positions, equity curve)
- Convert all user-facing UI and backend strings/prompts from Chinese to
  English (multi-language retained, default English)
- Add /api/statistics/full endpoint + full-stats frontend wiring
- Fix Autopilot launch: reuse the existing trader instead of creating
  duplicates (eliminates repeat ~35s create cost and stale-trader 404s);
  launch sends 5m scan interval
- Fix unreadable toasts: cream theme with high-contrast text + per-type accent
- Silence background dashboard polls (getTraderConfig) to stop error-toast spam
2026-06-30 16:03:52 +08:00
tinkle-community
24f6421a73 feat: simplify Claw402 autopilot trading flow 2026-06-27 00:37:59 +08:00
tinkle-community
b15c2da3a9 feat(strategy): English-only XYZ stock prompt + flat-account aggression + tier promote
The strategy prompt the LLM saw for a Chinese-language single-symbol US
stock trader was an incoherent zh/en patchwork — schema in Chinese,
role definition in English, hard constraints in English, custom prompt
back in Chinese — with crypto-flavored BTC/ETH vs Altcoin labelling that
made no sense for ARM-USDC. The LLM responded by being conservative and
boring. When it finally tried to open, the validator rejected the order
because the validator classified the stock as an altcoin (1x equity cap
= 112 USDT max) while the prompt said 5x cap (= 559 USDT).

- kernel/engine_prompt.go (BuildSystemPrompt): all eight prompt sections
  now respect e.GetLanguage() consistently. For single-symbol
  Hyperliquid XYZ assets (US stocks, commodities, forex) we additionally
  force the language to English regardless of the strategy's stored
  language — US-equity reasoning lands better in English and prevents
  the language-mix incoherence. The Hard Constraints section drops the
  BTC/ETH vs Altcoin two-tier split when the strategy trades a single
  instrument and shows one Position Value Limit line tagged with the
  actual symbol. The JSON example uses that symbol instead of the
  legacy BTCUSDT/ETHUSDT. The legacy stored custom_prompt (which was
  Chinese for stock quick-creates) is replaced for XYZ assets by
  buildXYZStockCustomPrompt — a built-in English long-only stock
  briefing that includes a Flat-Account Rule: when Current Positions
  is None, the agent MUST open a long this cycle (size 40-60% probing
  if technicals are mixed, 80-100% on a confirmed breakout). This is
  the "be in the market, not on the sidelines" stance the quick-trade
  flow needed; wait/hold are reserved for when a position already
  exists.

- kernel/engine_position.go + trader/auto_trader_risk.go + agent/trade.go:
  Hyperliquid XYZ assets now use the BTC/ETH higher tier rather than
  the altcoin tier in all three position-value enforcement points. A
  shared isMajorAsset / isMajorTradeSymbol helper treats BTC/ETH crypto
  perps AND any IsXyzDexAsset symbol as the higher tier. With 5x
  equity cap, the AI's confident-open decisions on US stocks now pass
  validation instead of erroring out with "altcoin single coin position
  value cannot exceed 112 USDT".

Net result: on a flat US-stock single-symbol trader, the agent opens
a sized position with stop-loss and take-profit on the very first
flat cycle, manages it (trail / partial / cut), and reports honestly
to the user. The "agent does nothing" complaint is closed.
2026-05-29 22:15:35 +08:00
tinkle-community
736d2d385d refactor: optimize codebase encoding 2026-03-12 16:14:56 +08:00
tinkle-community
cb31782be4 refactor: split large files and clean up project structure
- Rename experience/ to telemetry/ for clarity
- Split 15+ large Go files (800-2200 lines) into focused modules:
  kernel/engine.go, backtest/runner.go, market/data.go, store/position.go,
  api/handler_trader.go, trader/auto_trader_grid.go, and 9 exchange traders
- Split frontend monoliths: types.ts, api.ts, AITradersPage.tsx, BacktestPage.tsx
  into domain-specific modules with barrel re-exports
- Remove stale files: screenshots, .yml.old, pyproject.toml
- Remove unused scripts/ and cmd/ directories
- Remove broken/outdated test files (network-dependent, stale expectations)
2026-03-12 12:53:57 +08:00