一年6倍!年化400%、最大回撤仅13.5%|五福ETF策略拆解|PT复刻版开源!

0 阅读4分钟

⚠️ 免责声明:本文策略仅用于学习交流,所有代码/数据均为模拟推演,不构成任何投资建议。历史回测不代表未来收益,股市有风险,决策需谨慎。


📈 先上结果

2025年1月1日 → 2026年4月3日(15个月)

指标
累计收益632.69%(6.3倍)
年化收益率419.99%
最大回撤13.51%
胜率64.89%
夏普比率260.14%

💥 什么概念?

  • 10万元本金 → 15个月后变成 73万元
  • 平均每月收益超 20%

这就是社区最近大火的【五福闹新春】ETF轮动策略。


策略三大核心模块,手把手带你读懂代码逻辑

🔹 模块一:ETF池构建 —— 广度 × 流动性 = 稳健起点

策略不是瞎选,而是两层筛选:

1. 固定池(200+只)

覆盖:

  • 宽基指数:沪深300、中证500、中证2000、创业板
  • 行业主题:芯片、医药、AI、新能源、证券
  • 海外市场:纳指、恒生科技、标普500、日经
  • 大宗商品:黄金、原油、豆粕

目的:确保"不漏掉任何机会"

2. 动态池(每日刷新)

# 每日计算全市场流动性门槛
avg_total_money = daily_totals.mean()
threshold = avg_total_money / 20000  # 动态阈值

# 过滤低流动性标的
qualified = [etf for etf in etf_list if avg_money > threshold]
  • 按行业分组,每组取成交额最高者
  • 最终保留Top 100,避免"僵尸ETF"拖累收益

最终合并池 ≈ 150~200只,兼顾广度与可交易性。


🔹 模块二:动量得分系统 —— 不看涨幅,看"趋势质量"

很多人以为"涨得多=好",但五福策略真正聪明的地方在于:

得分 = 年化收益 × R²(拟合优度)

# 加权线性回归(近期权重更高)
def calculate_momentum_score(price_series, lookback_days=25):
    y = np.log(price_series[-(lookback_days+1):])  # 对数价格
    x = np.arange(len(y))
    weights = np.linspace(1, 2, len(y))  # 近期数据权重更高
    
    slope, intercept = np.polyfit(x, y, 1, w=weights)
    annualized_returns = math.exp(slope * 250) - 1  # 年化收益
    
    # 计算加权R²(拟合优度)
    ss_res = np.sum(weights * (y - (slope * x + intercept)) ** 2)
    ss_tot = np.sum(weights * (y - np.mean(y)) ** 2)
    r_squared = 1 - ss_res / ss_tot if ss_tot else 0
    
    return annualized_returns * r_squared  # 得分 = 收益 × 稳定性

📌 为什么这么设计?

  • 斜率大 → 趋势强
  • R²高 → 走势稳(非震荡假突破)
  • 两者缺一不可——只涨不稳的ETF,我们不要

再叠加五重过滤:

  • ✅ R² > 0.4(趋势明确)
  • ✅ 成交量比 < 1.8(排除异常放量)
  • ✅ 近3日无单日跌幅 > 3%(防接飞刀)
  • ✅ 溢价率 ≤ 30%(防高位泡沫)
  • ✅ 价格在滤波器上方(确保上升通道)

⚠️ 重要说明PT回测中溢价率过滤因平台限制被跳过get_extras不可用),这是导致聚宽回测年化419%、而PT回测仅149%的核心原因—— 不是策略失效,是回测环境简化实盘中通过 get_etf_info() 可还原。


🔹 模块三:动态风控

动态风控:市场变了,策略也变

1. 震荡期识别系统

策略会自动判断当前市场状态:

# 进入震荡期条件(满足任一即切换)
if (bias > 0.08) or \                    # 乖离率>8%
   (prev_rsi > 70 and current_rsi < 65) or \  # RSI超买回落
   (g.stop_loss_triggered_today):       # 当日触发止损
    g.current_filter = 'range_bound'  # 切换高斯滤波器
  • 正常市 → 拉普拉斯滤波器(灵敏捕捉趋势)
  • 震荡市 → 高斯滤波器(降低噪音,减少假信号)

2. 分钟级止损

# 固定比例止损
if current_price <= cost_price * 0.95:
    smart_order_target_value(security, 0, context)  # 清仓
    g.stop_loss_triggered_today = True

3. 防御模式

无合适标的时,自动切至货币ETF(511880)。


📌 温馨提示:任何策略都有其适用的市场环境。个人拙见:五福策略在趋势明确的市场中表现优异,但策略包含多个固定参数,这些参数基于历史数据优化,未来市场风格变化可能导致表现差异。建议实盘前充分理解策略逻辑,并用小资金验证。投资有风险,决策需谨慎。


获取方式

我们已将"五福ETF聚宽"完整适配至 ptrade 环境

  • 关注量化星图公众号,并回复"五福ETF" 即可获得聚宽全部源代码。
  • 加入量化星图知识星球,即可获得"五福ETF"Ptrade源代码及十余个精选量化策略。