x-forecast · paper portfolio
框架

方法论

1 · 三组并行结构

不押单一情景, 而是把同一套宏观判断 fork 出三种 tilt:

  • Base — 风险平价中性 + view 弱融合. 起点波动 ≤ 8%.
  • Bull — 在 base 上对最确信的 2-3 个 view 加权. 单仓位上限 30%, 波动 ≤ 12%.
  • Bear不赌反向, 是 base 失效时的 defensive. 高现金 + 长债 + 黄金, 波动 ≤ 6%.

三条 NAV 同时跑, 等于公开把"view 是否真的有 alpha"摆在桌面: 若 Bull 长期跑赢 Base, 我的 view 在创造价值; 若都跑输 60/40 baseline, 框架要修.

2 · 资产宇宙

10 个 ETF 覆盖 5 个核心资产类:

  • 权益: A 股大盘 (沪深 300) + 中盘 (中证 500) + 港股 (恒生) + 美股 (SPY) + 纳指 (QQQ)
  • 利率: 国内 10Y 国债 + 美债 20Y+ (TLT)
  • 信用: 国内城投债
  • 商品: 黄金
  • 现金: 货基代理

参考变量 (不下单, 仅作 view 输入 + 归因因子): USD/CNY, DXY, UST 10Y/2Y yield, VIX.

3 · 月度纪律 (写死, 不灵活)

  • 每月第 1 个交易日 rebalance, 中途不动 (除非触发硬止损)
  • 单次最多调整 3 个仓位
  • 单仓位上限 30%, 任一资产类总上限 50%, 现金下限 5%
  • 每次 rebalance 必须写下: 触发理由 / 预期 / 失效条件 → git commit 留时间戳

4 · 归因 (月度)

每月把超额收益 (vs Base / vs 60/40) 归到:

  • 资产类配置 (Brinson allocation effect)
  • 单券选择 (selection — 本组合主要用宽基 ETF, 该项贡献小)
  • 宏观因子: 利率方向 / 美元方向 / 风险偏好 (VIX) / 信用利差

5 · Baseline 对照

三组 NAV 同时跟 3 个 baseline 比:

  • 60/40 (60% 股 / 40% 债)
  • 等权 (10 个资产各 10%)
  • 纯风险平价 (无 view, 仅历史波动反向加权)

没 baseline 就没 alpha. 长期跑不赢 baseline = view 没价值 = 框架推倒重来.

6 · 数据流

  • 价格: yfinance (海外 + A 股 ETF 通过 .SS suffix) + akshare (国内补充)
  • GitHub Actions: 工作日 17:30 SGT 自动 fetch + 算 NAV, commit 回写
  • 每日 NAV 用上月 rebalance 的单位数 (units count) × 当日收盘价
  • 海外资产 v1 暂不汇率折算 (用本币), v2 加入 USD/CNY 调整

7 · 已知简化 (v1)

诚实声明本版本的局限:

  • 无交易费 / 滑点 (实盘扣 ~10-20bp/年)
  • 海外资产用本币计算, 未做 USD/CNY 调整 (会高估或低估)
  • 无再投资 (分红假设自动 reinvest)
  • 用 ETF 代理资产, 非真实底层 (跟踪误差被忽略)

v2 路径见 GitHub roadmap.