stock/README.md
ZhangPeng 9aecdd036c Initial commit: OpenClaw Trading - AI多智能体量化交易系统
- 添加项目核心代码和配置
- 添加前端界面 (Next.js)
- 添加单元测试
- 更新 .gitignore 排除缓存和依赖
2026-02-27 03:47:40 +08:00

7.5 KiB
Raw Blame History

OpenClaw Trading

一个基于ClawWork生存压力机制的多Agent量化交易系统。

系统概述

OpenClaw Trading是一个创新的量化交易框架通过模拟Agent在交易环境中的"生存压力"来实现智能决策。每个Agent都有自己的经济状况需要权衡交易、学习和风险管理的资源分配。

核心概念

  • ClawWork机制: Agent根据经济状况繁荣/稳定/挣扎/临界/破产)决定行动策略
  • 多Agent协作: 使用LangGraph编排多个专业Agent并行分析市场
  • 因子市场: 可购买、解锁和交易各类技术指标因子
  • 技能学习: Agent可以通过学习提升交易技能
  • 风险管理: 头寸集中度、回撤控制和VaR计算

快速开始

安装

# 克隆仓库
git clone <repository-url>
cd openclaw-trading

# 安装依赖
pip install -e .

基础示例

from openclaw.core.economy import TradingEconomicTracker

# 创建经济追踪器
tracker = TradingEconomicTracker(
    agent_id="my_agent",
    initial_capital=10000.0
)

# 检查生存状态
status = tracker.get_survival_status()
print(f"当前状态: {status.value}")
print(f"余额: ${tracker.balance:,.2f}")

# 模拟决策成本
cost = tracker.calculate_decision_cost(
    tokens_input=1000,
    tokens_output=500
)

# 模拟交易
trade_result = tracker.calculate_trade_cost(
    trade_value=1000.0,
    is_win=True,
    win_amount=100.0
)

核心模块

1. Agent系统 (openclaw.agents)

from openclaw.agents.trader import TraderAgent

agent = TraderAgent(
    agent_id="trader_001",
    initial_capital=5000.0,
    skill_level=0.6
)

关键特性:

  • 每个Agent独立的经济追踪器
  • 可升级的技能系统
  • 事件钩子机制(交易、学习、破产等)

2. 经济系统 (openclaw.core.economy)

Agent的生存状态根据资金水平自动计算

状态 资金比例 行为特征
繁荣(Thriving) >150% 70%交易30%学习
稳定(Stable) 100-150% 80%交易20%学习
挣扎(Struggling) 50-100% 90%交易10%学习
临界(Critical) <50% 100%最小化交易
破产(Bankrupt) <阈值 停止交易

3. 工作/交易平衡 (openclaw.core.work_trade_balance)

from openclaw.core.work_trade_balance import WorkTradeBalance, WorkTradeConfig

config = WorkTradeConfig()
balance = WorkTradeBalance(
    economic_tracker=tracker,
    config=config
)

# 决定活动
decision = balance.decide_activity(skill_level=0.6, win_rate=0.55)
# 返回: ActivityDecision.TRADE / LEARN / MINIMAL_TRADE / PAPER_TRADE

# 获取交易强度
intensity = balance.get_trade_intensity(win_rate=0.55)
# 返回: position_size_multiplier, max_concurrent_positions, risk_per_trade

4. LangGraph工作流 (openclaw.workflow)

6个专业Agent并行分析

from openclaw.workflow.trading_workflow import TradingWorkflow

workflow = TradingWorkflow(
    symbol="AAPL",
    initial_capital=1000.0,
    enable_parallel=True
)

# 工作流图:
# START → [MarketAnalysis, SentimentAnalysis, FundamentalAnalysis] → BullBearDebate → DecisionFusion → RiskAssessment → END

5. 因子市场 (openclaw.factor)

from openclaw.factor import FactorStore

store = FactorStore(agent_id="factor_trader", tracker=tracker)

# 列出可用因子
factors = store.list_available()

# 获取因子
factor = store.get_factor("buy_ma_crossover")

# 购买高级因子
result = store.purchase("buy_ml_prediction")

# 使用因子
from openclaw.factor.types import FactorContext
context = FactorContext(symbol="AAPL", equity=10000.0)
signal = factor.evaluate(context)

因子类型:

  • 基础因子(免费): MA Crossover, RSI Oversold, MACD Crossover, Bollinger Band
  • 高级因子(付费): ML Prediction, Sentiment Momentum, Multi-Factor Ensemble

6. 学习系统 (openclaw.learning)

from openclaw.learning.manager import CourseManager
from openclaw.learning.courses import create_technical_analysis_course

manager = CourseManager(agent=agent)

# 检查是否可以注册
can_enroll, reason = manager.can_enroll("technical_analysis_101")

# 注册课程
success, message = manager.enroll("technical_analysis_101")

# 更新进度
manager.update_progress("technical_analysis_101", 50)

# 查看技能等级
for skill, level in manager.skill_levels.items():
    print(f"{skill.value}: {level:.2f}")

7. 投资组合风险管理 (openclaw.portfolio)

from openclaw.portfolio.risk import PortfolioRiskManager

manager = PortfolioRiskManager(
    portfolio_id="my_portfolio",
    max_concentration_pct=0.20,
    max_drawdown_pct=0.10,
    var_limit_pct=0.05
)

# 检查头寸集中度
result = manager.concentration_limit.check_concentration(
    symbol="AAPL",
    position_value=2500.0,
    portfolio_value=10000.0
)

# 回撤控制
manager.drawdown_controller.update(portfolio_value=9500.0)
allowed = manager.drawdown_controller.is_trading_allowed()

# VaR计算
var_result = manager.var_calculator.calculate_var(
    portfolio_value=10000.0,
    positions={"AAPL": 3000.0, "GOOGL": 2000.0},
    volatilities={"AAPL": 0.25, "GOOGL": 0.20}
)

示例脚本

项目包含6个完整示例

# 1. 快速开始 - 经济追踪基础
python examples/01_quickstart.py

# 2. LangGraph工作流演示
python examples/02_workflow_demo.py

# 3. 因子市场使用
python examples/03_factor_market.py

# 4. 学习系统演示
python examples/04_learning_system.py

# 5. 工作/交易平衡决策
python examples/05_work_trade_balance.py

# 6. 投资组合风险管理
python examples/06_portfolio_risk.py

测试

# 运行所有测试
pytest tests/ -v

# 运行特定模块测试
pytest tests/unit/test_economy.py -v
pytest tests/integration/ -v

项目结构

openclaw/
├── agents/           # Agent实现
│   ├── base.py      # 基础Agent类
│   ├── trader.py    # 交易Agent
│   └── ...          # 专业分析Agent
├── core/            # 核心功能
│   ├── economy.py   # 经济追踪
│   └── work_trade_balance.py  # 工作/交易平衡
├── factor/          # 因子市场
│   ├── base.py      # 因子基类
│   ├── basic.py     # 基础因子
│   ├── advanced.py  # 高级因子
│   └── store.py     # 因子商店
├── learning/        # 学习系统
│   ├── manager.py   # 课程管理
│   └── courses.py   # 预定义课程
├── portfolio/       # 投资组合
│   └── risk.py      # 风险管理
├── workflow/        # LangGraph工作流
│   ├── trading_workflow.py
│   └── state.py
└── utils/           # 工具函数
    └── logging.py

examples/            # 示例脚本
tests/               # 测试用例
design/              # 设计文档

配置

可以通过环境变量或配置文件自定义:

# 经济追踪器配置
TradingEconomicTracker(
    agent_id="agent_001",
    initial_capital=10000.0,
    token_cost_per_1m_input=3.0,    # $3 per 1M input tokens
    token_cost_per_1m_output=15.0,  # $15 per 1M output tokens
    trade_fee_rate=0.001,           # 0.1% trading fee
    data_cost_per_call=0.01         # $0.01 per market data call
)

开发计划

  • Phase 1: 基础框架 (100%)
  • Phase 2: 多Agent协作 (92%)
  • Phase 3: 高级功能 (25%)
  • Phase 4: 生产就绪 (78%)

详见 design/TASKS.md

许可证

MIT License

贡献

欢迎提交Issue和Pull Request