背景
perp 回测的资金费(funding)目前用常数费率:BacktestRequest.funding_rate 一个数,每结算时点(默认 8h)按 qty_signed × mark × rate 计提进 cash。而 live runner 按结算点拉真实 funding(DataClient.get_perp_funding → data /perp/funding)。
现状
- 回测常数 funding:
services/paper/src/inalpha_paper/engine/backtest.py(self._funding_rate)
- live 真实 funding:
services/paper/src/inalpha_paper/live_runner.py(_accrue_perp_funding 拉真 rate)
- data 已有 connector:
services/data/src/inalpha_data/connectors/binance.py fetch_perp_funding_rate(当前只拉当前rate,无历史序列)
问题
回测 funding ≠ 实盘 funding → "回测==实盘 同账务"在 funding 这一项有保真度差距。费率持续偏离 0 时,回测会系统性高估 / 低估做空(或多头)收益。短周期 / 低费率影响小;长持仓做空 + 高费率时显著。
期望
- data 加历史 funding 序列拉取(Binance fundingRate history 端点)+ 落库
- 回测按 bar 时间查对应区间的真实 rate 计提(替代常数),与 PIT 口径一致
- 保留常数 funding 作快速迭代的可选项(默认走真实历史)
影响范围
仅 perp 回测的收益估计精度;不影响 spot、不影响 live(live 本就拉真实)。
相关 PR:#113(perp v1)
背景
perp 回测的资金费(funding)目前用常数费率:
BacktestRequest.funding_rate一个数,每结算时点(默认 8h)按qty_signed × mark × rate计提进 cash。而 live runner 按结算点拉真实 funding(DataClient.get_perp_funding→ data/perp/funding)。现状
services/paper/src/inalpha_paper/engine/backtest.py(self._funding_rate)services/paper/src/inalpha_paper/live_runner.py(_accrue_perp_funding拉真 rate)services/data/src/inalpha_data/connectors/binance.pyfetch_perp_funding_rate(当前只拉当前rate,无历史序列)问题
回测 funding ≠ 实盘 funding → "回测==实盘 同账务"在 funding 这一项有保真度差距。费率持续偏离 0 时,回测会系统性高估 / 低估做空(或多头)收益。短周期 / 低费率影响小;长持仓做空 + 高费率时显著。
期望
影响范围
仅 perp 回测的收益估计精度;不影响 spot、不影响 live(live 本就拉真实)。
相关 PR:#113(perp v1)