Install
openclaw skills install trading-agents-skillOrchestrate a swarm of specialized Claude subagents that simulate a professional trading firm to analyze stocks and produce trading decisions. Based on the TradingAgents framework (arXiv 2412.20138), this skill deploys analyst agents (fundamental, technical, sentiment, news), bull/bear research debaters, a trader, a risk manager, and a portfolio manager — all collaborating to produce a comprehensive trading recommendation. Use this skill whenever the user asks about stock analysis, trading decisions, market research for specific tickers, investment recommendations, portfolio decisions, or wants a multi-perspective analysis of any publicly traded security. Also trigger when the user mentions "trading agents", "multi-agent trading", "stock swarm", or wants an AI-driven trading desk analysis.
openclaw skills install trading-agents-skillThis skill orchestrates a swarm of Claude subagents that mirror the structure of a real trading firm. Each agent has a distinct role, specific tools, and a clear mandate. The agents collaborate through structured reports, adversarial debate, and sequential review — producing a final trading recommendation that reflects diverse analytical perspectives.
This skill requires Python, pip, and uv to be installed on the system. Before running any analysis, set up the Python environment:
Install uv (if not already installed):
pip install -U uv
Sync the project dependencies from the skill directory:
cd {SKILL_PATH} && uv sync
This installs all required packages (yfinance, akshare, etc.) into a managed virtual environment
based on pyproject.toml. You only need to do this once, or when dependencies change.
All Python scripts in this skill must be executed with uv run to ensure they use the correct
environment. For example: uv run scripts/fetch_market_data.py NVDA
The system follows a five-stage pipeline inspired by the TradingAgents paper:
Stage 1: Analysis (parallel) → 4 analyst agents gather data simultaneously
Stage 2: Research (debate) → Bull and bear researchers debate the findings
Stage 3: Trading decision → Trader synthesizes everything into a signal
Stage 4: Risk review → Risk manager evaluates the proposed trade
Stage 5: Final approval → Portfolio manager makes the go/no-go call
When the user asks for a stock analysis or trading decision, follow these steps:
Extract from the user's message:
If the ticker is ambiguous or missing, ask the user to clarify.
Spawn four analyst subagents simultaneously using the Agent tool. Each agent gets its own
prompt from the agents/ directory. Pass each agent the ticker, date, and any user context.
Read the agent prompts before spawning:
agents/fundamental_analyst.md — Analyzes financial health, valuation, earningsagents/technical_analyst.md — Analyzes price patterns, indicators, chart signalsagents/sentiment_analyst.md — Gauges market mood from social media and forumsagents/news_analyst.md — Evaluates recent news and macro eventsEach analyst should save their report to a working directory. The prompts instruct them on
format and what tools to use (web search, yfinance via the scripts/fetch_market_data.py script, etc.).
Important: Launch all four in a single message to maximize parallelism. Don't wait for one to finish before starting the next.
Once all four analysts complete, read their reports. Compile them into a single briefing document that will feed into the research phase.
Spawn the debate in rounds. For each round:
agents/bull_researcher.md
and agents/bear_researcher.md). Give them all four analyst reports plus any previous debate history.Default is 1 round. For deeper analysis, the user can request 2-3 rounds. More rounds means more thorough analysis but also more time and tokens.
After the debate, spawn the research manager (read agents/research_manager.md) to synthesize
the debate into a balanced research summary.
After the research manager produces the summary, compile a standalone debate record document
(debate_record.md) that presents the full bull/bear debate process in a clear, readable format.
This document should include:
This gives the reader a single document to see the entire adversarial debate process, rather than having to read multiple separate files. The individual bull_case.md, bear_case.md, and research_summary.md files should still be saved separately as well.
Spawn the trader agent (read agents/trader.md). Give it:
The trader produces a concrete recommendation: BUY, SELL, or HOLD, with position sizing guidance, entry/exit points, and confidence level.
Spawn the risk manager (read agents/risk_manager.md). Give it:
The risk manager evaluates: position size appropriateness, portfolio concentration risk, volatility assessment, downside scenarios, and liquidity concerns.
Spawn the portfolio manager (read agents/portfolio_manager.md). Give it everything:
The portfolio manager makes the final call: APPROVE, REJECT, or MODIFY the recommendation, with reasoning.
Produce two outputs:
A comprehensive report file (Markdown) saved to the workspace, containing:
Additionally, a debate_record.md file that compiles the entire bull/bear debate process into a single readable document (see Step 3.5).
A conversational summary in the chat, covering:
scripts/fetch_market_data.py — Fetches price history, financial statements, and key metrics via yfinancescripts/technical_indicators.py — Computes common technical indicators (RSI, MACD, Bollinger Bands, moving averages)These scripts are used by the analyst agents. Run them from the skill directory using uv run:
uv run scripts/fetch_market_data.py <TICKER> [-o OUTPUT_DIR]
uv run scripts/technical_indicators.py <TICKER> [-o OUTPUT_DIR]
All analyst reports must meet these standards:
Primary sources first: Financial data should come from first-hand, authoritative sources: company investor relations pages, stock exchange filings (SEC EDGAR, HKEX, SSE/SZSE), official earnings releases, and annual/quarterly reports. Third-party aggregators (Yahoo Finance, Bloomberg, etc.) are acceptable as supplementary sources but should be labeled as such.
Every key data point must cite its source with a clickable URL, the reporting period (e.g., "FY2025", "Q1 2026"), and the currency/unit (e.g., "人民币/百万元", "USD millions").
News must come from authoritative media, prioritized in this order: official company announcements > tier-1 financial media (Reuters, Bloomberg, FT, WSJ, 财新, 第一财经) > regional authoritative media > industry publications. Each news item must include the publication date and a clickable link.
Sentiment claims must be attributed to specific sources with links, not vague statements like "market sentiment is bullish." For Chinese/HK stocks, 雪球 (xueqiu.com) should be the primary sentiment data source.
Technical indicators must include plain-language explanations so non-expert readers can understand what each indicator means and why it matters.
Industry-specific analysis is required: Analysts and risk managers must go beyond generic metrics and cover sector-specific KPIs. For example:
/sessions/..., /tmp/..., working directory paths) in any report that the reader will see. These are implementation details. Reports should reference other reports by filename only (e.g., "详见 fundamental_analysis.md"), not by absolute path.