← 返回博客列表

【Python量化实战全攻略 #29】基金定投、配置手册:定投回测与再平衡(附代码)

2026年10月21日 08:22 · 智兔数服 · Python量化实战全攻略

摘要:【Python量化实战全攻略 #29】基金定投、配置手册:定投回测与再平衡(附代码) 手册定位:模块四第 5 篇。定投与配置是中长期资金的主战法——定投平滑成本、再平衡锁定比例。本篇讲怎么用 #07 的历史净值做定投

手册定位:模块四第 5 篇。定投与配置是中长期资金的主战法——定投平滑成本、再平衡锁定比例。本篇讲怎么用 #07 的历史净值做定投回测与组合再平衡。
数据来源复用 #07 历史净值(/jh/hb/lsjz/{代码})。

1. 你将得到什么

  • 周/月定投 的回测代码(累计份额、平均成本、收益率);
  • 股债再平衡(固定比例、偏离阈值触发)的写法;
  • 定投 vs 一次性买入的对比思路;
  • 定投/配置的 4 个坑(净值日期、分红处理、再平衡频率、止盈)。

2. 取数约定(复用)

用途 来源端点 见
历史净值 /jh/hb/lsjz/{代码} #07

3. 数据来源(复用,不重复罗列)

详见 #07 基金行情与净值接口手册(历史净值端点)。

4. 核心模板函数(自包含可跑)

import pandas as pd
import numpy as np

_MOCK = True


def dca_backtest(nav_series, amount=1000, every=1):
    s = pd.Series(nav_series)
    shares = 0.0
    cost = 0.0
    for i in range(0, len(s), every):
        shares += amount / s.iloc[i]
        cost += amount
    value = shares * s.iloc[-1]
    return {"份额": shares, "成本": cost, "市值": value, "收益率": value / cost - 1}


def rebalance(weights, navs, threshold=0.05):
    values = np.array(navs)
    total = values.sum()
    cur = values / total
    need_rebalance = np.any(np.abs(cur - np.array(weights)) > threshold)
    return cur, need_rebalance


def run_check():
    nav = [1.00, 1.02, 0.98, 1.05, 1.10, 1.08, 1.15]
    r = dca_backtest(nav, amount=1000, every=1)
    assert r["收益率"] > 0 and r["份额"] > 0
    cur, reb = rebalance([0.5, 0.5], [1200, 800], threshold=0.05)
    assert reb
    print("校验通过 | 定投收益率=%.2f%% 再平衡触发=%s" % (r["收益率"] * 100, reb))
    return r


if __name__ == "__main__":
    run_check()

5. 跑通示例

r = run_check()
print("定投结果:", {k: round(v, 3) for k, v in r.items()})

6. 坑与注意事项

  1. 净值日期:历史净值 T+1,定投回测要用实际交易日净值。
  2. 分红处理:定投要用「单位净值」并假设红利再投,口径统一。
  3. 再平衡频率:月度摩擦低但偏离大,周度精细但成本高,常用季度。
  4. 止盈:定投不止盈会坐过山车,可设目标收益分批止盈。

7. 小结与下一篇预告

定投/配置给「中长期稳健」的资金管理。下一篇讲盘口与高频数据处理——逐笔/五档怎么用。

下一篇预告:《【Python量化实战全攻略 #30】盘口与高频数据处理手册:逐笔、五档怎么用(附代码)》

8. 免责声明

本文为基金定投示例,演示数据为虚构,不构成投资建议。


关于数据来源:本文定投所需的净值数据来自智兔数服(www.zhituapi.com)官方文档接口(详见本系列 #07),覆盖 200+ 已验证路径,注册可领免费 token 做研究测试。
更多实战手册见技术博客:zhituapi.com/blog.html。
本系列《Python量化实战全攻略》共 32 篇,下一篇讲盘口高频。

想亲自试一下?免费获取证书