“质量·低波·可转债”选股策略
由bqu1vdra创建,最终由bqlrb9i6 被浏览 24 用户
一、策略总览
从当期持有存续可转债的 A 股正股中,筛选出盈利能力达标(ROE > 5%)的股票,再按20日均换手率从低到高排序,结合行业分散约束,最终等权持有换手率最低的10只股票,每 15 个交易日调仓一次。
策略逻辑图
全市场 A 股
│
▼
动态可转债股票池过滤(仅保留当日有存续可转债的正股)
│
▼
基础质量过滤(非ST / 非停牌 / 上市>1年 / 市值>10亿/ PE在(0,100) / PB>0 / ROE>5%)
│
▼
计算20日均换手率(主排序因子)
│
▼
行业分散约束(每个申万一级行业最多3只)
│
▼
选出换手率最低的前10只
│
▼
等权持仓,每15个交易日调仓
策略参数一览表
| 参数 | 值 | 说明 |
|---|---|---|
| 股票池 | 可转债正股(动态) | 每日按存续状态动态匹配 |
| 选股因子 | 20日均换手率(升序) | 越低越优先 |
| 质量门槛 | ROE(TTM) > 5% | 剔除盈利能力弱的公司 |
| 持股数量 | 10 只 | 等权,每只权重 10% |
| 行业上限 | 每行业最多 3 只 | 申万一级行业 |
| 调仓频率 | 每 15 个交易日 | 约 3 周调仓一次 |
| 手续费 | 买入 0.03%,卖出 0.13% | 含印花税,最低 5 元 |
| 初始资金 | 50 万元 | — |
二、核心概念:什么是可转债
2.1 可转债的定义
可转换债券(Convertible Bond,简称"可转债")是一种特殊的公司债券,持有人在约定的期限内,可以按照事先确定的转股价格,将债券转换为发行公司的普通股股票。
简单理解:
可转债 = 普通债券(有利息保底)+ 看涨期权(可转为股票)
它兼具债券的保本属性和股票的上涨弹性,被投资者称为"进可攻、退可守"的品种
可转债最大的魅力,在于它在不同市场环境下展现出的“双重性格”
- 债券属性(保底功能):当公司股价下跌时,你可以选择不转股,继续当债券持有。只要公司不违约,你就能拿到到期后的本金和利息。这就像一张“安全垫”,为你的投资提供了下行保护。
- 股票属性(进攻功能):当公司股价上涨时,你可以把手里的债券转换成股票,从而享受到股价上涨带来的收益。这意味着它的上涨空间和股票一样,潜力很大。
这种特性让可转债在历史上表现出一种“涨起来像股票,跌起来像债券”的风险收益特征,也因此常被称为“攻守兼备”的投资工具。
2.2 可转债的基本要素
| 要素 | 说明 | 典型数值 |
|---|---|---|
| 票面价值 | 每张可转债的面值 | 100 元 |
| 票面利率 | 每年支付的利息 | 0.2%~1.5%(逐年递增) |
| 转股价格 | 转换为股票时的换算价格 | 发行时约定,可下修 |
| 转股比例 | 每张债券可换多少股 | 100元 ÷ 转股价 |
| ★存续期 | 债券的有效期 | 通常 6 年 |
| 赎回条款 | 正股连续 15/20 日收盘价 ≥ 转股价×130%,发行方可强制赎回 | 触发强赎后几乎必须转股 |
| 回售条款 | 正股连续 30 日收盘价 ≤ 转股价×70%,持有人可要求回售 | 保护持有人的底线 |
| 下修条款 | 正股连续 15/20 日收盘价 ≤ 转股价×85%,发行方可申请下修转股价 | 保护投资者,刺激正股上涨 |
2.3 可转债的价格构成
可转债的市场价格由两部分构成:
可转债价格 ≈ 债券价值(纯债底价)+ 转股期权价值
债券价值 = 按同级别债券折现率计算的票息现值(通常 85~95 元)
期权价值 = 正股价格与转股价之间的空间所产生的价值
举例说明:
- 某公司发行可转债,转股价 20 元,正股现价 25 元
- 每张 100 元面值的可转债可转 100÷20 = 5 股
- 转股价值 = 5 × 25 = 125 元
- 则可转债市价通常高于 125 元(含溢价)
2.4 可转债市场规模
截至 2025 年底,中国 A 股可转债市场:
- 存续可转债数量:约 500~600 只
- 对应正股(有存续可转债的 A 股公司):约 500~700 家
- 覆盖多个行业:银行、制造业、化工、医药、科技等等
三、为什么选择可转债正股作为股票池
这是本策略最核心的设计逻辑之一,也是与普通低换手率策略最本质的区别。
3.1 发行可转债的公司具有“天然质量门槛”
可转债并非所有公司都能发行,监管机构对发行人有严格的条件限制:
| 要求项目 | 具体标准(参考监管要求) |
|---|---|
| 盈利能力 | 最近 3 年连续盈利,且平均净利润能够覆盖可转债一年利息 |
| 资产负债率 | 发行后不得超过 70%(部分行业有豁免) |
| 信用评级 | 通常需要 AA 及以上(主体评级) |
| 上市年限 | 通常要求上市满一定年限 |
| 违规记录 | 最近 3 年无重大违法违规行为 |
结论:能够发行可转债的公司,本身已经过了监管层面的初步质量筛选,财务状况相对健康,盈利能力有一定保证,这为我们的股票池提供了天然的安全垫。
3.2 可转债存续期间,公司有强烈的"护盘"动机
可转债发行后,上市公司管理层有强烈动机维护正股股价,原因如下:
① 触发强制赎回条款(强赎)的需要
当正股价格连续 15~20 个交易日高于转股价的 130% 时,发行方可以以 103 元(含利息)强制赎回所有可转债
这对公司是极为有利的融资结果——以低利率(远低于银行贷款)募集到的资金,通过转股方式偿还,无需还本。因此,公司有动力推动股价上涨,促成转股。
② 下修转股价以避免回售压力
当正股持续低迷时,可转债持有人可能行使回售权,要求公司以 103~106 元回购债券
为避免这一情况(公司需大量现金偿债),管理层往往会通过下修转股价(降低换算比例)来提振可转债投资者信心,间接支撑正股股价。
③ 再融资声誉考量
可转债本质上是一种低成本融资工具。发行成功后,若正股表现差劲,债券顺利转股变得困难,公司未来的再融资能力和市场声誉将受损。因此管理层有长期动力维护股价表现。
3.3 可转债股票池的行业特征
有可转债的公司往往集中在以下行业(2023 年以来统计):
| 行业 | 占比估计 | 特点 |
|---|---|---|
| 制造业(机械、化工等) | ~30% | 资本开支需求大,适合发债融资 |
| 银行 | ~10% | 补充资本充足率的需求 |
| 医药生物 | ~10% | 研发投入大,需要低成本融资 |
| 电力设备/新能源 | ~8% | 产能扩张需求 |
| 公用事业/交通运输 | ~7% | 稳定现金流,信用评级高 |
| 其他 | ~35% | 多元化分布 |
可以看出,可转债股票池天然覆盖了多个实体经济行业,避免了全面暴露于纯金融/纯防御板块
3.4 与普通全市场选股的对比
| 对比维度 | 普通全市场 | 可转债正股池 |
|---|---|---|
| 股票数量 | 5000+ 只 | ~500~700 只 |
| 财务质量底线 | 无保证 | 有监管要求 |
| 公司护盘动机 | 无 | 有(强赎/下修动机) |
| 行业分布 | 高度集中于银行/公用事业 | 相对分散 |
| 退市/爆雷风险 | 较高 | 相对较低 |
| 极端低流动性风险 | 存在 | 较低(发债公司有流动性要求) |
四、核心选股因子:换手率
4.1 换手率的定义
换手率(Turnover Rate)是衡量股票在一定时间内交易活跃程度的指标:
日换手率 = 当日成交量 ÷ 流通股本 × 100%
例如,某股票流通股 10 亿股,某日成交 500 万股,则日换手率 = 0.5%。
本策略使用的是 20 日均换手率(m_avg(turn, 20)),即最近 20 个交易日日换手率的算术平均值,相比单日换手率更稳定,能过滤短期异常波动。
4.2 低换手率背后的经济含义
低换手率意味着:
| 现象 | 背后含义 |
|---|---|
| 成交量极少 | 持股者不愿卖出 |
| 筹码高度集中 | 大股东或机构长期持有,不轻易交易 |
| 市场关注度低 | 没有短线资金博弈,价格更反映基本面 |
| 波动相对较小 | 缺乏炒作,但也减少了无效噪声 |
4.3 低换手率选股的理论依据
① 筹码集中效应
学术研究表明(如 Amihud & Mendelson, 1986),低流动性股票存在流动性溢价,长期回报往往超越高流动性股票,以补偿持有者承担的流动性风险。
② 聪明钱信号
当一只股票长期换手率极低,往往意味着大机构已经重仓持有且坚定持有。这类"长线资金认可"的股票,在没有外部冲击的情况下,价格表现往往更稳健。
③ 行为金融视角
高换手率常伴随着:散户频繁博弈、题材炒作、主力拉升出货等行为,这些行为会制造大量"噪声"。低换手率则天然过滤了这类噪声,留下价格信号更"干净"的股票。
④ A 股市场的特殊性
A 股市场散户占比高(散户贡献约 80% 的交易量),短线博弈盛行。低换手率股票相当于"脱离了散户游戏",其价格运行规律与机构主导的成熟市场更接近。
4.4 为什么用 20 日均而非单日换手率
| 指标 | 优点 | 缺点 |
|---|---|---|
| 单日换手率 | 实时敏感 | 噪声大(受临时事件影响,如除权除息日) |
| 20日均换手率 | 平滑噪声,反映真实活跃度 | 对短期变化反应滞后 |
20 个交易日约对应 1 个自然月,是量化中常用的"中期动量/流动性"观测窗口,能平衡及时性与稳定性。
五、质量过滤因子:ROE
5.1 ROE 的定义
ROE(Return on Equity,净资产收益率)是衡量公司盈利能力最重要的综合指标之一:
ROE = 净利润 ÷ 平均净资产 × 100%
本策略使用的是 ROE(TTM),即滚动 12 个月的净利润除以净资产,能够反映公司最近一年的真实盈利能力,消除季节性影响
5.2 为什么用 ROE 而不是 PE/营收增速
| 指标 | 反映内容 | 局限性 |
|---|---|---|
| PE(市盈率) | 市场对利润的定价 | 受股价影响,高PE不一定差 |
| 营收增速 | 收入扩张能力 | 不反映盈利质量 |
| ROE | 股东资金的使用效率 | 综合了利润率、资产周转率和杠杆 |
根据杜邦分析:
ROE = 净利润率 × 资产周转率 × 财务杠杆
ROE 是三种能力的综合体现,一个 ROE 持续高于 10% 的公司,意味着它同时具备良好的盈利能力、运营效率和合理的资本结构。
5.3 为什么设定 ROE > 5% 这一阈值
本策略对 ROE 的要求是 > 5%(即 0.05),这是一个相对宽松的底线,而非追求高 ROE。原因如下:
- 策略核心因子是换手率,ROE 只是"过滤负面因素"的防线,不是选股主力
- ROE > 5% 可以剔除大量亏损企业、严重衰退企业(ROE 接近 0 甚至为负的公司)
- 某些低换手率行业(如公用事业、交通运输)的 ROE 天然偏低(通常 8%~15%),过高的 ROE 门槛会误伤这类质量尚可的防御性股票
- 保留足够的股票池深度,确保行业分散约束能正常运作
对比:如果设 ROE > 10%,银行板块大部分可以保留,但公用事业、建筑等会被大量剔除,导致行业更集中。
5.4 ROE 过滤前后的效果
原策略(无 ROE 过滤)选出的股票可能包含:
- ROE 极低甚至为负(处于亏损边缘)的股票,只因换手率低就被选中
- 这类公司"换手率低"的原因可能是"没人想买",而非"筹码集中"
加入 ROE > 5% 后:
- 剔除了"被市场遗弃的低质量低流动性"股票
- 保留的低换手率股票更可能是"机构长期持有的优质低波动股"
六、行业分散约束设计
6.1 为什么需要行业分散约束
不加约束的低换手率策略会高度集中于少数行业,主要是银行、公用事业、交通运输。原因如下:
- 银行股:国有大股东持股比例极高(如工农中建交,国有持股 > 60%),实际流通盘极小,日换手率通常仅 0.001%~0.01%,远低于其他行业
- 公用事业:电力、水务、燃气公司现金流稳定,机构长期持有,换手也极低
- 交通运输:铁路、港口等重资产垄断企业,股价波动小,散户参与度低
若不加约束,10 只股票中可能有 5~6 只是银行股,导致:
- 策略实际上是"银行+公用事业"的混合组合,缺乏真正意义上的多元化
- 对利率、信用政策极度敏感,存在系统性集中风险
6.2 约束规则:每行业最多 3 只
本策略规定:每个申万一级行业最多持有 3 只股票。
以申万行业(2021版)为基准,共有 31 个一级行业,包括:银行、非银金融、医药生物、电力设备、机械设备、化工、食品饮料、房地产、交通运输、公用事业等。
实现逻辑:
def select_with_industry_limit(group):
# 先在每个行业内按换手率取前3只
industry_limited = group.groupby('sw2021_level1', sort=False).head(3)
# 再从行业受限结果中按换手率取全局前10只
return industry_limited.sort_values('turnover_20d').head(10)
效果:
- 银行行业最多贡献 3 只股票(占仓位 30%),而非 6~8 只
- 其他行业的低换手率优质股有机会入选(如交通运输、医药、制造业等)
6.3 行业代码字段说明
策略中使用 sw2021_level1 字段(申万一级行业代码,2021 年版),同时用 sw_level1_name 作为中文行业名称。
七、动态股票池的实现原理
7.1 静态 vs 动态股票池的区别
| 对比项 | 静态股票池(原始版) | 动态股票池 |
|---|---|---|
| 实现方式 | 一次性查询所有历史上发过可转债的股票代码,生成固定列表 | 每个交易日实时与可转债日线数据做 JOIN |
| 可转债到期处理 | ❌ 已到期的可转债正股仍在池中 | ✅ 到期当日自动移出股票池 |
| 可转债强赎处理 | ❌ 被强赎后的正股仍在池中 | ✅ 停止交易后自动移出 |
| 新发可转债 | 需要更新查询时间窗口 | ✅ 实时纳入 |
| 数据量 | 少(只有股票代码列表) | 略多(需要跨表 JOIN) |
7.2 技术实现:CTE + INNER JOIN
动态股票池通过 SQL 的 公共表表达式(CTE)+ INNER JOIN 实现:
WITH prefactors AS (
-- 第一个 CTE:在 cn_stock_prefactors 单表内
-- 完成所有窗口函数计算(如 m_avg),此时 date 无歧义
SELECT date, instrument, m_avg(turn, 20) AS turnover_20d, ...
FROM cn_stock_prefactors
WHERE ...
),
cb_stocks AS (
-- 第二个 CTE:查询每日有存续可转债(volume > 0)的正股
SELECT DISTINCT date, stock_code
FROM cn_cbond_bar1d
WHERE stock_code IS NOT NULL AND volume > 0
)
-- 主查询:两个 CTE 做 INNER JOIN
-- p.date = c.date AND p.instrument = c.stock_code
-- 确保:只有"当日正股行情"和"当日有交易的可转债"同时存在的记录才被保留
SELECT p.*
FROM prefactors p
INNER JOIN cb_stocks c
ON p.date = c.date AND p.instrument = c.stock_code
7.3 为什么用 volume > 0 判断可转债存续
cn_cbond_bar1d 是可转债日线行情表,当一只可转债:
-
正常交易:每日有成交量,volume > 0✅
-
已到期/强赎/退市:不再出现在日线数据中,或 volume = 0 ✅
-
停牌:volume = 0,会被过滤,但对应正股仍可能正常交易(此逻辑可接受)
因此,volume > 0 是判断可转债"当日存续且正常交易"的简洁有效标准。
7.4 JOIN 顺序的重要性(窗口函数歧义问题)
当使用 SQL 窗口函数(如 m_avg)时:
-
错误做法:在 JOIN 后的结果集上计算 m_avg(turn, 20)
- 原因:JOIN 后两张表都有date列,引擎不知道用哪个date作为时序排序依据
- 报错:Ambiguous reference to column name "date" in function "m_avg"
-
正确做法:先在单表 CTE 中计算完窗口函数,再做 JOIN(本策略的实现方式)
此时prefactors CTE 内只有一个date,窗口函数无歧义 ✅
八、调仓频率的选择逻辑
8.1 为什么从 5 日改为 15 日
| 调仓频率 | 年均调仓次数 | 交易成本 | 换手率 | 适用场景 |
|---|---|---|---|---|
| 每 5 日 | ~48 次 | 高 | 高 | 动量、短线策略 |
| 每 15 日 | ~16 次 | 中 | 中 | 中期价值/低波动策略 |
| 每 20 日 | ~12 次 | 低 | 低 | 月度再平衡 |
| 每季度 | ~4 次 | 极低 | 极低 | 长期价值策略 |
低换手率策略的天然适配频率是中低频:
- 因子变化缓慢:20 日均换手率是一个惰性指标,排名不会在短期内剧烈变化。每 5 日调仓,大概率换来的是"持仓基本不变但产生了额外手续费"
- 持股标的本身换手极低:我们选的就是不活跃的股票,这类股票的价格趋势也相对稳定,不需要频繁追踪
- 15 日是折中:既保留了对因子变化的适度响应,又将年均调仓次数控制在可接受范围(16 次左右)
8.2 调仓频率与交易成本
每次调仓产生的成本估算(以单次调仓为例):
假设:10 只股票全部换仓,每只持仓 5 万元
卖出成本:50万 × 0.13% = 650 元
买入成本:50万 × 0.03% = 150 元
合计单次:800 元
全年调仓成本:
5日调仓(48次):800 × 48 = 38,400 元(占本金 7.68%)
15日调仓(16次):800 × 16 = 12,800 元(占本金 2.56%)
实际情况中持仓不会 100% 换仓(大约 30%~50% 变化),但15日调仓明显更节省成本!
九、策略筛选条件详解
本策略 SQL WHERE 子句中的每个条件都有明确的意义:
WHERE
st_status = 0 -- ① 非ST/非*ST
AND suspended = 0 -- ② 非停牌
AND list_days > 365 -- ③ 上市超过1年
AND float_market_cap > 1000000000 -- ④ 流通市值 > 10亿元
AND volume > 0 -- ⑤ 当日有成交(非零成交)
AND pe_ttm > 0 -- ⑥ 市盈率为正(公司盈利)
AND pe_ttm < 100 -- ⑦ 市盈率不超过100倍
AND pb > 0 -- ⑧ 市净率为正(净资产为正)
AND roe_avg_ttm > 0.05 -- ⑨ ROE(TTM) > 5%
条件逐一说明
| 条件 | 目的 | 背景说明 |
|---|---|---|
| st_status = 0 | 剔除 ST/*ST 股票 | ST 股票面临退市风险,基本面恶化,不适合持有 |
| suspended = 0 | 剔除停牌股票 | 停牌期间无法买卖,持有会造成流动性陷阱 |
| list_days > 365 | 剔除上市不足 1 年的新股 | 新股上市初期换手率数据不完整,且存在炒新现象,数据不可信 |
| float_market_cap > 10亿 | 最低流通市值要求 | 10 亿以下的小微盘股流动性太差,机构资金难以实际建仓 |
| volume > 0 | 排除完全无成交的股票 | 防止除权除息日等特殊情形下的异常数据 |
| pe_ttm > 0 | 确保公司盈利 | PE 为负说明公司处于亏损状态,不符合策略定位 |
| pe_ttm < 100 | 排除极度高估的股票 | PE > 100 的股票通常是题材炒作或利润基数极低,风险过高 |
| pb > 0 | 净资产为正 | PB ≤ 0 意味着公司资不抵债,财务极度恶化 |
| roe_avg_ttm > 0.05 | 质量门槛(≥5%) | 核心过滤,见第五章详解 |
十、完整代码逐行解析
10.1 策略初始化框架
def initialize(context: bigtrader.IContext):
BigTrader 框架的核心生命周期函数,在回测开始时执行一次,负责:
-
设置交易参数(手续费等)
-
数据查询和预处理
-
将处理好的选股数据存入
context.data
回测期间每个交易日的实际交易由 handle_data 函数完成(本策略使用预置的 handle_data_weight_based)。
10.2 手续费设置
context.set_commission(bigtrader.PerOrder(
buy_cost=0.0003, # 0.03% 买入佣金
sell_cost=0.0013, # 0.13% 卖出佣金(含0.1%印花税)
min_cost=5 # 每笔最低5元
))
A 股交易成本构成:
- 印花税:卖出时收取 0.1%(单边),由国家征收
- 券商佣金:买卖双向,通常万分之二至万分之三(已压至较低水平)
- 规费(过户费等):极小,本策略忽略
10.3 SQL 数据查询结构
df = dai.query(
sql,
filters={"date": [
context.add_trading_days(context.start_date, -30), # 向前多取30天
context.end_date
]},
params={"stock_num": stock_num}
).df()
为什么要向前多取 30 天(时间缓冲)?
m_avg(turn, 20) 是 20 日移动平均,计算第一个有效值需要至少 20 个历史数据点。若从 start_date 开始查,则回测期开始的前 20 天没有换手率均值数据,导致数据不足。
向前扩展 30 个交易日(略多于 20,留有余量),确保即使在回测起始日也能计算出完整的 20 日均值。
$stock_num 参数化是什么?
1.0 / $stock_num AS weight
等权重计算:10 只股票,每只权重 = 1/10 = 10%。通过 params={"stock_num": stock_num} 传入,便于后续修改持股数量时只需改 Python 变量,无需修改 SQL。
10.4 行业分散约束函数
def select_with_industry_limit(group):
industry_limited = group.groupby('sw2021_level1', sort=False).head(max_per_industry)
industry_limited = industry_limited.sort_values('turnover_20d')
return industry_limited.head(stock_num)
df = df.groupby('date', group_keys=False).apply(select_with_industry_limit)
执行流程:
每日数据(按换手率升序排列)
│
▼ groupby('sw2021_level1').head(3)
每行业取前3只换手率最低的股票
│
▼ sort_values('turnover_20d')
重新按换手率排序
│
▼ head(10)
取全局前10只
注意:sort=False 参数让 groupby 保留原始顺序(即换手率升序),确保每行业取的是该行业换手率最低的 3 只,而非随机 3 只。
10.5 调仓计划设置
df = bigtrader.TradingDaysRebalance(
rebalance_days, # 15
context=context
).select_rebalance_data(df)
TradingDaysRebalance 的作用:
- 从全部数据中,每隔 15 个交易日筛选出一组调仓日期
- 只保留调仓日的数据,非调仓日直接持仓不动
- 这样context.data中只有调仓日的选股结果,handle_data_weight_base会在调仓日按权重重新平衡仓位
10.6 权重型持仓执行
handle_data=bigtrader.HandleDataLib.handle_data_weight_based
预置函数 handle_data_weight_based 的内部逻辑:
- 每个交易日检查context.data中是否有当日数据
- 如果有(调仓日):按weight列的权重买入/卖出,调整至目标持仓
- 如果没有(非调仓日):持仓不变,继续持有\n
十一、策略的适用环境与风格择时
11.1 策略的收益来源回顾
根据前文分析,本策略的收益主要来源于:
- 低换手率因子:流动性溢价、筹码集中效应
- 可转债正股池:发行公司的质量门槛和护盘动机
- ROE质量过滤:剔除基本面恶化的公司
这三个因子共同决定了策略具有明显的价值风格暴露和低波特征。
11.2 策略表现与市场风格的关系
回测数据显示,本策略在不同市场风格下表现差异显著:
| 市场环境 | 表现 | 原因 |
|---|---|---|
| 价值风格占优(如2023-2025) | ✅ 超额收益明显 | 策略选股集中于银行、公用事业、传统制造,与价值风格高度契合 |
| 成长风格占优(如2019-2020) | ❌ 跑输大盘 | 科技、消费、新能源等成长板块领涨,策略持仓与之相关性低 |
| 熊市/震荡市(如2018、2023下半年) | ✅ 相对抗跌 | 低波动特性提供防御属性 |
| 利率上行周期 | ⚠️ 承压 | 银行、公用事业等高股息资产对利率敏感 |
11.3 风格判断指标(择时参考)
使用本策略前,可以通过以下指标判断当前市场风格:
指标一:国证价值/国证成长比值
价值成长比 = 国证价值指数 ÷ 国证成长指数
- 比值 > 1.05:价值风格占优(适合启用策略)
- 比值 < 0.95:成长风格占优(建议降低仓位或暂停)
- 比值在0.95-1.05之间:风格均衡(可正常使用)
指标二:10年期国债收益率趋势
- 收益率下行或低位:利好高股息/低波策略
- 收益率快速上行:需警惕策略回撤风险
指标三:市场风险偏好指标
- 高换手率股票整体表现强势 → 成长/题材风格
- 低换手率股票整体抗跌 → 价值/防御风格
十二、策略组合使用建议:不单独持有
12.1 为什么建议组合使用
本策略存在两个固有特点:
- 风格暴露集中:高度依赖价值风格,在成长牛市中会跑输
- 收益结构稳健但弹性不足:低波特性意味着上涨时弹性弱于成长股
因此,将本策略作为单一策略满仓持有存在周期性跑输的风险。更优的方式是将其作为多策略组合的一部分。
12.2 组合配置方案建议
方案一:双策略均衡配置
| 策略 | 配置比例 | 特点 |
|---|---|---|
| 本策略(价值/低波) | 50% | 稳健底仓,控制回撤 |
| 成长股/动量策略 | 50% | 提供弹性,捕捉成长行情 |
效果:两种风格互补,平滑组合收益曲线,降低单一风格暴露风险。
方案二:核心-卫星配置
| 策略 | 配置比例 | 特点 |
|---|---|---|
| 本策略(核心) | 60-70% | 稳定器,追求长期复利 |
| 行业轮动/主题策略(卫星) | 30-40% | 增强收益,捕捉结构性机会 |
适用:追求稳健,愿意牺牲部分上行弹性换取更低回撤的投资者。
方案三:三策略分散配置
| 策略 | 配置比例 | 特点 |
|---|---|---|
| 本策略(价值/低波) | 40% | 防御底仓 |
| 成长股策略 | 30% | 进攻弹性 |
| 可转债双低策略 | 30% | 债底保护 + 股性弹性 |
效果:三类策略相关性较低,组合波动更平滑,适应更多市场环境。
12.3 组合配置的实操建议
定期再平衡
- 建议每季度或每半年对组合内各策略的仓位进行再平衡
- 当某一策略短期涨幅过大导致仓位偏离目标超过10%时,可触发再平衡
策略替换机制
- 如果本策略连续6个月跑输沪深300超过5%,建议暂停并评估市场风格
- 待市场风格回归价值后,可重新启用
资金分配方式
- 对于小资金(<100万):可直接按比例分配到不同策略的回测框架中
- 对于大资金(>100万):建议分账户独立运行各策略,便于跟踪评估
十三、总结
本策略的核心价值在于:
- 逻辑清晰:可转债质量门槛 + 低换手率选股 + 行业分散
- 回撤可控:低波特性在震荡市中表现稳健
- 可解释性强:每个设计决策都有理论支撑
但任何策略都有其适用边界。理解本策略的价值风格暴露,在合适的市场环境中使用,并与其他策略组合配置,才能发挥其最大价值,实现长期稳健的资产增值
回测结果
-
累计收益率(80.89%) vs 基准收益率(19.09%): 策略大幅跑赢了基准,超额收益(阿尔法)达到了61.8个百分点
-
贝塔(0.72): 策略的系统性风险低于市场
-
最大回撤(14.34%): 在获得年化22.81%高收益的同时,最大回撤仅控制在14.34%,这在权益类投资中是比较出色的风控水平。
-
收益波动率(16.08%): 波动率控制得比较适中。结合22.81%的年化收益来看,收益是波动率的1.4倍左右,性价比不错。
-
夏普比率(1.17): 这是衡量“每承担一单位风险,能换来多少超额回报”的核心指标。通常夏普比率>1,即被认为策略表现良好;>2则非常优秀。1.17表明你的策略在承担风险的同时,获得了比较可观的超额补偿,效率较高。
-
胜率(72.77%): 这个胜率在投资策略中相当高。意味着你每交易10次,有7-8次是赚钱的。这种高胜率会带来较好的心理正反馈,有助于策略的长期执行。
-
盈亏比(1.39): 1.39的盈亏比意味着:赚一次的钱,能覆盖亏损一次后还剩余0.39倍的收益。
结合分析: 策略属于高胜率、中盈亏比类型。也就是说通过很高的胜率来积累利润,而不是依赖少数几次“暴富”的交易来覆盖大部分亏损。
\
这个策略可以概括为一个稳健进取型策略。它在保持较低回撤(14.34%)和较低波动(16.08%)的前提下,实现了较高的年化收益(22.81%)。风格上相对稳健(Beta 0.72),且具备显著的超额收益能力(阿尔法为正)
注:AI策略广场链接:https://bigquant.com/square/ai/19c6558e-1adf-818b-4355-66c90b621bef
\