/~learn/s/6dfc1bd0
本文档记录择时策略体系中「反转策略权重偏低」问题的根因分析、用户自身的思考、以及 AI 辅助提出的改进方案与学术参考。目标是设计一套能让反转策略在「低估+恐慌」的黄金窗口期获得足够权重的机制。
当前基于历史回测收益的等权/风险平价加权方式,天然压制了反转策略(低频、低资金占用、极高条件胜率)的权重。正确的做法是引入条件置信度乘数,根据估值分位和恐慌程度动态放大反转策略在极端窗口的仓位,同时通过风险预算框架保持组合总杠杆可控。
择时策略池分为两类:
| 类型 | 代表策略 | 特征 |
| ------ | --------- | ------ |
| 趋势策略 | 均线交叉、SAR、RSI超买追涨 | 高频、中等胜率、资金利用率高、历史回测收益高 |
| 反转策略 | RSI超卖、布林带均值回归、动量弹球 | 低频(一年1-2次)、极高胜率(尤其低估区)、资金占用率极低 |
由于组合仓位按各策略的历史回测收益/夏普比率加权:
但反转策略的真正价值不在于「平均表现」,而在于「极端条件下的确定性」。历史案例:某次市场恐慌 + 估值低位时反转策略发出买入信号(胜率接近 100%),但由于组合中反转策略权重仅占极小比例,实际建仓极少,错失了确定性的超额收益。
用户已识别的改进方向:
当前架构的数据流如下图所示—— 权重分配只看全局平均表现,不区 分当前信号的条 件质量:
Mermaid Live Edit: https://mermaid.live/edit#pako:eNpdkltLG0EUx7_KMCAYNDTtU7sPBTVe-lAo2Kd2pQzJZLOwuyObXYqIJaVqNJqk1isxlRgovdiGWtBAN6nfpezM7n6Lntlto3Uehjln_v_fOXNZxjmWp1jBBYO9zBWJ7aCnWdVCMCaeqzj4dhDsfxDnbQWFl1u8epUk0BjijVo4-JqEKl5A6fRDNAkOjVrUJg59UdI1ixil0RTsJsDJWDQFovl4D91BT1hJd3RmDTVTsSYrNY7EaEsThsFyRIoeE4to1FZVS2xv8vo6b_zgxyfiYkvsXQbHVV5ti_dvhqRsTJoG0s3OFQSaqFJDr-5n0g8yIwAbjc6OwovVqLLDNz4He5-CeiV1izIDlJsHvqbczaTvJRR_UI86OzDzWhso14jpGDErEXGH4rwiyh76vf4OiVY58DZ8b9cf1Ib6mUSfBLNxMAfm6LAbdY6U_y4e_KK16Xs9Xu4HzVX_6pQ3en-b8fvfx8Trt2JtOwWeL2G9x38dyoZH0K2Cc3GNR_K5vV1x0lJQcNrl3aYofxStn36_GXbO5OnWpAWPY5PaJtHz8GmWJUDFTpGaVMUKLPO0QFzDUbFqrYCUuA6bX7JyWHFsl45jdzEPj5rViWYTEysF-CCQtZmrFYfRIrGeMWb-s2i2LCXXK38AwLIvwA
问题在于:权重分配只看策略的「全局平均表现」,不看不问策略的「当前信号条件质量」。
这等价于:
结果:专业牌手唯一一次大机会来临时,只有 10% 的资金可用。
改进后的数据流如下—— 在 StrategyAllocationManager 之后新 增一层置信度调整层:
Mermaid Live Edit: https://mermaid.live/edit#pako:eNqNk1tLG0EYhv_KMFBQMDUJFCQUi0k8H6m9arcXQzJZF5JdWTdUiUKwqKkhUTBK6iHReiilHkEkmkT_zM6s-Red2cluVLzoXs03873PvPPOTgpGtCiGARiLa98iU0g3wKewpAL29XyRoHW2ZW0e06t9CX4FHk83CPrY7ONNlqw-iDVJUq1CmWbWwaQiqyjeOaHNKIaiqUzR5AihnwnJWu6xfvq_wqDPVoaYcNLQkYHluZ54XIsg3jWKVCRjnVFI-c46SNO9742VHMksN5ZyLYJfEEQVsosww33EspLAQTSDoyFNjSlRrEbwCJqzeW1065L8KpGrxXYXFLalvSknEeuqSkrZDxJcEOu9fH3-RTJwHvSxzYQzs5Ija0WOt3auG-ntFtvRPguHafuZ1qxdknSNncqss7MdkfNtV9ZvWxpIPW9qWRpoYs16njWAtvfA733TzsGD_GLr5-bDAbk7MW-LdPMyALo8Pu8sT_PoN7ldooV7NjCrGwzp7ugQ6dkhqVRAm9_r6Woih15D-jz-WXE_dPe0ef6XrMbfou2uGzio4ddQ3rfvOIoWbqzaHxHUC3ODdhwjPO90le7t071lepim5WO3Y0h0iGL4adH3tBixi9GUAG2WyNoh6AZmZbXxc72V7qiTRfGCmx6z38oPelFg_lh4oBOYtSJZypB8ls2I38J14ojJ-gkXj3PxzjXNHz_eb5CVO7dvzLYyLopxu5jgB9xNW9WMtXNO91fcFGAHTGA9gZQoe8wpLpGgMYUTWIIBNoziGErGDQlK6gJrRUlDm5xTIzBg6EncAZPTUfa-wgqSdZSAgRiKz7BZXUvKU241jdTPmpZwJLLOt-LjhX9FDc-b
不在策略分配层改,而是在仓位管理器中新增加一层 RegimeBasedConfidenceLayer,对反转策略的 position 做二次调整:
# 伪代码
class RegimeBasedConfidenceLayer:
def adjust_position(self, df, strategy_type, valuation_percentile):
if strategy_type == 'reversal':
# 估值越低,乘数越高(平滑过渡,非二元开关)
# valuation_percentile=0.1 → multiplier≈8-10x
# valuation_percentile=0.5 → multiplier≈1-2x
# valuation_percentile=0.8 → multiplier≈0.5x(高估时反转信号不可信)
multiplier = self._sigmoid_multiplier(valuation_percentile)
df['position'] *= multiplier
return df
def _sigmoid_multiplier(self, pct):
# 在 pct=0.2 附近过渡最陡,最高放大 10x,最低缩至 0.5x
return 0.5 + 9.5 / (1 + np.exp((pct - 0.2) * 15))
优势:
不给每个策略固定权重,而是给每个策略一个风险预算区间,预算的释放由市场状态决定:
| 市场状态 | 趋势策略风险预算 | 反转策略风险预算 | 说明 |
| --------- | :---: | :---: | ------ |
| 正常/牛市 | 80% | 20%(不触发则闲置) | 趋势策略主攻 |
| 高估/亢奋 | 40% | 60%(趋势减仓 + 反转防守) | 反转策略权重上升但估值高时胜率降 |
| 低估/恐慌 | 30% | 70%(反转信号极度可信) | 反转策略主力窗口 |
优势:
参考 Lopez de Prado (2018) 的 Meta-Labeling 框架:
输入特征(第二层模型):
当反转策略被条件乘数放大时,组合总杠杆可能超标。需要配套机制:
total_raw_position = sum(strategy.position * strategy.weight * confidence_multiplier)
if total_raw_position > max_total_exposure:
scale_factor = max_total_exposure / total_raw_position
# 按比例缩放所有仓位,或优先压缩趋势策略仓位
用户指出:同一段策略代码,换一组参数,可能从趋势策略变成反转策略。例如 MVAndRSIStrategy 把 reverse_signals 从 True 改成 False,行为就完全反了。因此不能靠策略名称或代码标签来判断类型,必须根据回测实际跑出的行为特征来判定。
已实现 StrategyTypeClassifier 类,文件:StrategyTypeClassifier.py
三条条件(满足 ≥2 条即判定):
| 条件 | 趋势策略 | 反转策略 |
| ------ | --------- | --------- |
| 胜率 | < 55% | ≥ 55% |
| 资金占用率 | > 40% | ≤ 40% |
| 盈亏比 | > 150% | ≤ 150% |
分类规则:
设计理由:
策略 胜率 资占 盈亏比 趋势分 反转分 分类
RSIStrategy (default) 66.7% 57.7% 85.0% 1 2 反转
RSIStrategy (rsi_buy=30) 100.0% 1.9% inf% 1 2 反转
MomentumBounce (default) 55.4% 34.8% 155.8% 1 2 反转
FourMA (default) 52.3% 52.8% 278.1% 3 0 趋势 ← 修复!
FourMA (16-24-14-18) 52.3% 52.8% 278.1% 3 0 趋势
RSIAndMA (default) 69.4% 24.9% 174.8% 1 2 反转
MVAndRSI (reversed) 57.9% 0.5% 61.1% 0 3 反转
MVAndRSI (normal) 57.9% 98.0% 419.2% 2 1 趋势
CumulativeTrend (default) 56.7% 27.3% 292.0% 1 2 反转
VolumeRSIAndMA (default) 66.7% 16.5% 119.9% 0 3 反转
DualGroupFourMA (default) 33.9% 49.8% 305.2% 3 0 趋势
EnhancedFourMA (default) 42.5% 0.0% 200.7% 2 1 趋势
总计: 趋势×5 反转×7 均衡×0
解读:
Conrad & Kaul (1998), "An Anatomy of Trading Strategies"
Moskowitz, Ooi & Pedersen (2012), "Time Series Momentum", Journal of Financial Economics
Lopez de Prado (2018), *Advances in Financial Machine Learning*, Wiley
Asness, Ilmanen, Israel & Moskowitz (2015), "Investing with Style"
position_manager/ 下新增 RegimeBasedConfidenceLayer.pyStrategyAllocationManager,识别反转策略并应用置信度乘数GridSearchStrategyOptimizer 搜索最优分位阈值和乘数上限