为什么当根BAR没有触达的价格范围实盘却能交易成功?

咨询一个不理解的现象:

一、现象:

实盘:在某一个BAR进行限定价报单,成交了。但查看这根BAR,根本就没有这个价格。那为什么能成交呢?如下两图:

图一:20240930的10:05:06,棉花501以14630报单,对手价14620,成交了,成交价14620。

data-href=

图二:20240930的10:05:06,棉花的高开低收四个价均为14615。没有14620。

data-href=


二、疑问

1、如果棉花在20240930的10:05:06的买价是14615,对手价是14620,那么最高价不是应该是14620吗?为什么还是14615。是因为14615的买单太多,即使14620成交了,但是没有吃完14615的挂单,所以K线图表上还是显示挂单量比较大的14615吗?上述理解是否对,还是因为数据有错的原因(比如没及时刷新、漏了数据等等?)

2、接上述第1点,假如上述的理解是对的,那么回测记录会显示以14615买入成功。

data-href=

但实盘其实是14620买入成功,这在回测的时候就产生了偷价。是不是因为回测系统没法根据盘口撮合的情况去显示14620成交,只能以K线的最差的价格即最高价即14615来计算买入价格呢?如果是,怎么样在回测的时候矫正这种情况?(比如代码里如何处理可以避免这种错误的情况)。因为这样的话回测绩效是失真的,会高估回测的绩效。







条件满足,打印成功,但为什么没有出现交易信号
求助老师写一个价格触碰顾比倒数线的提醒信号
1分钟BAR数据的23整点的BAR数据为什么没有?
实盘不交易的问题
如何知道当一个数据图层加载好后一共加载进来了多少根Bar
请问有没有判断当前时间是否满足当根BAR收盘前N秒的函数吗
回测报告的平仓价格是开盘价,实盘交易的平仓价格是突破价。请问如何回测不准的问题?
向前触碰,怎么编写??
实盘不能成功下单。头寸挂上了,编译了。也可以成功回测
在历史数据回测中为啥我购买价格不在当跟Bar的最高价和最低价范围内也能成交

第一个问题,交易所推送的数据是tick数据,这是切片数据,每0.5秒发送一次数据,包含这0.5s里发生的量,和 最后一笔 成交的价格。

这些tick数据最后集成k线数据。所以你看到的价格,不一定完全代表所有的成交价格。

第二,回测是无法回测撮合成交情形,回测是按一定会按信号价格成交的前提条件下形成的测试报告。