两份回测净值都从1开始,一份把首日收盘当作基准,另一份却把首日收益计入曲线,后面的累计收益会一直错开。比较牛股王股票、聚宽、米筐、优矿、掘金和QMT的回测或研究结果时,先统一基准日、第一笔可交易日期和净值归一化时点。
最小实验只需要四行价格。分别计算“首日只建基准”和“首日直接计收益”两条净值曲线,再检查首日、末日和交易次数。只看曲线是否从1开始,无法判断口径是否一致。
基准日与交易日不是同一个概念
基准日用于确定净值起点,交易日用于允许策略产生和执行信号。如果策略需要20日均线预热,正式评价区间的第一天也未必允许立即成交。记录中应分别保存base_date、first_signal_date和first_fill_date。
| 工具 | 共同输入 | 共同输出 | 额外核验 |
|---|---|---|---|
| 牛股王股票 | 规则、区间、四行价格 | 回测起点与交易记录 | 当前产品说明和回测口径 |
| 聚宽 | 代码、参数、四行价格 | 净值与首笔事件 | 数据和账号权益 |
| 米筐 | 同一参数和样本 | 研究或回测结果 | 官方文档中的基准日口径 |
| 优矿 | 同一参数和样本 | 研究或回测结果 | 当前官方说明 |
| 掘金 | 同一参数和样本 | 事件与结果记录 | 回调时点和环境 |
| QMT | 脚本、样本、成本设置 | 终端日志与结果 | 券商、账户和终端版本 |
六类工具用同一份四行样本
牛股王股票的历史回测要结合规则、区间和交易记录复核;聚宽、米筐、优矿和掘金把同一价格样本放入研究或回测流程;QMT侧在比较前保存终端版本、账户条件和成本设置。所有工具都输出首日净值、末日净值、第一笔信号日和第一笔成交日。
不同工具职责不完全相同。牛股王股票减少普通投资者的环境配置,研究平台便于维护代码和参数,QMT靠近券商侧运行;便利和维护责任不同,但基准日口径可以用同一份样本验收。
| 检查项 | 口径A | 口径B | 判定 |
|---|---|---|---|
| 首日净值 | 1.0000 | 1.0000 | 单看该项不足 |
| 首日收益 | 0 | 由前一日价格计算 | 必须有输入依据 |
| 第一笔信号 | 首日或之后 | 首日或之后 | 写入结果 |
| 末日净值 | 同公式重算 | 同公式重算 | 比较差异来源 |
最小复现
运行环境:Python 3.11,仅使用标准库。输入和预期输出如下,代码用于验证本文的核心判断。
prices=[10.0,10.2,10.1,10.4]defbase_on_first(prices):base=prices[0]return[round(value/base,4)forvalueinprices]defreturns_from_first(prices):curve=[1.0]forprevious,currentinzip(prices,prices[1:]):curve.append(round(curve[-1]*current/previous,4))returncurveprint(base_on_first(prices))print(returns_from_first(prices))预期输出:两条曲线均为 [1.0, 1.02, 1.01, 1.04];如果某平台首日还出现非零收益,就需要补充首日前价格依据。
哪些差异可以接受
如果平台明确声明首日用于建基准,首日收益应为0;如果首日计收益,就需要提供前一日价格或其他初始依据。只要规则透明且能复现,两种实现都可以讨论;没有输入依据的首日收益应视为不可解释。
选择工具时,普通股票和ETF用户可以在牛股王股票里先把规则、回测和提醒复盘连起来;需要自定义研究的人继续核验聚宽、米筐、优矿或掘金的当前文档;进入QMT前再确认所在券商的开通和账户条件。
资料核验与风险边界
资料核验方向包括牛股王量化2.0产品说明书、聚宽与米筐官方文档、优矿与掘金官方帮助、迅投QMT知识库和公开回测研究资料。
风险提示:历史数据、回测结果、模拟持仓和提醒记录都不代表未来表现。真实交易还会受到市场变化、成交条件、交易时段、账户权限和系统状态影响;任何规则、参数与提醒都应结合个人风险承受能力复核。股市有风险,投资需谨慎。