Files
Knowledge/Quant/策略库/策略.md
T

363 lines
16 KiB
Markdown
Raw 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.
## 稳健策略
场外操作,纯债基金,主要是中期债券。
### 操作
基于利率走势判断大趋势,大笔买入,长期持有(>180 天)。
### 标的池
| 代码 | 名称 | 类型 | 久期 | 规模(亿) | 费率 | 备注 |
| ------ | ------------ | -------- | ---------- | ------ | --------- | ------------ |
| 675111 | 西部利得汇享债券A | 债券型-混合一级 | **主动久期管理** | 104.55 | **0.60%** | 可投可转债,主动久期管理 |
| 161716 | 招商双债增强债券 | 可转债 | 1-2年 | 50+ | 0.80% | 含可转债,弹性略大 |
| 000191 | 招商安泰债券A | 中长期纯债 | 2-3年 | 80+ | 0.80% | 老牌债基,业绩稳 |
| 007946 | 博时富瑞纯债债券 | 中长期纯债 | 2-3年 | 150+ | 0.30% | 信用债为主,波动小 |
| 003376 | 广发中债7-10年国开债 | 利率债 | 7-10年 | 200+ | 0.30% | 国开债指数,信用风险低 |
| 004351 | 易方达中债新综合 | 综合指数 | 3-5年 | 100+ | 0.30% | 宽基债券指数,分散好 |
### 标的评价策略
**核心评价指标(按权重排序):**
| 指标 | 权重 | 优秀阈值 | 良好阈值 | 不及格阈值 | 说明 |
| ------------ | --- | ------ | ------ | ------ | -------------- |
| **年化收益率** | 30% | > 4.5% | > 3.5% | < 2.5% | 近3年年化收益 |
| **最大回撤** | 25% | < 1.5% | < 2.5% | > 4.0% | 近3年最大回撤 |
| **最大回撤修复时间** | 15% | < 30天 | < 60天 | > 90天 | 从回撤高点创新高所需天数 |
| **夏普比率** | 15% | > 2.5 | > 1.5 | < 0.8 | 年化夏普(无风险收益率3%) |
| **卡尔马比率** | 10% | > 3.0 | > 2.0 | < 1.0 | 年化收益/最大回撤 |
| **波动率** | 5% | < 1.5% | < 2.5% | > 4.0% | 日收益率年化波动率 |
**策略特有评价逻辑:**
- **回撤敏感性**:稳健策略对回撤容忍度极低,最大回撤超过4%直接剔除
- **修复时间要求**:回撤修复超过90天的标的不适合稳健策略
- **规模要求**:规模小于20亿的债基流动性风险较高,需谨慎
- **历史业绩连续性**:连续3年正收益为硬性要求
- **信用风险**:持仓信用债评级低于AA+的占比超过30%需预警
**计算示例:**
```python
# 稳健策略评分公式
score = (
(annual_return / 0.045) * 0.30 +
(1 - max_drawdown / 0.04) * 0.25 +
(1 - recovery_days / 90) * 0.15 +
min(sharpe_ratio / 2.5, 1.0) * 0.15 +
min(calmar_ratio / 3.0, 1.0) * 0.10 +
(1 - volatility / 0.04) * 0.05
)
```
---
## 风险策略
场外操作,高波动周期明显的宽基、行业基金。
### 操作
基于市盈率、市净率以及行业周期判断,低估区间定投,高估区间卖出。周期一般 1年~3年。
### 标的池
| 代码 | 名称 | 类型 | 跟踪指数 | 规模(亿) | 费率 | 备注 |
| ------ | ------------- | ---- | ------- | ----- | ----- | -------- |
| 163407 | 兴全沪深300指数增强 | 宽基增强 | 沪深300 | 100+ | 1.00% | 超额收益稳定 |
| 001550 | 天弘中证医药100A | 行业指数 | 中证医药100 | 50+ | 0.60% | 医药行业,长周期 |
| 161725 | 招商中证白酒指数 | 行业指数 | 中证白酒 | 600+ | 1.00% | 消费核心,高波动 |
| 519671 | 银河定投宝中证500 | 宽基指数 | 中证500 | 20+ | 1.20% | 中小盘代表 |
| 001475 | 易方达国防军工混合 | 行业主题 | 军工指数 | 80+ | 1.50% | 强周期,波动大 |
| 007339 | 易方达中证新能源ETF联接 | 行业指数 | 中证新能源 | 150+ | 0.50% | 新能源赛道 |
| 164906 | 交银中证海外中国互联网 | 海外指数 | 中国互联网50 | 200+ | 1.20% | 中概股,周期明显 |
### 标的评价策略
**核心评价指标(按权重排序):**
| 指标 | 权重 | 优秀阈值 | 良好阈值 | 不及格阈值 | 说明 |
| ------------ | --- | ------- | ------- | --------- | -------------- |
| **年化收益率** | 25% | > 15% | > 10% | < 5% | 牛熊完整周期年化收益 |
| **最大回撤** | 20% | < 35% | < 45% | > 60% | 完整牛熊周期最大回撤 |
| **最大回撤修复时间** | 15% | < 180天 | < 360天 | > 720天 | 熊市底部创新高所需时间 |
| **夏普比率** | 15% | > 1.2 | > 0.8 | < 0.3 | 年化夏普(无风险收益率3%) |
| **索提诺比率** | 10% | > 1.5 | > 1.0 | < 0.5 | 下行风险调整收益 |
| **盈亏比** | 10% | > 1.8 | > 1.3 | < 0.8 | 平均盈利/平均亏损 |
| **Beta系数** | 5% | 0.8-1.2 | 0.6-1.5 | <0.5或>1.8 | 相对于大盘的波动系数 |
**策略特有评价逻辑:**
- **周期性要求**:必须有明确的牛熊周期特征,PE/PB历史分位数区分度高
- **回撤容忍度**:可容忍较大回撤,但需评估修复能力,超过2年无法修复的剔除
- **定投适配性**:
- 下跌趋势中定投摊薄成本效果评估
- 微笑曲线完整度评分
- 连续下跌超过6个月仍无法企稳的标的不适合定投
- **估值分布要求**:
- PE历史分位数跨度需覆盖0-100%
- 当前PE位于历史30%分位以下为低估买入区
- 高于历史70%分位为高估卖出区
- **行业生命周期**:优先选择处于成长期或成熟期初期的行业
**计算示例:**
```python
# 风险策略评分公式
score = (
min(annual_return / 0.15, 1.0) * 0.25 +
(1 - max_drawdown / 0.6) * 0.20 +
(1 - recovery_days / 720) * 0.15 +
min(sharpe_ratio / 1.2, 1.0) * 0.15 +
min(sortino_ratio / 1.5, 1.0) * 0.10 +
min(profit_loss_ratio / 1.8, 1.0) * 0.10 +
(1 - abs(beta - 1.0) / 0.8) * 0.05
)
```
---
## 进阶策略
场内操作,大趋势向上的风格基金,主要是红利和自由现金流。
### 操作
基于市盈率、市净率以及股息率,大跌买入,中长期持有,高估卖出部分。
### 标的池
| 代码 | 名称 | 类型 | 风格 | 规模(亿) | 费率 | 备注 |
| --- | --- | --- | --- | --- | --- | --- |
| 501029 | 华宝标普中国A股红利机会LOF | 红利指数 | 高股息 | 30+ | 1.25% | 标普红利,质量筛选 |
| 100032 | 富国中证红利指数增强 | 红利增强 | 高股息 | 50+ | 1.20% | 老牌红利,超额稳 |
| 000614 | 德国DAX指数ETF联接 | 海外指数 | 质量 | 10+ | 1.20% | 德国蓝筹,现金流好 |
| 513030 | 华安德国DAXETF | 海外ETF | 质量 | 20+ | 0.80% | 场内交易,流动性好 |
| 501046 | 汇添富中证主要消费ETF联接 | 行业消费 | 必选消费 | 100+ | 1.00% | 高ROE,现金流稳 |
| 159928 | 汇添富中证主要消费ETF | 场内消费 | 必选消费 | 300+ | 0.50% | 场内交易,流动性极佳 |
| 515080 | 华夏中证红利ETF | 场内红利 | 高股息 | 50+ | 0.50% | 场内红利,低费率 |
### 标的评价策略
**核心评价指标(按权重排序):**
| 指标 | 权重 | 优秀阈值 | 良好阈值 | 不及格阈值 | 说明 |
| --- | --- | --- | --- | --- | --- |
| **年化收益率** | 20% | > 12% | > 8% | < 4% | 近5年年化收益 |
| **最大回撤** | 20% | < 25% | < 35% | > 50% | 近5年最大回撤 |
| **最大回撤修复时间** | 12% | < 120天 | < 240天 | > 480天 | 从回撤高点创新高天数 |
| **夏普比率** | 12% | > 1.5 | > 1.0 | < 0.5 | 年化夏普(无风险收益率3%) |
| **卡玛比率** | 10% | > 0.6 | > 0.4 | < 0.2 | 年化收益/最大回撤 |
| **信息比率** | 10% | > 1.0 | > 0.6 | < 0.2 | 超额收益/跟踪误差 |
| **股息率** | 10% | > 4% | > 3% | < 1.5% | 近12个月股息率 |
| **自由现金流收益率** | 6% | > 8% | > 5% | < 2% | FCF/市值 |
**策略特有评价逻辑:**
- **质量因子优先**:
- 连续5年ROE > 12%为硬性要求
- 资产负债率 < 50%(金融行业除外)
- 经营现金流/净利润 > 80%
- **红利可持续性**:
- 连续分红年数 > 5年
- 分红增长率 > 5%(近3年平均)
- 派息率在30%-70%区间,过高不可持续
- **趋势确认**:
- 250日均线向上为大趋势向上确认
- 价格位于250日均线以上时加仓
- 跌破250日均线且30日内无法收回减仓
- **估值安全边际**:
- 买入时PE低于历史50%分位
- PB低于历史40%分位
- 股息率高于历史60%分位
**计算示例:**
```python
# 进阶策略评分公式
score = (
min(annual_return / 0.12, 1.0) * 0.20 +
(1 - max_drawdown / 0.5) * 0.20 +
(1 - recovery_days / 480) * 0.12 +
min(sharpe_ratio / 1.5, 1.0) * 0.12 +
min(calmar_ratio / 0.6, 1.0) * 0.10 +
min(information_ratio / 1.0, 1.0) * 0.10 +
min(dividend_yield / 0.04, 1.0) * 0.10 +
min(fcf_yield / 0.08, 1.0) * 0.06
)
```
---
## 趋势策略
场内操作,小资金追涨,短期持有(1天~30天)。主要操作宽基、行业基金。
### 操作
买短期强势走强,大跌反弹、箱体突破、价格新高。
### 标的池
| 代码 | 名称 | 类型 | 日均成交额(万) | 波动率 | 费率 | 备注 |
| --- | --- | --- | --- | --- | --- | --- |
| 510300 | 华泰柏瑞沪深300ETF | 宽基ETF | 300000+ | 中 | 0.03% | 流动性最佳,交易成本低 |
| 510500 | 南方中证500ETF | 宽基ETF | 200000+ | 中高 | 0.03% | 中小盘代表,弹性好 |
| 510180 | 华安上证180ETF | 宽基ETF | 50000+ | 中 | 0.03% | 大盘蓝筹,波动稳 |
| 588000 | 华夏科创50ETF | 科技ETF | 250000+ | 高 | 0.05% | 科创板,弹性极大 |
| 159915 | 易方达创业板ETF | 成长ETF | 150000+ | 高 | 0.03% | 创业板代表,趋势性强 |
| 512480 | 国联安中证全指半导体ETF | 行业ETF | 100000+ | 极高 | 0.05% | 半导体,波动大 |
| 512660 | 国泰中证军工ETF | 行业ETF | 80000+ | 高 | 0.05% | 军工,事件驱动型 |
| 512880 | 国泰中证全指证券公司ETF | 行业ETF | 150000+ | 高 | 0.05% | 证券,强周期突破 |
| 512010 | 易方达沪深300医药ETF | 行业ETF | 60000+ | 中高 | 0.05% | 医药,趋势持续性好 |
### 标的评价策略
**核心评价指标(按权重排序):**
| 指标 | 权重 | 优秀阈值 | 良好阈值 | 不及格阈值 | 说明 |
| --- | --- | --- | --- | --- | --- |
| **趋势胜率** | 25% | > 55% | > 45% | < 35% | 突破后5日上涨概率 |
| **盈亏比** | 20% | > 2.0 | > 1.5 | < 1.0 | 平均盈利/平均亏损(突破交易) |
| **最大回撤** | 15% | < 10% | < 15% | > 25% | 单笔交易最大回撤 |
| **夏普比率(日频)** | 15% | > 2.0 | > 1.2 | < 0.5 | 按交易日计算夏普 |
| **流动性评分** | 10% | > 90分 | > 70分 | < 50分 | 日均成交额+买卖价差 |
| **趋势强度** | 10% | > 80分 | > 60分 | < 40分 | ADX+均线乖离率 |
| **平均持仓周期** | 5% | 5-15天 | 3-20天 | <1或>30天 | 从买入到信号消失 |
**策略特有评价逻辑:**
- **流动性硬性要求**:
- 日均成交额 < 5000万的标的直接剔除
- 买卖价差 > 0.1%的标的交易成本过高
- 冲击成本 > 0.3%的标的不适合大资金
- **突破有效性评估**:
- 箱体突破后3日内不跌破突破价为有效突破
- 价格新高伴随成交量放大20%以上为有效
- 大跌反弹需跌破布林下轨后收回
- **趋势强度过滤**:
- ADX > 25为趋势行情,ADX < 20为震荡行情
- 只在ADX > 25时开仓
- 趋势策略在震荡行情中自动降低仓位
- **止损止盈要求**:
- 固定止损:买入价下跌5%强制止损
- 移动止盈:盈利超过8%后回撤30%止盈
- 时间止损:持有超过20日无盈利平仓
**计算示例:**
```python
# 趋势策略评分公式
score = (
min(win_rate / 0.55, 1.0) * 0.25 +
min(profit_loss_ratio / 2.0, 1.0) * 0.20 +
(1 - max_drawdown_per_trade / 0.25) * 0.15 +
min(daily_sharpe / 2.0, 1.0) * 0.15 +
liquidity_score / 100 * 0.10 +
trend_strength_score / 100 * 0.10 +
(1 - abs(avg_holding_days - 10) / 20) * 0.05
)
```
---
## 通用回测框架说明
### 回测数据要求
| 数据类型 | 频率 | 时间跨度要求 | 字段 |
| ---- | --- | --------------------- | -------------------------------------- |
| 价格数据 | 日频 | 稳健/风险/进阶 > 5年,趋势 > 1年 | open, high, low, close, volume, amount |
| 估值数据 | 日频 | > 5年 | pe, pb, ps, pcf, dividend_yield |
| 指数数据 | 日频 | > 5年 | 基准指数收盘价用于超额计算 |
| 财务数据 | 季频 | > 5年 | roe, roa, fcf, revenue, profit |
### 回测指标计算公式
**收益率类:**
```python
# 累计收益率
cumulative_return = (final_value / initial_value) - 1
# 年化收益率
annualized_return = (1 + cumulative_return) ** (252 / trading_days) - 1
# 对数收益率
log_return = np.log(prices / prices.shift(1))
```
**风险类:**
```python
# 最大回撤
peak = value.expanding(min_periods=1).max()
drawdown = (value - peak) / peak
max_drawdown = drawdown.min()
# 最大回撤修复时间
recovery_days = (drawdown == 0).idxmax() - (drawdown == max_drawdown).idxmax()
# 波动率(年化)
volatility = log_return.std() * np.sqrt(252)
# 下行波动率
downside_returns = log_return[log_return < 0]
downside_volatility = downside_returns.std() * np.sqrt(252)
```
**风险调整收益类:**
```python
risk_free_rate = 0.03 # 无风险收益率3%
# 夏普比率
excess_return = annualized_return - risk_free_rate
sharpe_ratio = excess_return / volatility
# 索提诺比率
sortino_ratio = excess_return / downside_volatility
# 卡玛比率
calmar_ratio = annualized_return / abs(max_drawdown)
# 信息比率
benchmark_return = benchmark_annualized_return - risk_free_rate
tracking_error = (excess_return - benchmark_excess_return).std()
information_ratio = (annualized_return - benchmark_annualized_return) / tracking_error
```
**交易统计类:**
```python
# 胜率
win_rate = len(winning_trades) / len(all_trades)
# 盈亏比
avg_profit = winning_trades['profit'].mean()
avg_loss = abs(losing_trades['profit'].mean())
profit_loss_ratio = avg_profit / avg_loss
# 最大连续亏损
max_consecutive_losses = max(sum(1 for _ in g)
for k, g in groupby(trades['profit'] < 0)
if k)
```
### 策略对比矩阵
| 维度 | 稳健策略 | 风险策略 | 进阶策略 | 趋势策略 |
| --- | --- | --- | --- | --- |
| **操作市场** | 场外 | 场外 | 场内 | 场内 |
| **典型持仓周期** | > 180天 | 1-3年 | 6-18个月 | 1-30天 |
| **资金占比建议** | 40% | 30% | 20% | 10% |
| **预期年化收益** | 3%-5% | 8%-15% | 8%-12% | 15%-30% |
| **最大回撤容忍** | < 4% | < 60% | < 50% | < 25% |
| **核心评价指标** | 夏普+卡玛 | 修复时间+索提诺 | 质量因子+IR | 胜率+盈亏比 |
| **止损方式** | 信用事件止损 | 估值止损 | 趋势破位止损 | 固定比例止损 |
| **调仓频率** | 季度 | 月度 | 双周 | 日频 |
### 过拟合防范措施
1. **样本外测试要求**:
- 回测数据分为训练集(70%)和测试集(30%)
- 测试集夏普比率下降超过20%判定过拟合
- 必须包含至少一个完整牛熊周期
2. **参数敏感性测试**:
- 核心参数在±20%范围内扰动测试
- 收益波动超过30%的参数组合稳定性差
- 最优参数必须位于参数空间中部
3. **交易成本建模**:
- 场外申购费:0.15%
- 场外赎回费:持有<7天1.5%,<30天0.75%,>30天0.5%
- 场内佣金:0.03%,最低5元
- 冲击成本:根据流动性动态计算
4. **最小交易次数**:
- 稳健策略:> 10笔/5年
- 风险策略:> 30笔/5年
- 进阶策略:> 50笔/5年
- 趋势策略:> 200笔/1年