本次真格量化的回测柜台升级对回测的撮合算法做了多项优化,使得撮合更加接近实盘情况
简介,太长不看版:
首先本次回测主要影响分钟回测,tick回测仅有小影响,日线接近无影响。
本次更新将分钟线数据的获取更加贴近现实,避免了未来数据,同时新增了两种匹配模式可以选用。可能导致部分策略采用未来数据价格下单成交后的
一、分钟线回测时
1、 OnQuote会在开盘集合竞价结束时触发一次,例如螺纹钢会在20:59:00,此时通过GetQuote可以获取到集合竞价结束时的行情数据。
OnQuote事件的触发时间从每个整分钟,变动到每分钟的59秒,例如9:30:00的OnQuote事件,现在将在9:30:59秒触发。
2、 通过GetHisData系列(包括GetHisDataByField,GetHisData2 , GetHisDataAsDF , GetHisDataByFieldAsDF)的API函数获取分钟K线时,最新的一根分钟K线变为一根高开低收为同一个价位、成交量为0的短横线。
例如在2019年8月2日14:40:00获取rb1910的分钟k线。打印出最后5根。
测试代码:
更新前:
更新后:
我们可以看到最后有变化的是14:41:00的K线,也就是8:40:00开始触发的新K线(14:40:01-14:41:00),这根K线变成了一根空K线。这跟在实盘的情况是一致的,实盘中的最后一根K线也是一根未完成的K线。
3、在Onbar中GetQuote的时候,拿到的数据变化。
在OnBar中,同样是2019年8月2日14:40的rb1910,我们拿取行情数据。
测试代码:
更新前:
更新后:
可以看到更新前会拿到14:40的行情,对应的最新价与14:41的收盘价的行情对应。
4,对手价下单时的撮合。
改动前,最后一根分钟线的收盘价、即14:40的时候下单会拿到14:41分钟线的收盘价,然后根据会根据14:41的分钟线进行撮合。
改动后,提供了撮合模式1和撮合模式0,可以通过SetBarMatchParam设置。
改动后 模式0:
SetBarMatchParam(0)
倒数第二根分钟线的收盘价、即14:40的时候下单会拿到14:40分钟线的收盘价
模式1下,会从倒数第一根K线开始撮合,即仍从14:41的分钟线开始撮合,此时该分钟线为短横线。
默认为模式0。
5,Tick回测:
在每分钟结束前,去查分钟线,最新的一分钟只是小横线,直到该分钟完整结束的OnQuote事件中,才能拿到该分钟数据k线。
感觉用模式1更正常一些。模式0还是有一些未来函数的感觉的。
感觉是个脑子不太清醒的人写的说明文字
您好 打扰了 请问一下 您的撮合模型中 三角分布模型是怎么应用的呀 是用于当前bar最大可成交量判断的吗 使用逻辑是否为:总成交量*CDF(P) P为可成交价格? 谢谢您 望早日回复
===================
8:40:00写错了,应该是14:40:00吧?
实盘和模拟功能很棒,就是策略开发不太友好,希望越来越好吧!
不错哦,赶紧测试一下看看变动情况
请问 SetMatchParam 要如何使用?回测的时候放在 OnStart 里要报错
https://quant.pobo.net.cn/doc?name=api#%E8%AE%BE%E7%BD%AE%E6%92%AE%E5%90%88%E6%A8%A1%E5%BC%8F%E2%80%94%E2%80%94setbarmatchparam
赞!回测和策略的关系就相当于风洞实验室和飞机。