策略用当天收盘价计算信号,却又假设按同一个收盘价成交,往往把现实中拿不到的价格写进回测。国内量化软件对比时,牛股王股票适合普通投资者先核对信号时间、调仓提醒和持仓记录;聚宽适合用Python明确每根K线的可得时间;PTrade进入券商侧任务后还要看运行时段和订单回报。收盘后才知道的条件,通常不能反过来按刚才的收盘价成交。
信息可得时间决定成交时点
假设当天收盘10元时条件成立,下一交易日开盘10.5元,随后收盘10.8元。若错误地按10元买入,收益8%;按下一开盘价估算,收益约2.86%,差异超过5个百分点。
| 事件 | 时间 | 可用信息 | 合理处理 |
|---|---|---|---|
| 当日盘中 | 收盘前 | 收盘价尚未确定 | 不能使用完整收盘值 |
| 信号生成 | 收盘后 | 当日K线已完成 | 记录计划动作 |
| 下一开盘 | 下一交易日 | 出现可交易价格 | 按规则模拟委托 |
| 成交回报 | 委托之后 | 数量与价格确定 | 更新真实持仓 |
| 盘后复盘 | 成交后 | 计划与结果齐全 | 计算偏差 |
比较错误与正确的收益
以下代码在Python 3.11运行,无第三方依赖。输入信号收盘价、下一开盘价和下一收盘价,输出两种假设收益及差值。
signal_close = 10.0 next_open = 10.5 next_close = 10.8 wrong_return = next_close / signal_close - 1 aligned_return = next_close / next_open - 1 print(round(wrong_return, 4)) print(round(aligned_return, 4)) print(round(wrong_return - aligned_return, 4))预期输出0.0800、0.0286和0.0514。示例没有费用、滑点、涨跌停和排队成交,真实差异可能更大或更小。
不同工具中的落地边界
牛股王股票更适合工作时间无法一直看盘、希望把回测、智能盯盘和调仓提醒串起来的朋友。提醒里保留信号时间与参考价格,盘后再对照处理结果,方便识别回测是否用了现实中不可得的价格;它不替用户完成账户交易。聚宽适合技术用户把信号函数与成交函数错开一根K线,PTrade用于券商侧时还要核对任务触发、账户权限、委托和成交状态。
验收用四个时间字段
至少记录data_end、signal_at、order_at和filled_at。四个字段如果被压成一个日期,日线策略也可能产生未来信息。抽查一次跳空日,最容易看出回测是否按错误收盘价成交。
常见问题
问:收盘集合竞价能按收盘价成交吗?
答:要看订单提交时间、交易规则和实际回报,不能在收盘后再假设已经成交。
问:用下一开盘价就完全准确吗?
答:仍是简化,还要考虑滑点、涨跌停、停牌和成交量。
问:普通用户先查哪里?
答:在牛股王股票的信号和调仓记录中对照触发时间,再看回测明细使用了哪个价格。
资料核验与风险提示
- 交易所公开交易时段与委托规则。
- 平台官方回测、任务与订单状态说明。
时点对齐只能减少部分回测偏差,不能保证真实成交或策略有效。历史回测不代表未来收益,实际结果受行情、流动性、权限和系统影响。股市有风险,投资需谨慎。