Files
sanguo_vnpy_v2/docs/research
claude_dev de04a8904b feat(portfolio): 移植3聚宽策略到BulletTrade + 8bug修正 + 数据缺口文档
三策略(聚宽py2→BulletTrade 0.9.2,BrokerFacade注入跨版本兼容):
- momentum_timing 动量择时(牛熊分界+行业RPS+均线,切回10中证行业指数)
- value_selection 价值精选(6条基本面过滤,切回沪深300)
- small_cap 小市值(去IC对冲,切回000985中证全指)

框架:
- runner_backtest 加 --strategy 分发(原硬编码all_weather)
- provider 加 get_value_metrics(价值精选6条基本面,NOTICE_DATE治前视偏差)
- 72单测全过(21+27+24)

修8个回测实测发现的真bug:
- 01第⑥条EPS绝对值0.08~0.5与①大盘矛盾→6条交集恒空致全程空仓,按注释本意改净利润同比8~50%
- 03原帖calRPS取数区间错(get_price start=end只取1天)→涨跌幅恒0 RPS失效;date.today()取真实今天非回测日
- 02 universe 000985不在constituent_unified→候选池空

VPS实测(短区间验证逻辑,非长期表现): 01价值+23%/03行业轮动+48%/02选出20只小盘

数据缺口(详见docs/research/joinquant_strategies/SUMMARY.md + data_gaps_fix_plan.md):
- 三表"1/3损坏"误报已撤回(全扫5530文件/表0损坏,沪深95%+健康,仅北交所920xxx空,不做北交所)
- 真实缺口: 行业成份股(G1已补)/000985(G2已补)/IC期货(02对冲去掉)/provider批量接口(G5待做,解锁长回测)
2026-07-28 22:20:49 +08:00
..

量化研究目录

本目录用于存放量化投研相关的文档和成果。

目录结构

research/
├── factors/          # 因子研究
│   ├── alpha/       # Alpha因子
│   ├── technical/   # 技术因子
│   ├── fundamental/# 基本面因子
│   └── risk/        # 风险因子
├── strategies/      # 策略研究
│   ├── cta/         # CTA策略
│   ├── alpha/       # Alpha策略
│   ├── arbitrage/   # 套利策略
│   └── option/      # 期权策略
└── backtests/       # 回测报告
    ├── summary/     # 回测汇总
    ├── detail/      # 详细报告
    └── analysis/    # 分析报告

文档命名规范

类型 命名格式 示例
因子文档 factors/分类/因子名.md factors/alpha/momentum.md
策略文档 strategies/分类/策略名.md strategies/cta/dual-thrust.md
回测报告 backtests/detail/策略_日期.md backtests/detail/dual-thrust_20240101.md

因子研究模板

factors/alpha/momentum.md

# 动量因子研究

## 因子描述

动量因子捕捉价格趋势延续性。

## 计算公式

\`\`\`python
def calculate_momentum(close_prices: pd.Series, period: int = 20) -> pd.Series:
    \"\"\"
    计算动量因子

    Parameters
    ----------
    close_prices : pd.Series
        收盘价序列
    period : int
        计算周期

    Returns
    -------
    pd.Series
        动量因子值
    \"\"\"
    return close_prices / close_prices.shift(period) - 1
\`\`\`

## 参数设置

| 参数 | 默认值 | 说明 |
|-----|-------|------|
| period | 20 | 计算周期 |

## 回测结果

| 指标 | 数值 |
|-----|------|
| 年化收益 | 8.5% |
| 夏普比率 | 1.2 |
| 最大回撤 | -12% |

## 分析结论

...

## 参考文献

- Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers

策略研究模板

strategies/cta/dual-thrust.md

# Dual Thrust 策略

## 策略概述

Dual Thrust 是一种突破类策略,基于开盘价波动范围确定上下轨。

## 策略逻辑

\`\`\`python
class DualThrustStrategy(CtaStrategyTemplate):
    \"\"\"Dual Thrust 策略\"\"\"

    def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
        super().__init__(cta_engine, strategy_name, vt_symbol, setting)

        # 参数
        self.k1 = setting.get("k1", 0.5)  # 上轨系数
        self.k2 = setting.get("k2", 0.5)  # 下轨系数

    def on_bar(self, bar):
        \"\"\"K线回调\"\"\"
        # 计算上下轨
        # 判断突破
        # 下单逻辑
        pass
\`\`\`

## 参数优化

| 参数 | 范围 | 步长 |
|-----|------|------|
| k1 | 0.3-0.7 | 0.05 |
| k2 | 0.3-0.7 | 0.05 |

## 回测表现

### 股指期货

| 品种 | 年化收益 | 夏普比率 | 最大回撤 |
|-----|---------|---------|---------|
| IF | 12% | 1.5 | -15% |
| IH | 8% | 1.2 | -12% |
| IC | 10% | 1.3 | -14% |

## 风险提示

- 趋势市场表现好,震荡市场亏损
- 需要做好止损设置

回测报告模板

backtests/detail/report_template.md

# 策略回测报告

## 基本信息

| 项目 | 数值 |
|-----|------|
| 策略名称 | xxx |
| 回测区间 | 2020-01-01 至 2023-12-31 |
| 交易品种 | IF2412 |
| 初始资金 | 100万 |

## 绩效指标

### 收益指标

| 指标 | 数值 |
|-----|------|
| 总收益率 | 50% |
| 年化收益率 | 12.5% |
| 基准收益率 | 8% |
| 超额收益率 | 4.5% |

### 风险指标

| 指标 | 数值 |
|-----|------|
| 波动率 | 15% |
| 夏普比率 | 1.25 |
| 卡玛比率 | 0.83 |
| 最大回撤 | -15% |

### 交易统计

| 指标 | 数值 |
|-----|------|
| 总交易次数 | 500 |
| 盈利次数 | 280 |
| 亏损次数 | 220 |
| 胜率 | 56% |
| 盈亏比 | 1.8 |

## 分析图表

### 资金曲线
\`\`\`
[图表]
\`\`\`

### 回撤曲线
\`\`\`
[图表]
\`\`\`

## 结论与建议

...

研究工作流

graph LR
    A[因子发现] --> B[因子验证]
    B --> C[策略构建]
    C --> D[历史回测]
    D --> E{通过?}
    E -->|否| A
    E -->|是| F[模拟测试]
    F --> G{通过?}
    G -->|否| A
    G -->|是| H[实盘上线]

数据管理

数据源

  • 历史行情: 数据库存储
  • 实时行情: 接口订阅
  • 基本面: 第三方数据源

数据更新

  • 日线数据: 每日盘后更新
  • 分钟数据: 实时更新
  • 财务数据: 每季度更新