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

306 lines
7.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OpenClaw Trading
一个基于ClawWork生存压力机制的多Agent量化交易系统。
## 系统概述
OpenClaw Trading是一个创新的量化交易框架通过模拟Agent在交易环境中的"生存压力"来实现智能决策。每个Agent都有自己的经济状况需要权衡交易、学习和风险管理的资源分配。
### 核心概念
- **ClawWork机制**: Agent根据经济状况繁荣/稳定/挣扎/临界/破产)决定行动策略
- **多Agent协作**: 使用LangGraph编排多个专业Agent并行分析市场
- **因子市场**: 可购买、解锁和交易各类技术指标因子
- **技能学习**: Agent可以通过学习提升交易技能
- **风险管理**: 头寸集中度、回撤控制和VaR计算
## 快速开始
### 安装
```bash
# 克隆仓库
git clone <repository-url>
cd openclaw-trading
# 安装依赖
pip install -e .
```
### 基础示例
```python
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`)
```python
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`)
```python
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并行分析
```python
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`)
```python
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`)
```python
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`)
```python
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个完整示例
```bash
# 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
```
## 测试
```bash
# 运行所有测试
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/ # 设计文档
```
## 配置
可以通过环境变量或配置文件自定义
```python
# 经济追踪器配置
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
)
```
## 开发计划
- [x] Phase 1: 基础框架 (100%)
- [x] Phase 2: 多Agent协作 (92%)
- [x] Phase 3: 高级功能 (25%)
- [x] Phase 4: 生产就绪 (78%)
详见 [design/TASKS.md](design/TASKS.md)
## 许可证
MIT License
## 贡献
欢迎提交Issue和Pull Request