实际总资产
—
实际损益率
—
建仓以来(策略)
—
操作执行日
—
仓位比例
—
数据校验 详情 →
—
加载信号中…
收益曲线
区间:
策略(建仓前) 策略(建仓后) 实际交易 影子策略(牛熊切换)
当前持仓(实际)
加载中…
明日操作清单 —
加载中…
💰 加仓向导(可选)
系统估算持仓(按信号自动计算)
加载中…
实际持仓(手动录入)
加载中…
交易记录(可删除)
加载中…
添加交易记录
交易记录
加载中…
添加交易记录
资金概况
加载中…
资金记录(注入 / 提取)
明日操作清单 —
加载中…
💰 加仓向导(可选) —
每日调仓记录
加载中…
钉钉通知
调仓变化 每日更新完成
邮件通知
调仓变化 每日更新完成
通知历史
加载中…
当前配置
加载中…
切换信号策略 仅更新策略参数和信号,不影响已录入的交易记录
加载中…
交易费率设置
(万0.6 = 0.00006,ETF无印花税)
元/笔
(3% = 0.03,偏离低于此值时不提示调仓)
策略说明文档

A股 ETF 牛熊切换轮动系统

本系统是一套宏观驱动 + 动量选股的 ETF 量化轮动策略,核心思路是: 先判断市场处于牛市还是熊市,再决定进攻或防守。 牛市期主动轮动进攻性 ETF 追求超额收益,熊市期切换至防守资产降低回撤。 所有信号均基于前一日收盘数据生成(无前视偏差),周末换仓,次日开盘执行。

~19.3%
年化收益
1.28
夏普比率
−15.6%
最大回撤
4/4
WF 验证通过
周频
换仓频率

一、牛熊切换机制(Regime Switching)

系统每周末根据沪深300 ETF(sh.510300)的价格状态判断当前市场所处环境,决定下周是进攻还是防守。

进入牛市(切换进攻腿)
收盘/MA260 − 1 > gap_in(3%)
AND 60日年化波动率 > vol_in(16%)
AND 收盘 > MA20(entry_ma 入场质检)

三重确认:年线发散 + 波动率扩张 + 站上短期均线,防回调途中误入

进入熊市(切换防守腿)
收盘/MA260 − 1 < gap_out(1.5%)
OR 60日年化波动率 < vol_out(14%)
AND 收盘 < MA120(price_ma 价格确认)

price_ma=120 防止牛市 vol 压缩假出场(实测 +1pp/Sh+0.07)

为什么用沪深300?沪深300是ETF池的宏观锚点,其年线(MA260)代表市场长期趋势中枢; gap 指价格偏离年线的幅度,vol60 反映市场活跃度。两者组合经 WF 4/4 验证。

切换滞后保护(gap_in/gap_out 不对称):进牛要求年线偏差>3%,退熊只需<1.5%, 设计上"进攻慢、撤退快";price_ma=120 额外防止牛市 vol 收窄时的假出场。

二、进攻腿(牛市期 ETF 轮动)

牛市期对全部候选池 ETF 逐一做选股,每周末确定下周持仓。

Step 1:入场筛选(双均线)
close[t] > MA60[t]      — 收盘价高于60日均线(大趋势向上)
MA10[t] > MA60[t]       — 快线上穿慢线(动量确认)

所有指标取月末最后交易日数据;同日生成信号,次月第一个交易日开盘执行。

Step 2:动量评分排序

通过筛选的 ETF 按以下方式评分,取前 top_k = 3 只。当前使用 —:

方法 公式 验证状态
ma_ratio
MA比值 ★当前
MA10[t] / MA60[t] − 1
快线超出慢线幅度;与入场条件同源,换手率低,Sharpe 各时段最优
★ 当前选用
Sharpe 最优
ret_60d close[t] / close[t−60] − 1
过去60日涨幅,直觉易懂;年化更高但 Sharpe 低于 ma_ratio
年化略高
Sharpe 次之
multi_period ret_20d×0.25 + ret_60d×0.35 + ret_120d×0.40
多周期加权;日频下历史最优,周频下各项均不如 ma_ratio
日频备选
Step 3:权重分配(风险平价·相对ATR)

选出 top_k 只 ETF 后,按相对 ATR 倒数分配权重——波动越大仓位越小,每只 ETF 贡献相同的风险暴露:

相对ATR = ATR14 / close           — 每元价格承担的波动(消除高价偏差)
权重_i  = (1/相对ATR_i) / Σ(1/相对ATR_j)   — 各 ETF 归一化

vs 绝对ATR:高价ETF的绝对波幅大,但并不代表更高风险;相对ATR消除价格偏差,是更严谨的风险平价。

三、防守腿(熊市期资产配置)

熊市期不持有高波动的进攻性 ETF,转而持有通过同样双均线筛选的低风险资产。 池子中天然具有防守属性的品种会在熊市期自动浮出:

sh.511010 国债ETF
10年期国债,熊市首选防守仓位,与股市高度负相关
sh.513500 标普500ETF
美股相关性低,A股熊市时可能继续上涨
sh.512890 红利低波ETF
高股息防御型,抗跌性强
sh.518880 黄金ETF
避险资产,与权益市场负相关

实际防守仓位由当时双均线筛选决定,不固定为以上四种;熊市期 vol_target 不限制(满仓防守资产)。

四、仓位管理与风控

波动率目标(Volatility Targeting)— 仅进攻腿启用

根据组合近期波动率自动缩放总仓位,在高波动环境中主动降仓:

滚动波动率 = std(日收益, 20天) × √252    — 年化
仓位系数   = min(1.0,  vol_target / 滚动波动率)
实际持仓   = 总资产 × 仓位系数 × ETF权重

vol_target = 20%;当市场波动率 < 20% 时满仓,>20% 时按比例降仓,最多降至约 50%。 这就是"持仓率"显示值可能低于 100% 的原因。

跟踪止损(Trail Stop)

某只 ETF 从持仓期间最高价回撤超过 18%,触发清仓信号,次日开盘卖出。 止损只出不入,需重新满足入场条件才会再纳入。月频策略下此功能很少触发,主要作为极端行情安全阀。

整股对齐

买入数量取整至 100 股整数倍(A股手),不足 100 股的差量不操作,避免碎股。 再平衡阈值内(默认 3%)的权重微调同样跳过,减少无谓交易。

五、当前实盘参数

参数从活跃配置实时读取,若已切换策略则自动更新。

① 牛熊判断参数(Regime)
参数 当前值 含义
加载中…
② 进攻腿参数(Bull Leg)
参数 当前值 含义
加载中…
③ 手续费参数
参数 当前值 含义
加载中…

ETF 无印花税,仅收佣金:max(成交额 × 费率, 最低佣金)

六、ETF 候选池(共 — 支)

覆盖 A 股全板块 + 港股 + 跨境 ETF,牛市期从中动量轮动;熊市期防守资产同样来自此池。 国债 ETF 常驻防守腿,黄金/美股/港股在熊市期也可能被选入。

加载中…

⚠️ 跨境ETF在情绪高涨时场内溢价可能达3~10%,实盘系统会实时显示溢价警告(>2%建议等待)

七、名词解释

术语 解释
均线 MA(N) 过去 N 个交易日收盘价的算术平均值,用于衡量趋势方向。MA10 = 2 周趋势,MA60 = 季度趋势。
ATR Average True Range,14日平均真实波幅,衡量近期价格波动的绝对幅度(单位:元/股)。
相对ATR ATR ÷ 收盘价,消除价格高低的影响,代表"每投入1元钱平均承担多少波动",用于公平比较不同价位ETF的风险。
风险平价 每只持仓 ETF 对组合风险的贡献量相同,波动大的少配、波动小的多配。目标是分散化风险而非分散化金额。
波动率目标 当组合实际波动率超过目标值(20%)时,按比例缩减总仓位,市场越动荡持仓越少,降低极端行情下的回撤。
持仓率 当前各 ETF 权重之和,即总资产中投入市场的比例。波动率目标生效时可能低于 100%,剩余为现金。
跟踪止损 从持仓期内最高价回撤超过阈值(18%)即触发卖出。"跟踪"指止损线随价格上涨而上移,锁定浮盈。
月频换仓 每月最后一个交易日收盘后计算信号,下月第一个交易日开盘执行。减少过度交易,降低手续费和换手。
前视偏差 回测中"提前知道未来数据"的错误。本系统所有指标只使用信号日前一日(或月末当日)数据,无前视偏差。
年化收益 将策略总收益折算成"每年复合增长率",便于跨期对比。公式:(1+总收益)^(365/天数)−1。
最大回撤(MaxDD) 历史上从某个净值高点到随后低点的最大跌幅百分比,衡量策略最坏情况下能亏多少。
夏普比率 超额收益(收益−无风险利率)除以收益的标准差,衡量"每承受1单位风险获得多少收益"。>1 为良好,>2 优秀。
卡玛比率(Calmar) 年化收益 ÷ 最大回撤绝对值,衡量"每承受1单位最大亏损获得多少年化收益",越高越好。
Walk-Forward(WF) 将历史数据按时间顺序分割为多个"训练期+测试期"窗口滚动验证,4/4 表示4个窗口全部盈利,防止过拟合。
T+1 执行 信号在 T 日收盘后生成,T+1 日(下一个交易日)开盘执行买卖。系统显示的"执行日"即为 T+1。