Skip to main content
ClaudeWave

"Vibe-Trading: Your Personal Trading Agent"

Subagents33.3k stars5.4k forksPythonMITUpdated today
Editor's note

Vibe-Trading is a multi-agent Python framework that gives Claude and other LLMs a full suite of quantitative trading tools through a single pip install (`vibe-trading-ai`). It connects to Claude via MCP, meaning Claude Code and Claude Desktop can invoke its tools directly, and it also exposes a FastAPI backend with a React 19 frontend for chat-based interaction. The agent system includes named swarm presets such as an investment committee, quant desk, and risk committee, each with real-time per-worker status cards streamed into the chat timeline. An Alpha Zoo module houses over 191 backtestable alphas that can be benchmarked head-to-head using IC mean, information ratio, and IC-positive ratio metrics. A Shadow Account feature lets users simulate trades without real capital. The project targets retail traders, quant researchers, and developers who want to wire LLM reasoning into algorithmic trading workflows without building execution, backtesting, or data infrastructure from scratch.

ClaudeWave Trust Score
100/100
Verified
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Healthy fork ratio
  • Clear description
  • Topics declared
  • Documented (README)
Last scanned: 9/12/2026
Install as a Claude Code subagent
Method: Clone
Terminal
git clone https://github.com/HKUDS/Vibe-Trading && cp Vibe-Trading/*.md ~/.claude/agents/
1. Clone the repository and copy the agent .md definitions into ~/.claude/agents (or .claude/agents inside a project).
2. Start a new Claude Code session to load the agents.
3. Delegate work to them with the Task/Agent tool or by name.

24 items in this repository

Professional finance research toolkit — backtesting (10 engines + benchmark comparison panel), factor analysis, Alpha Zoo (462 pre-built alphas across qlib158/alpha101/gtja191/academic/fundamental), options pricing, 90 finance skills, 30 multi-agent swarm teams, Trade Journal analyzer, and Shadow Account (extract → backtest → render) across 25 market-data sources (tushare, yfinance, okx, binance, akshare, baostock, tencent, mootdx, ccxt, futu, mt5, tickerall, local, eastmoney, sina, stooq, yahoo, pykrx, india_broker, qveris, longbridge, plus optional-key finnhub/alphavantage/tiingo/fmp).

Install

ADR/H-share/A-share cross-listing premium analysis — track pricing gaps between US-listed ADRs, HK-listed H-shares, and A-shares for arbitrage signals, dual-listing valuation, and delisting risk assessment.

Install
akshareSkill

AKShare financial data aggregator (18k+ stars). Free, no API key. Covers A-shares, US, HK, futures, macro, forex. Primary fallback for tushare and yfinance.

Install

Browse and bench the bundled alpha zoos — prebuilt cross-sectional factor libraries (Kakushadze 101, GTJA 191, Qlib 158, Fama-French / Carhart). Use when the user asks "which alphas exist", wants metadata on a named alpha, or wants to run IC/IR on a whole zoo over a universe.

Install

A 股 ST/*ST 风险预测框架 — 基于最新中报/三季报或业绩预告/快报,预测下一财年是否会因营收、利润、净资产、分红不达标而被风险警示,并将新浪监管处罚记录作为独立证据面纳入风险等级。仅适用于 A 股,不预测财务造假。

Install

Asset allocation theory and optimizer usage — MPT / Black-Litterman / risk budgeting / all-weather strategy, including guides for 5 optimizers and rebalancing rules.

Install

Diagnose failed or underperforming backtests, locate the root cause, and fix the issue

Install

Behavioral finance applications: theories of overreaction and underreaction, behavioral explanations for momentum and reversal, investor sentiment cycles, cognitive-bias checklists, and debiasing quantitative strategies.

Install

Candlestick pattern recognition engine, pure pandas vectorized implementation of 15 classic candlestick patterns (5 single-candle + 5 double-candle + 4 triple-candle + 1 trend confirmation), generating a composite signal from bullish/bearish pattern scores.

Install
ccxtSkill

CCXT unified crypto exchange library (100+ exchanges). Free public market data. Fallback when OKX is unavailable.

Install
chanlunSkill

基于缠论(缠中说禅)的形态识别引擎,使用czsc库自动检测K线分型、笔、中枢,并生成一买/一卖/二买/二卖/三买/三卖等买卖点信号。支持多周期分析和形态分类(3/5/7/9/11笔形态)。

Install

Commodity analysis (oil supply-demand balance / gold pricing / copper as an economic predictor / inventory cycles / futures premium-discount structure / seasonality), generating directional commodity signals.

Install

A股可转债分析——转股/纯债/期权三维估值、下修/强赎/回售博弈、双低策略与转债轮动选债框架

Install

公司事件驱动分析:并购套利价差计算、大股东增减持信号、股权激励解读、定增配股影响评估、A股ST/退市预警

Install

Correlation and cointegration analysis — co-movement discovery, deep return-correlation analysis, sector clustering, realized correlation, Engle-Granger / Johansen cointegration, half-life, Kalman dynamic hedge ratio, cross-market linkage analysis, and pair-trading signal generation

Install

固收与信用分析:信用债评级、利差分析、违约风险评估、城投债研究、可转债定价与策略。

Install

Write signal_engine.py for portfolios spanning multiple markets (A-shares + crypto, equity + forex, etc.)

Install

Crypto-derivatives strategies — perpetual funding-rate arbitrage, futures term-structure contango/backwardation trading, and option volatility-smile / Greeks analysis.

Install

The single ROUTER for every data need. Load this skill BEFORE any backtest, data-fetch, or research task to pick the best available source/tool, honour auth (env) requirements, and avoid ban-risk providers.

Install

DeFi yield analysis and optimization — lending rates, LP yields, staking returns, yield farming strategies, risk-adjusted yield comparison, and protocol-level sustainability assessment.

Install

Dividend stock analysis for income, dividend-growth, and shareholder-return strategies, including yield quality, payout sustainability, ex-dividend mechanics, and yield-trap checks.

Install

Read any common document/data file — PDF, Word (.docx), Excel (.xlsx/.xls), PowerPoint (.pptx), images (OCR), CSV/TSV, plain text, JSON/YAML/TOML, HTML/XML, and most source-code files. Use the `read_document` tool.

Install

盈利预测与一致预期分析(自上而下/自下而上预测法/SUE/PEAD/分析师预期修正),捕捉业绩超预期交易机会。

Install

Earnings estimate revisions, guidance analysis, and post-earnings drift (PEAD) — track analyst consensus changes, earnings surprise patterns, and management guidance shifts for US/HK equities.

Install
Use cases

Subagents overview

<p align="center">
  <b>English</b> | <a href="README_zh.md">中文</a> | <a href="README_ja.md">日本語</a> | <a href="README_ko.md">한국어</a> | <a href="README_ar.md">العربية</a> | <a href="README_es.md">Español</a>
</p>

<p align="center">
  <img src="assets/icon.png" width="120" alt="Vibe-Trading Logo"/>
</p>

<h1 align="center">Vibe-Trading: Your Personal Trading Agent</h1>

<p align="center">
  <b>One Command to Empower Your Agent with Comprehensive Trading Capabilities</b>
</p>

<p align="center">
  <a href="https://trendshift.io/repositories/25527" target="_blank"><img src="https://trendshift.io/api/badge/repositories/25527" alt="HKUDS%2FVibe-Trading | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</p>

<p align="center">
  <img src="https://img.shields.io/badge/Python-3.11%2B-3776AB?style=flat&logo=python&logoColor=white" alt="Python">
  <img src="https://img.shields.io/badge/Backend-FastAPI-009688?style=flat" alt="FastAPI">
  <img src="https://img.shields.io/badge/Frontend-React%2019-61DAFB?style=flat&logo=react&logoColor=white" alt="React">
  <a href="https://pypi.org/project/vibe-trading-ai/"><img src="https://img.shields.io/pypi/v/vibe-trading-ai?style=flat&logo=pypi&logoColor=white" alt="PyPI"></a>
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow?style=flat" alt="License"></a>
  <br>
  <a href="https://github.com/HKUDS/.github/blob/main/profile/README.md"><img src="https://img.shields.io/badge/Feishu-Group-E9DBFC?style=flat-square&logo=feishu&logoColor=white" alt="Feishu"></a>
  <a href="https://github.com/HKUDS/.github/blob/main/profile/README.md"><img src="https://img.shields.io/badge/WeChat-Group-C5EAB4?style=flat-square&logo=wechat&logoColor=white" alt="WeChat"></a>
  <a href="https://discord.gg/6TdQnT5xcF"><img src="https://img.shields.io/badge/Discord-Join-7289DA?style=flat-square&logo=discord&logoColor=white" alt="Discord"></a>
</p>

<p align="center">
  <a href="https://vibetrading.wiki/">Website</a> &nbsp;&middot;&nbsp;
  <a href="https://vibetrading.wiki/docs/">Docs</a> &nbsp;&middot;&nbsp;
  <a href="#-news">News</a> &nbsp;&middot;&nbsp;
  <a href="#-key-features">Features</a> &nbsp;&middot;&nbsp;
  <a href="#-shadow-account">Shadow Account</a> &nbsp;&middot;&nbsp;
  <a href="#-demo">Demo</a> &nbsp;&middot;&nbsp;
  <a href="#-quick-start">Quick Start</a> &nbsp;&middot;&nbsp;
  <a href="#-examples">Examples</a> &nbsp;&middot;&nbsp;
  <a href="#-api-server">API / MCP</a> &nbsp;&middot;&nbsp;
  <a href="#-roadmap">Roadmap</a> &nbsp;&middot;&nbsp;
  <a href="#contributing">Contributing</a>
</p>

<p align="center">
  <a href="#-quick-start"><img src="assets/pip-install.svg" height="45" alt="pip install vibe-trading-ai"></a>
</p>

---

## 📰 News

> ⚠️ **Security warning:** The X account `VibeTrading_HKU`, Virtuals project `101845`, and token contract `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4` are not official Vibe-Trading assets. We have never launched or endorsed any token or memecoin. Do not buy, connect a wallet, or sign anything. [Details](SECURITY.md#official-channels--impersonation).

- **2026-09-12** 📥 **A dividend row that looks like a holding, and a number format where one misplaced separator is a thousandfold error**: extraETF's CSV exports can now be read into the portfolio layer's position shape — read-only, standard library only, and failing closed on anything it cannot read without guessing ([#1406](https://github.com/HKUDS/Vibe-Trading/pull/1406), toward [#1170](https://github.com/HKUDS/Vibe-Trading/issues/1170)). The Investments export becomes positions and the Transaktionen export becomes typed movements, so a `Dividende` row, which carries a quantity and a price of its own, is never read as a position, and a transactions file cannot pose as an empty portfolio. Numbers follow the export's German grammar exactly: `1.386,608` is 1386.608, a US-ordered `1,234.56` is refused rather than read a thousandfold off, and a value the eight-decimal wire format cannot hold is refused rather than rounded — `0,000000004` shares would otherwise have become zero. An unknown header (the error names both known column sets), an unknown transaction label, a movement with no instrument, and one instrument listed twice under a single portfolio ID are all refused, while the same ISIN under two portfolio IDs — the export's normal multi-portfolio case — stays two positions. The export carries no snapshot date, so the file's modification time is reported as `source_mtime` and no position claims an observation time. Nothing calls the reader yet; wiring it into the portfolio container is next. Thanks [@cgycorey](https://github.com/cgycorey) and [@KaiLuettmann](https://github.com/KaiLuettmann)!

- **2026-09-11** 📉 **Eight years of Tencent history that came back as the last two, and an evidence gate that turned away every backtest the agent ran itself**: Tencent's `fqkline` endpoint serves the **last** 500 bars of a window, not the first — a CSI 300 request for `2018-01-01..2026-06-30` returns `2024-06-06..2026-06-30` — while the loader paginated forward, stepped past the window after one page and returned a tail-only series with exit code 0 and no warning. It now walks backward from the end date, re-requests an empty page once before believing it, treats an error-shaped reply as a failure, and bumps the loader cache version so series cached by the old walk are never served again ([#1411](https://github.com/HKUDS/Vibe-Trading/pull/1411), closes [#1410](https://github.com/HKUDS/Vibe-Trading/issues/1410)). `refresh_strategy_evidence` rejected every run produced by the `backtest` tool, because only the agent runtime wrote the `state.json` its ingestion gate reads; the tool now records success, failure and timeout itself, and the gate stays fail-closed for runs nobody vouches for ([#1413](https://github.com/HKUDS/Vibe-Trading/pull/1413), closes [#1412](https://github.com/HKUDS/Vibe-Trading/issues/1412)). Concurrent cold-start data requests could come back `_unresolved` for symbols that were perfectly available: the loader registry marked itself initialised before its imports ran, so simultaneous first callers saw it empty — seven of eight in the reporter's run ([#1405](https://github.com/HKUDS/Vibe-Trading/pull/1405), closes [#1403](https://github.com/HKUDS/Vibe-Trading/issues/1403)). A swarm worker's `skills:` list, documented as its allowlist, is now enforced by `load_skill` instead of only by the prompt ([#1414](https://github.com/HKUDS/Vibe-Trading/pull/1414)), and the correlation skill's Engle-Granger example, which crashed on an unnamed series, now calls the tested quantlib functions instead of its own OLS fit ([#1404](https://github.com/HKUDS/Vibe-Trading/pull/1404)). One more was ours: thirteen broker config files that hold API keys — `alpaca.json`, `zerodha.json` and the rest — were missing from `.gitignore` though its comment claimed them, so anyone whose `VIBE_TRADING_HOME` is the checkout was one `git add -A` away from committing credentials; a test now derives the list from the code. So was a paper cancel that answered for orders it never placed: the Zerodha, Dhan and Shoonya paper connectors simulate orders locally but read the real account, and acknowledged a cancel for any order id — a live one included, which would have kept working; they now accept only the ids their simulator issued. Thanks [@shadowinlife](https://github.com/shadowinlife), [@alanwilhelm](https://github.com/alanwilhelm) and [@Shizoqua](https://github.com/Shizoqua)!

- **2026-09-10** 🧾 **A remediation message that named a variable nothing reads, and an adapted strategy that wore its parent's sign-off**: when stooq answers with its anti-bot challenge page, the loader tells the operator how to route around it — and both halves of that advice were unreachable as printed. `VIBE_TRADING_MARKET_DATA_ORDER_*` is read nowhere: the registry builds `MARKET_DATA_ORDER_<MARKET>` and the config layer passes it to a bare `os.getenv`, so exporting the name as printed was a silent no-op and stooq stayed at position 2 of the US-equity chain. The other half, "drop stooq from it", is rejected outright — an override must be a **permutation** of the default chain, so a source can be reordered but not removed. The message now names the variable the registry actually reads and states the constraint, pinned to the registry rather than to a literal so it cannot drift again ([#1402](https://github.com/HKUDS/Vibe-Trading/pull/1402)). Separately, the first half of description-driven strategy adaptation landed: an adapted strategy is a **new** artifact pointing at its parent through `derived_from`, the description may change universe, name and position sizing while the signal is copied verbatim, and the child starts with empty evidence so its numbers come from its own backtest instead of inheriting the parent's ([#1391](https://github.com/HKUDS/Vibe-Trading/pull/1391), refs [#1149](https://github.com/HKUDS/Vibe-Trading/issues/1149)). Two gaps were closed on the way in, both one field over from the rule that PR was written to enforce. `dataclasses.replace` copies every field the call does not name, so the child came out `UNVALIDATED` while still carrying the parent's `validator` and `approver` — an independent sign-off worn by something that never earned it — along with an `artifact_version` and a `model_version` for code no model had generated yet. And the parent-evidence gate was reachable only from tests: `register_adaptation` never consulted it, so a stale or insufficient parent was written anyway, against what the substrate advertised. Its inputs are keyword-only and required now, so the check cannot be skipped by forgetting it. Thanks [@chiww](https://github.com/chiww) and [@modelpath-dev](https://github.com/modelpath-dev)!

<details>
<summary>Earlier news</summary>

- **2026-09-09** 🚀 **v0.1.15 released** ([Release notes](https://github.com/HKUDS/Vibe-Trading/releases/tag/v0.1.15), `pip ins
ai-agentalgorithmic-tradingbacktestingfintechllmmcpmulti-agentpythonquantitative-financetrading

What people ask about Vibe-Trading

What is HKUDS/Vibe-Trading?

+

HKUDS/Vibe-Trading is subagents for the Claude AI ecosystem. "Vibe-Trading: Your Personal Trading Agent" It has 33.3k GitHub stars and its last recorded update is dated 2026-09-11.

How do I install Vibe-Trading?

+

You can install Vibe-Trading by cloning the repository (https://github.com/HKUDS/Vibe-Trading) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is HKUDS/Vibe-Trading safe to use?

+

Our security agent has analyzed HKUDS/Vibe-Trading and assigned a Trust Score of 100/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.

Who maintains HKUDS/Vibe-Trading?

+

HKUDS/Vibe-Trading is maintained by HKUDS. The last recorded GitHub activity is dated 2026-09-11, with 11 open issues.

Are there alternatives to Vibe-Trading?

+

Yes. On ClaudeWave you can browse similar subagents at /categories/agents, sorted by popularity or recent activity.

Deploy Vibe-Trading to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: HKUDS/Vibe-Trading
[![Featured on ClaudeWave](https://claudewave.com/api/badge/hkuds-vibe-trading)](https://claudewave.com/repo/hkuds-vibe-trading)
<a href="https://claudewave.com/repo/hkuds-vibe-trading"><img src="https://claudewave.com/api/badge/hkuds-vibe-trading" alt="Featured on ClaudeWave: HKUDS/Vibe-Trading" width="320" height="64" /></a>

More Subagents

Vibe-Trading alternatives