[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74005":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":16,"starSnapshotCount":16,"syncStatus":40,"lastSyncTime":41,"discoverSource":42},74005,"Vibe-Trading","HKUDS\u002FVibe-Trading","HKUDS","\"Vibe-Trading: Your Personal Trading Agent\"","https:\u002F\u002Fpypi.org\u002Fproject\u002Fvibe-trading-ai\u002F",null,"Python",11567,2250,90,5,0,595,2417,3164,1785,45,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36],"ai-agent","algorithmic-trading","backtesting","fintech","llm","mcp","multi-agent","python","quantitative-finance","trading","2026-06-12 02:03:21","\u003Cp align=\"center\">\n  \u003Cb>English\u003C\u002Fb> | \u003Ca href=\"README_zh.md\">中文\u003C\u002Fa> | \u003Ca href=\"README_ja.md\">日本語\u003C\u002Fa> | \u003Ca href=\"README_ko.md\">한국어\u003C\u002Fa> | \u003Ca href=\"README_ar.md\">العربية\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Ficon.png\" width=\"120\" alt=\"Vibe-Trading Logo\"\u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">Vibe-Trading: Your Personal Trading Agent\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cb>One Command to Empower Your Agent with Comprehensive Trading Capabilities\u003C\u002Fb>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.11%2B-3776AB?style=flat&logo=python&logoColor=white\" alt=\"Python\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBackend-FastAPI-009688?style=flat\" alt=\"FastAPI\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFrontend-React%2019-61DAFB?style=flat&logo=react&logoColor=white\" alt=\"React\">\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fvibe-trading-ai\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fvibe-trading-ai?style=flat&logo=pypi&logoColor=white\" alt=\"PyPI\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow?style=flat\" alt=\"License\">\u003C\u002Fa>\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHKUDS\u002F.github\u002Fblob\u002Fmain\u002Fprofile\u002FREADME.md\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFeishu-Group-E9DBFC?style=flat-square&logo=feishu&logoColor=white\" alt=\"Feishu\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHKUDS\u002F.github\u002Fblob\u002Fmain\u002Fprofile\u002FREADME.md\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWeChat-Group-C5EAB4?style=flat-square&logo=wechat&logoColor=white\" alt=\"WeChat\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002F2vDYc2w5\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join-7289DA?style=flat-square&logo=discord&logoColor=white\" alt=\"Discord\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fvibetrading.wiki\u002F\">Website\u003C\u002Fa> &nbsp;&middot;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fvibetrading.wiki\u002Fdocs\u002F\">Docs\u003C\u002Fa> &nbsp;&middot;&nbsp;\n  \u003Ca href=\"#-news\">News\u003C\u002Fa> &nbsp;&middot;&nbsp;\n  \u003Ca href=\"#-key-features\">Features\u003C\u002Fa> &nbsp;&middot;&nbsp;\n  \u003Ca href=\"#-shadow-account\">Shadow Account\u003C\u002Fa> &nbsp;&middot;&nbsp;\n  \u003Ca href=\"#-demo\">Demo\u003C\u002Fa> &nbsp;&middot;&nbsp;\n  \u003Ca href=\"#-quick-start\">Quick Start\u003C\u002Fa> &nbsp;&middot;&nbsp;\n  \u003Ca href=\"#-examples\">Examples\u003C\u002Fa> &nbsp;&middot;&nbsp;\n  \u003Ca href=\"#-api-server\">API \u002F MCP\u003C\u002Fa> &nbsp;&middot;&nbsp;\n  \u003Ca href=\"#-roadmap\">Roadmap\u003C\u002Fa> &nbsp;&middot;&nbsp;\n  \u003Ca href=\"#-contributing\">Contributing\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#-quick-start\">\u003Cimg src=\"assets\u002Fpip-install.svg\" height=\"45\" alt=\"pip install vibe-trading-ai\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## 📰 News\n\n- **2026-05-17** 🧬 **Alpha Zoo v1 (0.1.8)**: 452 pre-built quant alphas across 4 zoos — `qlib158` (Microsoft Qlib, Apache-2 attribution), `alpha101` (Kakushadze 101 Formulaic Alphas, paper rewrite from arXiv:1601.00991), `gtja191` (Guotai Junan 2014 short-horizon factor report), and `academic` (Fama-French 5 + Carhart price-based proxies). One-line CLI to bench any zoo on your universe: `vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025`. Ships with AST purity gate, lookahead-guard test, `pytest-socket` network kill-switch, per-zoo LICENSE.md, and a Developer Certificate of Origin (DCO) workflow for community PRs. Auto-rendered Alpha Library at [vibetrading.wiki\u002Falpha-library\u002F](https:\u002F\u002Fvibetrading.wiki\u002Falpha-library\u002F) + research-lab post [Which of the 191 GTJA alphas still work in 2026?](https:\u002F\u002Fvibetrading.wiki\u002Fresearch-lab\u002Fposts\u002Falpha-191-in-2026.html).\n- **2026-05-16** 🧪 **Research spine update**: Added a backend Hypothesis Registry with `create_hypothesis`, `update_hypothesis`, `link_backtest`, and `search_hypotheses`; external-content readers now attach warning-only `security_warnings`; and Shadow Account scanning now uses deterministic OHLCV feature evaluation instead of the old calendar-phase stub.\n- **2026-05-15** 🪪 The run detail page now surfaces the Trust Layer run card alongside metrics and artifacts, completing the UI side of the `run_card.json` work landed on 2026-05-12. `PersistentMemory.add()` was also hardened on length, empty\u002Fwhitespace-only names, and C0\u002FC1 control bytes from the #108\u002F#109\u002F#110 triage ([#112](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F112), thanks @Teerapat-Vatpitak).\n\n\u003Cdetails>\n\u003Csummary>Earlier news\u003C\u002Fsummary>\n\n- **2026-05-14** 🌐 the public wiki is now live at [vibetrading.wiki](https:\u002F\u002Fvibetrading.wiki\u002F) with docs, tutorials, Research Lab, and Alpha Library sections deployed through Cloudflare Pages. Persistent memory is also inspectable from the CLI via `vibe-trading memory list\u002Fshow\u002Fsearch\u002Fforget` ([#102](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F102), thanks @Teerapat-Vatpitak), and memory tokenization\u002Fslugs now support Thai, Arabic, Hebrew, and Cyrillic text ([#104](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F104)).\n- **2026-05-13** 🧭 Swarm runs now ground workers with fetched market data and cleaner persisted reports ([#93](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F93), [#84](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F84)).\n- **2026-05-12** 🧾 Backtests now emit `run_card.json` and `run_card.md` alongside artifacts for reproducible research runs.\n- **2026-05-11** 🧭 **Memory slugs, swarm accounting, and CLI preflight**: Persistent memory now preserves CJK characters when generating file slugs, preventing silent filename collisions for Chinese\u002FJapanese\u002FKorean notes ([#95](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F95), thanks @voidborne-d). Swarm run totals now prefer provider-reported token usage with the existing estimate fallback ([#94](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F94), thanks @Teerapat-Vatpitak), and the CLI run UI gained a startup preflight check for common environment issues ([#96](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F96), thanks @ykykj).\n- **2026-05-10** 🧱 **Regression guardrails + run metadata**: Memory recall now treats underscores as token boundaries, so snake_case saved memories such as `mcp_wiring_test` match natural-language queries like \"mcp wiring\" ([#87](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F87), thanks @hp083625). The MCP server has a subprocess smoke test covering initialize → `tools\u002Flist` → `tools\u002Fcall` to guard the first-call deadlock path ([#86](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F86)), while low-risk hardening landed for Windows path-sensitive tests, API best-effort exception handling, backtest `run_dir` allowed-root validation, and SwarmRun provider\u002Fmodel metadata ([#88](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F88), [#90](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F90), [#91](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F91), [#92](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F92), thanks @Teerapat-Vatpitak).\n- **2026-05-09** 🛡️ **API path hardening + MCP server stability**: API run\u002Fsession routes now validate path IDs before lookup, rejecting malformed newline-containing parameters and pinning the behavior in the auth\u002Fsecurity regression suite ([#80](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F80), thanks @SJoon99). The MCP server now pre-warms the tool registry on the main thread before serving `tools\u002Fcall`, avoiding a first-call deadlock in lazy tool discovery ([#85](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F85), thanks @Teerapat-Vatpitak). The Vite dev proxy also honors `VITE_API_URL` for non-default backend targets ([#82](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F82), thanks @voidborne-d).\n- **2026-05-08** 🧾 **Tushare statement fields in filters**: A-share daily backtests can now request PIT-safe financial statement fields through `fundamental_fields`, so signal engines can screen on `income_total_revenue`, `income_n_income`, `balancesheet_total_hldr_eqy_exc_min_int`, `fina_indicator_roe`, and similar table-prefixed columns after their announcement\u002Fdisclosure dates ([#76](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F76), thanks @mrbob-git). Follow-up hardening makes explicit statement-field requests fail fast if Tushare enrichment cannot run, instead of silently falling back to raw price bars ([#77](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F77)).\n- **2026-05-07** 📈 **Tushare fundamentals + community triage**: Added a point-in-time `TushareFundamentalProvider` contract for fundamental research workflows, with regression coverage for the project `TUSHARE_TOKEN` environment path ([#74](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F74)). Community triage also clarified that Vibe-Trading keeps rapid iteration focused on one UI language for now, avoids adding redundant search dependencies while DuckDuckGo-backed `web_search` is already bundled, and treats unofficial hosted deployments as untrusted places for API keys or data-source tokens.\n- **2026-05-06** 🚀 **v0.1.7 released** ([Release notes](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Freleases\u002Ftag\u002Fv0.1.7), `pip install -U vibe-trading-ai`): Security-boundary hardening is now published on PyPI and ClawHub, covering safer API\u002Fread\u002Fupload\u002Ffile\u002FURL\u002Fgenerated-code\u002Fshell-tool\u002FDocker defaults while keeping localhost CLI\u002FWeb UI workflows low-friction. This cycle also includes Web UI Settings, correlation heatmap, OpenAI Codex OAuth, A-share pre-ST filtering, interactive CLI UX, swarm preset inspection, dividend analysis, dev workflow polish, and audited frontend build-dependency floors. Thanks to the 0.1.7 contributors and to lemi9090 (S2W) for coordinated security validation.\n- **2026-05-05** 🛡️ **Security boundary follow-up**: Completes the remaining security-boundary hardening around explicit CORS origins, Settings credential indicators, web URL reading, and Shadow Account code generation, with regression tests added for each path. Normal localhost CLI\u002FWeb UI workflows stay the same; remote deployments should continue using `API_AUTH_KEY` and explicit trusted origins.\n- **2026-05-04** 🖥️ **Interactive CLI UX + CI cleanup**: Interactive mode now has a live bottom status bar showing provider\u002Fmodel, session duration, last-run latency, and cumulative tool-call stats, plus prompt history navigation and cursor editing with arrow keys via `prompt_toolkit` ([#69](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F69)). The CLI still falls back to Rich prompts when `prompt_toolkit` or a TTY is unavailable. CI path expectations were also aligned with the hardened file-import sandbox and cross-platform `\u002Ftmp` resolution, returning main to green ([`bb67dc7`](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fcommit\u002Fbb67dc7cfcc11553c57d8962bee56381dca43758)).\n- **2026-05-03** 🛡️ **Security hardening patch**: Tightens default API authentication for non-local deployments, protects sensitive run\u002Fsession\u002Fswarm reads, restricts upload and local file-reading boundaries, gates shell-capable tools by entry point, validates generated strategy loading before import, and runs the Docker image as a non-root user with a localhost-only published port by default. Local CLI and localhost Web UI workflows remain low-friction; remote API\u002FWeb deployments should set `API_AUTH_KEY`.\n- **2026-05-02** 🧭 **Dividend analysis + sharper roadmap**: Added the `dividend-analysis` skill for income stocks, payout sustainability, dividend growth, shareholder yield, ex-dividend mechanics, and yield-trap checks, pinned by bundled-skill regression tests. The public roadmap now focuses on upcoming work: Research Autopilot, Data Bridge, Options Lab, Portfolio Studio, Alpha Zoo, Research Delivery, Trust Layer, and Community sharing.\n- **2026-05-01** 🔥 **Correlation heatmap + OpenAI Codex OAuth + A-share pre-ST filter**: New correlation dashboard\u002FAPI computes rolling return correlations and renders an ECharts heatmap for portfolio and symbol analysis ([#64](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F64)). OpenAI Codex provider support now uses ChatGPT OAuth via `vibe-trading provider login openai-codex`, with Settings metadata and adapter regression tests ([#65](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F65)). Added and hardened the `ashare-pre-st-filter` skill for A-share ST\u002F*ST risk screening, including Sina penalty relevance filtering so securities-account mentions do not inflate E2 counts ([#63](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F63)).\n- **2026-04-30** ⚙️ **Web UI Settings + validation CLI hardening**: New Settings page for LLM provider\u002Fmodel, base URL, reasoning effort, and data source credentials, backed by local\u002Fauth-protected settings APIs and data-driven provider metadata ([#57](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F57)). Also hardens `python -m backtest.validation \u003Crun_dir>` so missing, blank, malformed, non-existent, and non-directory inputs fail with clear operator-facing messages before validation starts ([#60](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F60)).\n- **2026-04-28** 🚀 **v0.1.6 released** (`pip install -U vibe-trading-ai`): Fixes `vibe-trading --swarm-presets` returning empty after `pip install` \u002F `uv tool install` ([#55](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fissues\u002F55)) — preset YAMLs now bundled inside the `src.swarm` package and pinned by a 6-test regression suite. Plus AKShare loader correctly routes ETFs (`510300.SH`) and forex (`USDCNH`) to the right endpoints with hardened registry fallback. Rolls up everything since v0.1.5: benchmark comparison panel, `\u002Fupload` streaming + size limits, Futu loader (HK + A-share), vnpy export skill, security hardening, frontend lazy loading (688KB → 262KB).\n- **2026-04-27** 📊 **Benchmark panel + upload safety**: Backtest output now ships a benchmark comparison panel (ticker \u002F benchmark return \u002F excess return \u002F information ratio) with yfinance-backed resolution for SPY, CSI 300, etc. ([#48](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fissues\u002F48)). Plus `\u002Fupload` streams the request body in 1 MB chunks and aborts past `MAX_UPLOAD_SIZE`, bounding memory under oversized\u002Fmalformed clients ([#53](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F53)) — pinned by a 4-case regression suite.\n- **2026-04-22** 🛡️ **Hardening + new integrations**: Path containment enforced in `safe_path` + journal\u002Fshadow tool sandbox, `MANIFEST.in` ships `.env.example` \u002F tests \u002F Docker files in sdist, route-level lazy loading shrinks frontend initial bundle 688KB → 262KB. Plus Futu data loader for HK & A-share equities ([#47](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F47)) and vnpy CtaTemplate export skill ([#46](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F46)).\n- **2026-04-21** 🛡️ **Workspace + docs**: Relative `run_dir` normalized to active run dir ([#43](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F43)). README usage examples ([#45](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F45)).\n- **2026-04-20** 🔌 **Reasoning + Swarm**: `reasoning_content` preserved across all `ChatOpenAI` paths — Kimi \u002F DeepSeek \u002F Qwen thinking work end-to-end ([#39](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fissues\u002F39)). Swarm streaming + clean Ctrl+C ([#42](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fissues\u002F42)).\n- **2026-04-19** 📦 **v0.1.5**: Published to PyPI & ClawHub. `python-multipart` CVE floor bump, 5 new MCP tools wired (`analyze_trade_journal` + 4 shadow-account tools), `pattern_recognition` → `pattern` registry fix, Docker dep parity, SKILL manifest synced (22 MCP tools \u002F 71 skills).\n- **2026-04-18** 👥 **Shadow Account**: Extract your strategy rules from a broker journal → backtest the shadow across markets → 8-section HTML\u002FPDF report showing exactly how much you leave on the table (rule violations, early exits, missed signals, counterfactual trades). 4 new tools, 1 skill, 32 tools total. Trade Journal + Shadow Account samples now live in the web UI welcome screen.\n- **2026-04-17** 📊 **Trade Journal Analyzer + Universal File Reader**: Upload broker exports (同花顺\u002F东财\u002F富途\u002Fgeneric CSV) → auto trading profile (holding days, win rate, PnL ratio, drawdown) + 4 bias diagnostics (disposition effect, overtrading, chasing momentum, anchoring). `read_document` now dispatches PDF, Word, Excel, PowerPoint, images (OCR), and 40+ text formats behind one unified call.\n- **2026-04-16** 🧠 **Agent Harness**: Persistent cross-session memory, FTS5 session search, self-evolving skills (full CRUD), 5-layer context compression, read\u002Fwrite tool batching. 27 tools, 107 new tests.\n- **2026-04-15** 🤖 **Z.ai + MiniMax**: Z.ai provider ([#35](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F35)), MiniMax temperature fix + model update ([#33](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F33)). 13 providers.\n- **2026-04-14** 🔧 **MCP Stability**: Fixed backtest tool `Connection closed` error on stdio transport ([#32](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F32)).\n- **2026-04-13** 🌐 **Cross-Market Composite Backtest**: New `CompositeEngine` backtests mixed-market portfolios (e.g. A-shares + crypto) with shared capital pool and per-market rules. Also fixed swarm template variable fallback and frontend timeout.\n- **2026-04-12** 🌍 **Multi-Platform Export**: `\u002Fpine` exports strategies to TradingView (Pine Script v6), TDX (通达信\u002F同花顺\u002F东方财富), and MetaTrader 5 (MQL5) in one command.\n- **2026-04-11** 🛡️ **Reliability & DX**: `vibe-trading init` .env bootstrap ([#19](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F19)), preflight checks, runtime data-source fallback, hardened backtest engine. Multi-language README ([#21](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fpull\u002F21)).\n- **2026-04-10** 📦 **v0.1.4**: Docker fix ([#8](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fissues\u002F8)), `web_search` MCP tool, 12 LLM providers, `akshare`\u002F`ccxt` deps. Published to PyPI and ClawHub.\n- **2026-04-09** 📊 **Backtest Wave 2**: ChinaFutures, GlobalFutures, Forex, Options v2 engines. Monte Carlo, Bootstrap CI, Walk-Forward validation.\n- **2026-04-08** 🔧 **Multi-market backtest** with per-market rules, Pine Script v6 export, 5 data sources with auto-fallback.\n\n\u003C\u002Fdetails>\n\n---\n\n## ✨ Key Features\n\n\u003Cdiv align=\"center\">\n\u003Ctable align=\"center\" width=\"94%\" style=\"width:94%; margin-left:auto; margin-right:auto;\">\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"50%\" valign=\"top\">\n      \u003Cimg src=\"assets\u002Ffeature-self-improving-trading-agent.png\" height=\"130\" alt=\"Self-improving trading agent\"\u002F>\u003Cbr>\n      \u003Ch3>🔍 Self-Improving Trading Agent\u003C\u002Fh3>\n      \u003Cdiv align=\"left\">\n        • Natural-language market research\u003Cbr>\n        • Strategy drafts and file\u002Fweb analysis\u003Cbr>\n        • Memory-backed workflows\n      \u003C\u002Fdiv>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"50%\" valign=\"top\">\n      \u003Cimg src=\"assets\u002Ffeature-multi-agent-trading-teams.png\" height=\"130\" alt=\"Multi-agent trading teams\"\u002F>\u003Cbr>\n      \u003Ch3>🐝 Multi-Agent Trading Teams\u003C\u002Fh3>\n      \u003Cdiv align=\"left\">\n        • Investment, quant, crypto, and risk teams\u003Cbr>\n        • Streaming progress and persisted reports\u003Cbr>\n        • Workers grounded with fetched market data\n      \u003C\u002Fdiv>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"50%\" valign=\"top\">\n      \u003Cimg src=\"assets\u002Ffeature-cross-market-data-backtesting.png\" height=\"130\" alt=\"Cross-market data and backtesting\"\u002F>\u003Cbr>\n      \u003Ch3>📊 Cross-Market Data & Backtesting\u003C\u002Fh3>\n      \u003Cdiv align=\"left\">\n        • A\u002FHK\u002FUS equities, crypto, futures, and forex\u003Cbr>\n        • Data fallback and composite backtests\u003Cbr>\n        • PIT data, validation, and run cards\n      \u003C\u002Fdiv>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"50%\" valign=\"top\">\n      \u003Cimg src=\"assets\u002Ffeature-shadow-account.png\" height=\"130\" alt=\"Shadow Account\"\u002F>\u003Cbr>\n      \u003Ch3>👥 Shadow Account\u003C\u002Fh3>\n      \u003Cdiv align=\"left\">\n        • Broker-journal behavior diagnostics\u003Cbr>\n        • Rule-based Shadow Account comparisons\u003Cbr>\n        • Exportable audit reports and strategy code\n      \u003C\u002Fdiv>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n## 💡 What Is Vibe-Trading?\n\nVibe-Trading is an open-source research workspace for turning finance questions into runnable analysis. It connects natural-language prompts to market-data loaders, strategy generation, backtest engines, reports, exports, and persistent research memory.\n\nIt is designed for research, simulation, and backtesting. It does not execute live trades.\n\n---\n\n## ✨ What You Can Do\n\n| Task | Output |\n|------|--------|\n| **Ask a trading question** | Market research with tools, data, documents, and reusable session context. |\n| **Backtest a strategy idea** | Strategy code, metrics, benchmark context, validation artifacts, and run cards. |\n| **Review your own trades** | Broker-journal parsing, behavior diagnostics, rule extraction, and Shadow Account comparisons. |\n| **Improve repeated research** | Persistent memory and editable skills turn useful routines into reusable workflows. |\n| **Run analyst teams** | Multi-agent research reviews for investment, quant, crypto, macro, and risk workflows. |\n| **Ship usable artifacts** | Reports, TradingView Pine Script, TDX, MetaTrader 5, MCP tools, and later research sessions. |\n| **Bench a pre-built alpha zoo** | One-line IC + alive\u002Freversed\u002Fdead categorisation across 452 alphas (Qlib 158 + Kakushadze 101 + GTJA 191 + FF5 + Carhart) on your universe. |\n\n---\n\n## ⚡ Quick Example\n\n```bash\npip install vibe-trading-ai\n\n# Natural-language research\nvibe-trading run -p \"Backtest a BTC-USDT 20\u002F50 moving-average strategy for 2024, summarize return and drawdown, then export the report\"\n\n# Bench a pre-built alpha zoo (one line)\nvibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20\n```\n\n```bash\nvibe-trading --upload trades_export.csv\nvibe-trading run -p \"Analyze my trading behavior, extract my shadow strategy, and compare it with my actual trades\"\n```\n\n---\n\n## 👥 Shadow Account\n\nShadow Account starts from your own trading records instead of a generic strategy template.\n\nUpload a broker export, let the agent summarize your behavior, then compare the actual trading path with a rule-based shadow strategy.\n\n| Step | Agent output |\n|------|--------------|\n| **1. Read your journal** | Parses broker exports from 同花顺, 东方财富, 富途, and generic CSV formats. |\n| **2. Profile your behavior** | Holding days, win rate, PnL ratio, drawdown, disposition effect, overtrading, momentum chasing, and anchoring checks. |\n| **3. Extract your rules** | Turns recurring entries\u002Fexits into an explicit strategy profile instead of a hand-wavy summary. |\n| **4. Run the shadow** | Backtests the extracted rules and highlights rule breaks, early exits, missed signals, and alternative trade paths. |\n| **5. Deliver the report** | Produces an HTML\u002FPDF report that can be inspected, archived, or refined in a later session. |\n\n```bash\nvibe-trading --upload trades_export.csv\nvibe-trading run -p \"Analyze my trading behavior, extract my shadow strategy, and compare it with my actual trades\"\n```\n\n---\n\n## 🧪 Research Workflow\n\nMost runs follow the same evidence path: route the request, load the right market context, execute tools, validate outputs, and keep the artifacts inspectable.\n\n| Layer | What happens |\n|-------|--------------|\n| **Plan** | Selects the relevant finance skills, tools, data sources, and swarm preset when useful. |\n| **Ground** | Pulls A-shares, HK\u002FUS equities, crypto, futures, forex, documents, or web context through the available loaders. |\n| **Execute** | Generates testable strategy code, runs tools, and uses the matching backtest engine or analysis workflow. |\n| **Validate** | Adds metrics, benchmark comparison, Monte Carlo, Bootstrap, Walk-Forward, run cards, and warnings where applicable. |\n| **Deliver** | Returns reports, artifacts, tool traces, and exports for TradingView, TDX, MetaTrader 5, MCP clients, or later sessions. |\n\n---\n\n## 🔩 Detailed Capabilities\n\nDetailed inventories are folded below to keep the main README scannable. Open them when you want to inspect the available building blocks.\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Finance Skill Library\u003C\u002Fb> \u003Csub>75 skills across 8 categories\u003C\u002Fsub>\u003C\u002Fsummary>\n\n- 📊 75 specialized finance skills organized into 8 categories\n- 🌐 Complete coverage from traditional markets to crypto & DeFi\n- 🔬 Comprehensive capabilities spanning data sourcing to quantitative research\n\n| Category | Skills | Examples |\n|----------|--------|----------|\n| Data Source | 6 | `data-routing`, `tushare`, `yfinance`, `okx-market`, `akshare`, `ccxt` |\n| Strategy | 17 | `strategy-generate`, `cross-market-strategy`, `technical-basic`, `candlestick`, `ichimoku`, `elliott-wave`, `smc`, `multi-factor`, `ml-strategy` |\n| Analysis | 17 | `factor-research`, `macro-analysis`, `global-macro`, `valuation-model`, `earnings-forecast`, `credit-analysis`, `dividend-analysis` |\n| Asset Class | 9 | `options-strategy`, `options-advanced`, `convertible-bond`, `etf-analysis`, `asset-allocation`, `sector-rotation` |\n| Crypto | 7 | `perp-funding-basis`, `liquidation-heatmap`, `stablecoin-flow`, `defi-yield`, `onchain-analysis` |\n| Flow | 7 | `hk-connect-flow`, `us-etf-flow`, `edgar-sec-filings`, `financial-statement`, `adr-hshare` |\n| Tool | 11 | `backtest-diagnose`, `report-generate`, `pine-script`, `doc-reader`, `web-reader`, `vnpy-export`, `alpha-zoo` |\n| Risk Analysis | 1 | `ashare-pre-st-filter` |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Preset Trading Teams\u003C\u002Fb> \u003Csub>29 swarm presets\u003C\u002Fsub>\u003C\u002Fsummary>\n\n- 🏢 29 ready-to-use agent teams\n- ⚡ Pre-configured finance workflows\n- 🎯 Investment, trading & risk management presets\n\n| Preset | Workflow |\n|--------|----------|\n| `investment_committee` | Bull\u002Fbear debate → risk review → PM final call |\n| `global_equities_desk` | A-share + HK\u002FUS + crypto researcher → global strategist |\n| `crypto_trading_desk` | Funding\u002Fbasis + liquidation + flow → risk manager |\n| `earnings_research_desk` | Fundamental + revision + options → earnings strategist |\n| `macro_rates_fx_desk` | Rates + FX + commodity → macro PM |\n| `quant_strategy_desk` | Screening + factor research → backtest → risk audit |\n| `technical_analysis_panel` | Classic TA + Ichimoku + harmonic + Elliott + SMC → consensus |\n| `risk_committee` | Drawdown + tail risk + regime review → sign-off |\n| `global_allocation_committee` | A-shares + crypto + HK\u002FUS → cross-market allocation |\n\n\u003Csub>Plus 20+ additional specialist presets — run vibe-trading --swarm-presets to explore all.\n\n\u003C\u002Fsub>\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Alpha Zoo\u003C\u002Fb> \u003Csub>452 pre-built quant alphas across 4 zoos\u003C\u002Fsub>\u003C\u002Fsummary>\n\n- 🧬 452 cross-sectional alphas, lookahead-banned at the operator layer\n- 📈 IC + IR + alive\u002Freversed\u002Fdead categorisation in one CLI command\n- 🔬 AST purity gate + 300-row lookahead sentinel test + `pytest-socket` network kill-switch\n- 📦 Apache-2 attribution for Qlib; per-zoo `LICENSE.md` declaring formulas as mathematical content\n- 🤝 Developer Certificate of Origin (DCO) sign-off workflow for community PRs\n\n| Zoo | Count | Source | License |\n|-----|-------|--------|---------|\n| **qlib158** | 154 | Microsoft Qlib `Alpha158` (Apache-2.0, commit-pinned) | Apache-2.0 |\n| **alpha101** | 101 | Kakushadze (2015), \"101 Formulaic Alphas\", arXiv:1601.00991 | Formulas are mathematical content |\n| **gtja191** | 191 | Guotai Junan (2014), \"191 Short-period Trading Alpha Factors\" | Formulas are mathematical content |\n| **academic** | 6 | Fama-French 5 + Carhart momentum (price-based proxies) | Public academic literature |\n\nRun `vibe-trading alpha list` to browse, `vibe-trading alpha show \u003Cid>` for formulas + source, `vibe-trading alpha bench --zoo X --universe Y --period Z` to score a whole zoo.\n\n\u003C\u002Fdetails>\n\n## 🎬 Demo\n\n\u003Cdiv align=\"center\">\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F4e4dcb80-7358-4b9a-92f0-1e29612e6e86\n\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F3754a414-c3ee-464f-b1e8-78e1a74fbd30\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd colspan=\"2\" align=\"center\">\u003Csub>☝️ Natural-language backtest & multi-agent swarm debate — Web UI + CLI\u003C\u002Fsub>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n---\n\n## 🚀 Quick Start\n\n### One-line install (PyPI)\n\n```bash\npip install vibe-trading-ai\n```\n\nThen run a first research task:\n\n```bash\nvibe-trading init\nvibe-trading run -p \"Backtest a BTC-USDT 20\u002F50 moving-average strategy for 2024 and summarize return and drawdown\"\n```\n\n> **Package name vs commands:** The PyPI package is `vibe-trading-ai`. Once installed, you get three commands:\n>\n> | Command | Purpose |\n> |---------|---------|\n> | `vibe-trading` | Interactive CLI \u002F TUI |\n> | `vibe-trading serve` | Launch FastAPI web server |\n> | `vibe-trading-mcp` | Start MCP server (for Claude Desktop, OpenClaw, Cursor, etc.) |\n\n```bash\nvibe-trading init              # interactive .env setup\nvibe-trading                   # launch CLI\nvibe-trading serve --port 8899 # launch web UI\nvibe-trading-mcp               # start MCP server (stdio)\n```\n\n### Or choose a path\n\n| Path | Best for | Time |\n|------|----------|------|\n| **A. Docker** | Try it now, zero local setup | 2 min |\n| **B. Local install** | Development, full CLI access | 5 min |\n| **C. MCP plugin** | Plug into your existing agent | 3 min |\n| **D. ClawHub** | One command, no cloning | 1 min |\n\n### Prerequisites\n\n- An **LLM API key** from any supported provider — or run locally with **Ollama** (no key needed)\n- **Python 3.11+** for Path B\n- **Docker** for Path A\n- OpenAI Codex can also be used with ChatGPT OAuth: set `LANGCHAIN_PROVIDER=openai-codex`, then run `vibe-trading provider login openai-codex`. This does not use `OPENAI_API_KEY`.\n\n> **Supported LLM providers:** OpenRouter, OpenAI, DeepSeek, Gemini, Groq, DashScope\u002FQwen, Zhipu, Moonshot\u002FKimi, MiniMax, Xiaomi MIMO, Z.ai, Ollama (local). See `.env.example` for config.\n\n> **Tip:** All markets work without any API keys thanks to automatic fallback. yfinance (HK\u002FUS), OKX (crypto), and AKShare (A-shares, US, HK, futures, forex) are all free. Tushare token is optional — AKShare covers A-shares as a free fallback.\n\n### Path A: Docker (zero setup)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading.git\ncd Vibe-Trading\ncp agent\u002F.env.example agent\u002F.env\n# Edit agent\u002F.env — uncomment your LLM provider and set API key\ndocker compose up --build\n```\n\nOpen `http:\u002F\u002Flocalhost:8899`. Backend + frontend in one container.\n\nDocker publishes the backend on `127.0.0.1:8899` by default and runs the app as a non-root container user. If you intentionally expose the API beyond your own machine, set a strong `API_AUTH_KEY` and send `Authorization: Bearer \u003Ckey>` from clients.\n\n### Path B: Local install\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading.git\ncd Vibe-Trading\npython -m venv .venv\n\n# Activate\nsource .venv\u002Fbin\u002Factivate          # Linux \u002F macOS\n# .venv\\Scripts\\Activate.ps1       # Windows PowerShell\n\npip install -e .\ncp agent\u002F.env.example agent\u002F.env   # Edit — set your LLM provider API key\nvibe-trading                       # Launch interactive TUI\n```\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Start web UI (optional)\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\n# Terminal 1: API server\nvibe-trading serve --port 8899\n\n# Terminal 2: Frontend dev server\ncd frontend && npm install && npm run dev\n```\n\nOpen `http:\u002F\u002Flocalhost:5899`. The frontend proxies API calls to `localhost:8899`.\n\n**Production mode (single server):**\n\n```bash\ncd frontend && npm run build && cd ..\nvibe-trading serve --port 8899     # FastAPI serves dist\u002F as static files\n```\n\n\u003C\u002Fdetails>\n\n### Path C: MCP plugin\n\nSee [MCP Plugin](#-mcp-plugin) section below.\n\n### Path D: ClawHub (one command)\n\n```bash\nnpx clawhub@latest install vibe-trading --force\n```\n\nThe skill + MCP config is downloaded into your agent's skills directory. See [ClawHub install](#-mcp-plugin) for details.\n\n---\n\n## 🧠 Environment Variables\n\nCopy `agent\u002F.env.example` to `agent\u002F.env` and uncomment the provider block you want. Each provider needs 3-4 variables:\n\n| Variable | Required | Description |\n|----------|:--------:|-------------|\n| `LANGCHAIN_PROVIDER` | Yes | Provider name (`openrouter`, `deepseek`, `groq`, `ollama`, etc.) |\n| `\u003CPROVIDER>_API_KEY` | Yes* | API key (`OPENROUTER_API_KEY`, `DEEPSEEK_API_KEY`, etc.) |\n| `\u003CPROVIDER>_BASE_URL` | Yes | API endpoint URL |\n| `LANGCHAIN_MODEL_NAME` | Yes | Model name (e.g. `deepseek-v4-pro`) |\n| `TUSHARE_TOKEN` | No | Tushare Pro token for A-share data (falls back to AKShare) |\n| `TIMEOUT_SECONDS` | No | LLM call timeout, default 120s |\n| `API_AUTH_KEY` | Recommended for network deployments | Bearer token required when the API is reachable from non-local clients |\n| `VIBE_TRADING_ENABLE_SHELL_TOOLS` | No | Explicit opt-in for shell-capable tools in remote API\u002FMCP-SSE style deployments |\n| `VIBE_TRADING_ALLOWED_FILE_ROOTS` | No | Extra comma-separated roots for document and broker-journal imports |\n| `VIBE_TRADING_ALLOWED_RUN_ROOTS` | No | Extra comma-separated roots for generated-code run directories |\n\n\u003Csub>* Ollama does not require an API key. OpenAI Codex uses ChatGPT OAuth and stores tokens via `oauth-cli-kit`, not in `agent\u002F.env`.\u003C\u002Fsub>\n\n**Free data (no key needed):** A-shares via AKShare, HK\u002FUS equities via yfinance, crypto via OKX, 100+ crypto exchanges via CCXT. The system automatically selects the best available source for each market.\n\n### 🎯 Recommended Models\n\nVibe-Trading is a tool-heavy agent — skills, backtests, memory, and swarms all flow through tool calls. Model choice directly decides whether the agent *uses* its tools or fabricates answers from training data.\n\n| Tier | Examples | When to use |\n|------|----------|-------------|\n| **Best** | `anthropic\u002Fclaude-opus-4.7`, `anthropic\u002Fclaude-sonnet-4.6`, `openai\u002Fgpt-5.4`, `google\u002Fgemini-3.1-pro-preview` | Complex swarms (3+ agents), long research sessions, paper-grade analysis |\n| **Sweet spot** (default) | `deepseek-v4-pro`, `deepseek\u002Fdeepseek-v4-pro`, `x-ai\u002Fgrok-4.20`, `z-ai\u002Fglm-5.1`, `moonshotai\u002Fkimi-k2.5`, `qwen\u002Fqwen3-max-thinking` | Daily driver — reliable tool-calling at ~1\u002F10 the cost |\n| **Avoid for agent use** | `*-nano`, `*-flash-lite`, `*-coder-next`, small \u002F distilled variants | Tool-calling is unreliable — the agent will appear to \"answer from memory\" instead of loading skills or running backtests |\n\nThe default `agent\u002F.env.example` ships with DeepSeek official API + `deepseek-v4-pro`; OpenRouter users can use `deepseek\u002Fdeepseek-v4-pro`.\n\n---\n\n## 🖥 CLI Reference\n\n```bash\nvibe-trading               # interactive TUI\nvibe-trading run -p \"...\"  # single run\nvibe-trading serve         # API server\nvibe-trading alpha list    # browse 452 pre-built alphas; show \u002F bench \u002F compare \u002F export-manifest sub-commands available\n```\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Slash commands inside TUI\u003C\u002Fb>\u003C\u002Fsummary>\n\n| Command | Description |\n|---------|-------------|\n| `\u002Fhelp` | Show all commands |\n| `\u002Fskills` | List all 75 finance skills |\n| `\u002Fswarm` | List 29 swarm team presets |\n| `\u002Fswarm run \u003Cpreset> [vars_json]` | Run a swarm team with live streaming |\n| `\u002Fswarm list` | Swarm run history |\n| `\u002Fswarm show \u003Crun_id>` | Swarm run details |\n| `\u002Fswarm cancel \u003Crun_id>` | Cancel a running swarm |\n| `\u002Flist` | Recent runs |\n| `\u002Fshow \u003Crun_id>` | Run details + metrics |\n| `\u002Fcode \u003Crun_id>` | Generated strategy code |\n| `\u002Fpine \u003Crun_id>` | Export indicators (TradingView + TDX + MT5) |\n| `\u002Ftrace \u003Crun_id>` | Full execution replay |\n| `\u002Fcontinue \u003Crun_id> \u003Cprompt>` | Continue a run with new instructions |\n| `\u002Fsessions` | List chat sessions |\n| `\u002Fsettings` | Show runtime config |\n| `\u002Fclear` | Clear screen |\n| `\u002Fquit` | Exit |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Single run & flags\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\nvibe-trading run -p \"Backtest BTC-USDT MACD strategy, last 30 days\"\nvibe-trading run -p \"Analyze AAPL momentum\" --json\nvibe-trading run -f strategy.txt\necho \"Backtest 000001.SZ RSI\" | vibe-trading run\n```\n\n```bash\nvibe-trading -p \"your prompt\"\nvibe-trading --skills\nvibe-trading --swarm-presets\nvibe-trading --swarm-run investment_committee '{\"topic\":\"BTC outlook\"}'\nvibe-trading --list\nvibe-trading --show \u003Crun_id>\nvibe-trading --code \u003Crun_id>\nvibe-trading --pine \u003Crun_id>           # Export indicators (TradingView + TDX + MT5)\nvibe-trading --trace \u003Crun_id>\nvibe-trading --continue \u003Crun_id> \"refine the strategy\"\nvibe-trading --upload report.pdf\n```\n\n```bash\nvibe-trading alpha list --zoo gtja191 --limit 10\nvibe-trading alpha show gtja191_171\nvibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20\n```\n\n\u003C\u002Fdetails>\n\n---\n\n## 💡 Examples\n\n### Strategy & Backtesting\n\n```bash\n# Moving average crossover on US equities\nvibe-trading run -p \"Backtest a 20\u002F50-day moving average crossover on AAPL for the past year, show Sharpe ratio and max drawdown\"\n\n# RSI mean-reversion on crypto\nvibe-trading run -p \"Test RSI(14) mean-reversion on BTC-USDT: buy below 30, sell above 70, last 6 months\"\n\n# Multi-factor strategy on A-shares\nvibe-trading run -p \"Backtest a momentum + value + quality multi-factor strategy on CSI 300 constituents over 2 years\"\n\n# After backtesting, export to TradingView \u002F TDX \u002F MetaTrader 5\nvibe-trading --pine \u003Crun_id>\n```\n\n**Bench a pre-built alpha zoo** (one line):\n```bash\nvibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20\n```\n\n**Browse the catalogue** and inspect a single alpha:\n```bash\nvibe-trading alpha list --zoo gtja191 --theme reversal --limit 10\nvibe-trading alpha show gtja191_171\n```\n\n**Compose a multi-factor signal** from the zoo (Python):\n```python\nfrom src.skills.multi_factor.zoo_signal_engine import ZooSignalEngine\nengine = ZooSignalEngine.from_zoo([\"gtja191_171\", \"gtja191_111\", \"gtja191_163\"])\npanel = ...  # your wide OHLCV panel\nsignal = engine.compute_signal(panel)\n```\n\n### Market Research\n\n```bash\n# Equity deep-dive\nvibe-trading run -p \"Research NVDA: earnings trend, analyst consensus, option flow, and key risks for next quarter\"\n\n# Macro analysis\nvibe-trading run -p \"Analyze the current Fed rate path, USD strength, and impact on EM equities and gold\"\n\n# Crypto on-chain\nvibe-trading run -p \"Deep dive BTC on-chain: whale flows, exchange balances, miner activity, and funding rates\"\n```\n\n### Swarm Workflows\n\n```bash\n# Bull\u002Fbear debate on a stock\nvibe-trading --swarm-run investment_committee '{\"topic\": \"Is TSLA a buy at current levels?\"}'\n\n# Quant strategy from screening to backtest\nvibe-trading --swarm-run quant_strategy_desk '{\"universe\": \"S&P 500\", \"horizon\": \"3 months\"}'\n\n# Crypto desk: funding + liquidation + flow → risk manager\nvibe-trading --swarm-run crypto_trading_desk '{\"asset\": \"ETH-USDT\", \"timeframe\": \"1w\"}'\n\n# Global macro portfolio allocation\nvibe-trading --swarm-run macro_rates_fx_desk '{\"focus\": \"Fed pivot impact on EM bonds\"}'\n```\n\n### Cross-Session Memory\n\n```bash\n# Save your preferences once\nvibe-trading run -p \"Remember: I prefer RSI-based strategies, max 10% drawdown, hold period 5–20 days\"\n\n# The agent recalls them in future sessions automatically\nvibe-trading run -p \"Build a crypto strategy that fits my risk profile\"\n```\n\n### Upload & Analyze Documents\n\n```bash\n# Analyze a broker export or earnings report\nvibe-trading --upload trades_export.csv\nvibe-trading run -p \"Profile my trading behavior and identify any biases\"\n\nvibe-trading --upload NVDA_Q1_earnings.pdf\nvibe-trading run -p \"Summarize the key risks and beats\u002Fmisses from this earnings report\"\n```\n\n---\n\n## 🌐 API Server\n\n```bash\nvibe-trading serve --port 8899\n```\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| `GET` | `\u002Fruns` | List runs |\n| `GET` | `\u002Fruns\u002F{run_id}` | Run details |\n| `GET` | `\u002Fruns\u002F{run_id}\u002Fpine` | Multi-platform indicator export |\n| `POST` | `\u002Fsessions` | Create session |\n| `POST` | `\u002Fsessions\u002F{id}\u002Fmessages` | Send message |\n| `GET` | `\u002Fsessions\u002F{id}\u002Fevents` | SSE event stream |\n| `POST` | `\u002Fupload` | Upload PDF\u002Ffile |\n| `GET` | `\u002Fswarm\u002Fpresets` | List swarm presets |\n| `POST` | `\u002Fswarm\u002Fruns` | Start swarm run |\n| `GET` | `\u002Fswarm\u002Fruns\u002F{id}\u002Fevents` | Swarm SSE stream |\n| `GET` | `\u002Falpha\u002Flist` | List alphas (filter by zoo\u002Ftheme\u002Funiverse) |\n| `GET` | `\u002Falpha\u002F{alpha_id}` | Alpha metadata + source code |\n| `POST` | `\u002Falpha\u002Fbench` | Start a bench job (returns `job_id`) |\n| `GET` | `\u002Falpha\u002Fbench\u002F{job_id}\u002Fstream` | SSE progress stream |\n| `GET` | `\u002Fsettings\u002Fllm` | Read Web UI LLM settings |\n| `PUT` | `\u002Fsettings\u002Fllm` | Update local LLM settings |\n| `GET` | `\u002Fsettings\u002Fdata-sources` | Read local data source settings |\n| `PUT` | `\u002Fsettings\u002Fdata-sources` | Update local data source settings |\n\nInteractive docs: `http:\u002F\u002Flocalhost:8899\u002Fdocs`\n\n### Security defaults\n\nFor localhost development, `vibe-trading serve` keeps the browser workflow simple. For any non-local client, sensitive API endpoints require `API_AUTH_KEY`; use `Authorization: Bearer \u003Ckey>` for JSON\u002Fupload requests. Browser EventSource streams are handled by the Web UI after you enter the same key once in Settings.\n\nShell-capable tools are available to local CLI and trusted localhost workflows, but are not exposed to remote API sessions unless you explicitly set `VIBE_TRADING_ENABLE_SHELL_TOOLS=1`. Document and journal readers are limited to upload\u002Fimport roots by default; place files under `agent\u002Fuploads`, `agent\u002Fruns`, `.\u002Fuploads`, `.\u002Fdata`, `~\u002F.vibe-trading\u002Fuploads`, or `~\u002F.vibe-trading\u002Fimports`, or add a dedicated directory through `VIBE_TRADING_ALLOWED_FILE_ROOTS`.\n\n### Web UI Settings\n\nThe Web UI Settings page lets local users update the LLM provider\u002Fmodel, base URL, generation parameters, reasoning effort, and optional market data credentials such as the Tushare token. Settings are persisted to `agent\u002F.env`; provider defaults are loaded from `agent\u002Fsrc\u002Fproviders\u002Fllm_providers.json`.\n\nSettings reads are side-effect free: `GET \u002Fsettings\u002Fllm` and `GET \u002Fsettings\u002Fdata-sources` never create `agent\u002F.env`, and they only return project-relative paths. Settings reads and writes can expose credential state or update credentials\u002Fruntime environment, so they require `API_AUTH_KEY` when configured. If `API_AUTH_KEY` is unset for dev mode, settings access is accepted only from loopback clients.\n\n---\n\n## 🔌 MCP Plugin\n\nVibe-Trading exposes 22 MCP tools for any MCP-compatible client. Runs as a stdio subprocess — no server setup needed. **21 of 22 tools work with zero API keys** (HK\u002FUS\u002Fcrypto). Only `run_swarm` needs an LLM key.\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Claude Desktop\u003C\u002Fb>\u003C\u002Fsummary>\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"vibe-trading\": {\n      \"command\": \"vibe-trading-mcp\"\n    }\n  }\n}\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>OpenClaw\u003C\u002Fb>\u003C\u002Fsummary>\n\nAdd to `~\u002F.openclaw\u002Fconfig.yaml`:\n\n```yaml\nskills:\n  - name: vibe-trading\n    command: vibe-trading-mcp\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Cursor \u002F Windsurf \u002F other MCP clients\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\nvibe-trading-mcp                  # stdio (default)\nvibe-trading-mcp --transport sse  # SSE for web clients\n```\n\n\u003C\u002Fdetails>\n\n**MCP tools exposed (22):** `list_skills`, `load_skill`, `backtest`, `factor_analysis`, `analyze_options`, `pattern_recognition`, `get_market_data`, `web_search`, `read_url`, `read_document`, `read_file`, `write_file`, `analyze_trade_journal`, `extract_shadow_strategy`, `run_shadow_backtest`, `render_shadow_report`, `scan_shadow_signals`, `list_swarm_presets`, `run_swarm`, `get_swarm_status`, `get_run_result`, `list_runs`.\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Install from ClawHub (one command)\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\nnpx clawhub@latest install vibe-trading --force\n```\n\n> `--force` is required because the skill references external APIs, which triggers VirusTotal's automated scan. The code is fully open-source and safe to inspect.\n\nThis downloads the skill + MCP config into your agent's skills directory. No cloning needed.\n\nBrowse on ClawHub: [clawhub.ai\u002Fskills\u002Fvibe-trading](https:\u002F\u002Fclawhub.ai\u002Fskills\u002Fvibe-trading)\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>OpenSpace — self-evolving skills\u003C\u002Fb>\u003C\u002Fsummary>\n\nAll 75 finance skills are published on [open-space.cloud](https:\u002F\u002Fopen-space.cloud) and evolve autonomously through OpenSpace's self-evolution engine.\n\nTo use with OpenSpace, add both MCP servers to your agent config:\n\n```json\n{\n  \"mcpServers\": {\n    \"openspace\": {\n      \"command\": \"openspace-mcp\",\n      \"toolTimeout\": 600,\n      \"env\": {\n        \"OPENSPACE_HOST_SKILL_DIRS\": \"\u002Fpath\u002Fto\u002Fvibe-trading\u002Fagent\u002Fsrc\u002Fskills\",\n        \"OPENSPACE_WORKSPACE\": \"\u002Fpath\u002Fto\u002FOpenSpace\"\n      }\n    },\n    \"vibe-trading\": {\n      \"command\": \"vibe-trading-mcp\"\n    }\n  }\n}\n```\n\nOpenSpace will auto-discover all 75 skills, enabling auto-fix, auto-improve, and community sharing. Search for Vibe-Trading skills via `search_skills(\"finance backtest\")` in any OpenSpace-connected agent.\n\n\u003C\u002Fdetails>\n\n---\n\n## 🔌 Loading Tools from External MCP Servers (MCP Client Mode)\n\n> **This is the opposite direction from the MCP Plugin above.**\n> The MCP Plugin lets *other* agents call Vibe-Trading tools.\n> This section lets the *built-in* Vibe-Trading agent call tools from *your* external MCP servers.\n\n### Quick start\n\nCreate `~\u002F.vibe-trading\u002Fagent.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"my-server\": {\n      \"command\": \"uvx\",\n      \"args\": [\"my-mcp-server\"]\n    }\n  }\n}\n```\n\nRun any CLI command — tools from `my-server` are automatically injected into the agent's registry after local tools:\n\n```bash\nvibe-trading run \"use my-server to do X\"\n```\n\n### Config reference\n\n| Field | Type | Default | Description |\n|-------|------|---------|-------------|\n| `type` | string | inferred for stdio; required for HTTP | Omit for stdio, or set to `sse` \u002F `streamableHttp` for URL-based servers. |\n| `command` | string | required for stdio | Executable to spawn for stdio servers. Invalid for `sse` \u002F `streamableHttp` servers. |\n| `args` | array | `[]` | Command-line arguments for stdio servers only. |\n| `env` | object | `{}` | Extra environment variables merged into the subprocess env for stdio servers only. |\n| `url` | string | required for `sse` \u002F `streamableHttp` | Remote SSE \u002F streamable HTTP endpoint URL. Not used for stdio servers. |\n| `headers` | object | `{}` | Extra HTTP headers for `sse` \u002F `streamableHttp` servers only. |\n| `toolTimeout` | number | `30` | Per-tool call timeout in seconds |\n| `enabledTools` | array | `[\"*\"]` | Tool allowlist. Use `[\"*\"]` to expose all tools from the server |\n\nConfig file location: `~\u002F.vibe-trading\u002Fagent.json` (JSON or YAML).\n\nFor URL-based transports, `type` is required. The agent no longer guesses between SSE and streamable HTTP from the URL suffix.\n\n### Per-session overrides (API)\n\nWhen creating a session via the API you can pass `mcpServers` inside `session.config` to extend or override the global config for that session only:\n\n```json\n{\n  \"config\": {\n    \"mcpServers\": {\n      \"research-server\": {\n        \"command\": \"uvx\",\n        \"args\": [\"research-mcp\"],\n        \"enabledTools\": [\"search\", \"fetch\"]\n      }\n    }\n  }\n}\n```\n\n### Tool naming\n\nRemote tools are exposed with stable names: `mcp_\u003Cserver>_\u003Ctool>`.\n\nIf two server names produce the same ASCII-safe local prefix (e.g. `foo-bar` and `foo_bar` both become `foo_bar`), a deterministic hash suffix is appended at the server-segment level so names remain unique. The operator receives a warning:\n\n```\nWARNING: Configured MCP server 'foo-bar' collides with another server after local name\nnormalization. Using local tool prefix 'mcp_foo_bar_\u003Chash>_\u003Ctool>' to keep generated\ntool names unique. Rename the server in agent config if you want a different prefix.\n```\n\n### v1 limits\n\n| Limit | Detail |\n|-------|--------|\n| Transport | stdio, SSE, and streamable HTTP |\n| Execution | serial only — MCP tools never enter the parallel readonly path |\n| Surfaces | tools only (resources and prompts excluded in v1) |\n| Hot reload | not supported — restart the process to pick up config changes |\n| Swarm path | MCP tools are not available inside Swarm worker registries in v1 |\n\n---\n\n## 📁 Project Structure\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Click to expand\u003C\u002Fb>\u003C\u002Fsummary>\n\n```\nVibe-Trading\u002F\n├── agent\u002F                          # Backend (Python)\n│   ├── cli.py                      # CLI entrypoint — interactive TUI + subcommands\n│   ├── api_server.py               # FastAPI server — runs, sessions, upload, swarm, SSE\n│   ├── mcp_server.py               # MCP server — 22 tools for OpenClaw \u002F Claude Desktop\n│   │\n│   ├── src\u002F\n│   │   ├── agent\u002F                  # ReAct agent core\n│   │   │   ├── loop.py             #   5-layer compression + read\u002Fwrite tool batching\n│   │   │   ├── context.py          #   system prompt + auto-recall from persistent memory\n│   │   │   ├── skills.py           #   skill loader (75 bundled + user-created via CRUD)\n│   │   │   ├── tools.py            #   tool base class + registry\n│   │   │   ├── memory.py           #   lightweight workspace state per run\n│   │   │   ├── frontmatter.py      #   shared YAML frontmatter parser\n│   │   │   └── trace.py            #   execution trace writer\n│   │   │\n│   │   ├── memory\u002F                 # Cross-session persistent memory\n│   │   │   └── persistent.py       #   file-based memory (~\u002F.vibe-trading\u002Fmemory\u002F)\n│   │   │\n│   │   ├── tools\u002F                  # 31 auto-discovered agent tools\n│   │   │   ├── backtest_tool.py    #   run backtests\n│   │   │   ├── remember_tool.py    #   cross-session memory (save\u002Frecall\u002Fforget)\n│   │   │   ├── skill_writer_tool.py #  skill CRUD (save\u002Fpatch\u002Fdelete\u002Ffile)\n│   │   │   ├── session_search_tool.py # FTS5 cross-session search\n│   │   │   ├── swarm_tool.py       #   launch swarm teams\n│   │   │   ├── web_search_tool.py  #   DuckDuckGo web search\n│   │   │   └── ...                 #   bash, file I\u002FO, factor analysis, options, alpha browser + bench, etc.\n│   │   │\n│   │   ├── factors\u002F                # Alpha Zoo — 452 alphas across 4 zoos\n│   │   │   ├── base.py             #   19 operators (rank\u002Fscale\u002Fts_*\u002Fdelta\u002Fdecay_linear\u002Fsafe_div\u002Fvwap)\n│   │   │   ├── registry.py         #   AST-only metadata load + lazy compute + sanity gates\n│   │   │   ├── bench_runner.py     #   IC + alive\u002Freversed\u002Fdead categorisation\n│   │   │   └── zoo\u002F                #   qlib158 (154) + alpha101 (101) + gtja191 (191) + academic (6)\n│   │   │\n│   │   ├── api\u002F                    # FastAPI route modules\n│   │   │   └── alpha_routes.py     #   \u002Falpha\u002Flist, \u002Falpha\u002F{id}, \u002Falpha\u002Fbench, SSE stream\n│   │   │\n│   │   ├── skills\u002F                 # 75 finance skills in 8 categories (SKILL.md each)\n│   │   ├── swarm\u002F                  # Swarm DAG execution engine\n│   │   │   └── presets\u002F            #   29 swarm preset YAML definitions\n│   │   ├── session\u002F                # Multi-turn chat + FTS5 session search\n│   │   └── providers\u002F              # LLM provider abstraction\n│   │\n│   └── backtest\u002F                   # Backtest engines\n│       ├── engines\u002F                #   7 engines + composite cross-market engine + options_portfolio\n│       ├── loaders\u002F                #   6 sources: tushare, okx, yfinance, akshare, ccxt, futu\n│       │   ├── base.py             #   DataLoader Protocol\n│       │   └── registry.py         #   Registry + auto-fallback chains\n│       └── optimizers\u002F             #   MVO, equal vol, max div, risk parity\n│\n├── frontend\u002F                       # Web UI (React 19 + Vite + TypeScript)\n│   └── src\u002F\n│       ├── pages\u002F                  #   Home, Agent, AlphaZoo, RunDetail, Compare, Correlation, Settings\n│       ├── components\u002F             #   chat, charts, layout\n│       └── stores\u002F                 #   Zustand state management\n│\n├── Dockerfile                      # Multi-stage build\n├── docker-compose.yml              # One-command deploy\n├── pyproject.toml                  # Package config + CLI entrypoint\n├── tools\u002F                          # Repo-level CI helpers\n│   └── ci_grep_gates.sh            # rejects yaml.load \u002F trademark \u002F per-stock-data leaks\n└── LICENSE                         # MIT\n```\n\n\u003C\u002Fdetails>\n\n---\n\n## 🏛 Ecosystem\n\nVibe-Trading is part of the **[HKUDS](https:\u002F\u002Fgithub.com\u002FHKUDS)** agent ecosystem:\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"25%\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FClawTeam\">\u003Cb>ClawTeam\u003C\u002Fb>\u003C\u002Fa>\u003Cbr>\n      \u003Csub>Agent Swarm Intelligence\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"25%\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHKUDS\u002Fnanobot\">\u003Cb>NanoBot\u003C\u002Fb>\u003C\u002Fa>\u003Cbr>\n      \u003Csub>Ultra-Lightweight Personal AI Assistant\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"25%\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FCLI-Anything\">\u003Cb>CLI-Anything\u003C\u002Fb>\u003C\u002Fa>\u003Cbr>\n      \u003Csub>Making All Software Agent-Native\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"25%\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FOpenSpace\">\u003Cb>OpenSpace\u003C\u002Fb>\u003C\u002Fa>\u003Cbr>\n      \u003Csub>Self-Evolving AI Agent Skills\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n## 🗺 Roadmap\n\n> We ship in phases. Items move to [Issues](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fissues) when work begins.\n\n| Phase | Feature | Status |\n|-------|---------|--------|\n| **Trust Layer** | Reproducible run cards are emitted and shown in Run Detail; v1 adds tool traces and citations | v0 Shipped |\n| **Hypothesis Registry** | Durable research hypotheses with lifecycle status, data sources, skills, run-card links, and invalidation notes | Backend MVP Shipped |\n| **Research Autopilot** | Manual-first research loop: hypothesis → deterministic backtest → evidence report | Next |\n| **Data Bridge** | Bring-your-own data: local CSV\u002FParquet\u002FSQL connectors with schema mapping | Planned |\n| **Options Lab** | Vol surface, Greeks dashboard, payoff\u002Fscenario explorer | Planned |\n| **Portfolio Studio** | Risk x-ray, constraints, turnover-aware optimizer, rebalance notes | Planned |\n| **Alpha Zoo** | 452 pre-built alphas (Qlib 158 + Kakushadze 101 + GTJA 191 + FF5 + Carhart) with one-line bench, agent integration, and Web UI | **Shipped 0.1.8** |\n| **Research Delivery** | Scheduled briefs to Slack \u002F Telegram \u002F email-style channels | Planned |\n| **Community** | Shareable skills, presets, and strategy cards | Exploring |\n\n---\n\n## Contributing\n\nWe welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n**Good first issues** are tagged with [`good first issue`](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fissues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) — pick one and get started.\n\nWant to contribute something bigger? Check the [Roadmap](#-roadmap) above and open an issue to discuss before starting.\n\n---\n\n## Contributors\n\nThanks to everyone who has contributed to Vibe-Trading!\n\nRecent v0.1.7 cycle contributors and credits:\n\n- @GTC2080 \u002F TaoMu — Web UI Settings and provider\u002Fdata-source configuration APIs (#57)\n- @BigNounce90 — validation CLI hardening for backtest `run_dir` input (#60)\n- @shadowinlife — A-share pre-ST filter skill (#63)\n- @MB-Ndhlovu — correlation heatmap dashboard and review fixes (#64, #66)\n- @ykykj — OpenAI Codex OAuth provider option (#65)\n- @RuifengFu — interactive CLI live status bar and prompt editing (#69)\n- @SiMinus — swarm preset inspection command (#73)\n- @warren618 \u002F Haozhe Wu — security hardening, release integration, docs, Docker, packaging, and local dev workflow\n- lemi9090 (S2W) — coordinated security research, validation, and disclosure support\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FVibe-Trading\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=HKUDS\u002FVibe-Trading\" \u002F>\n\u003C\u002Fa>\n\n---\n\n## Disclaimer\n\nVibe-Trading is for research, simulation, and backtesting only. It is not investment advice and it does not execute live trades. Past performance does not guarantee future results.\n\n## License\n\nMIT License — see [LICENSE](LICENSE)\n\n---\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=HKUDS\u002FVibe-Trading&type=Date)](https:\u002F\u002Fstar-history.com\u002F#HKUDS\u002FVibe-Trading&Date)\n\n---\n\n\u003Cp align=\"center\">\n  Thanks for visiting \u003Cb>Vibe-Trading\u003C\u002Fb> ✨\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fvisitor-badge.laobi.icu\u002Fbadge?page_id=HKUDS.Vibe-Trading&style=flat\" alt=\"visitors\"\u002F>\n\u003C\u002Fp>\n","Vibe-Trading 是一个个人交易代理工具，旨在通过一键命令为用户提供全面的交易能力。该项目基于 Python 开发，后端使用 FastAPI，前端采用 React 构建，支持算法交易、回测和量化金融等多种功能，并集成了大语言模型（LLM）以增强智能决策。它特别适合希望利用先进算法和技术来优化投资策略的个人投资者或小型金融机构使用。此外，Vibe-Trading 提供了多代理系统支持，能够处理复杂的市场环境下的交易需求，同时其开放式的架构也便于用户根据自身需求进行扩展或定制。",2,"2026-06-11 03:48:21","high_star"]