- 添加项目核心代码和配置 - 添加前端界面 (Next.js) - 添加单元测试 - 更新 .gitignore 排除缓存和依赖
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%)
许可证
MIT License
贡献
欢迎提交Issue和Pull Request!
Description
Languages
Python
79.9%
TypeScript
13.3%
HTML
5.1%
JavaScript
1%
MDX
0.5%
Other
0.2%