服务器开了几十个实盘,经过对比,同一品种的tick居然有不同,比如MA2305,第一个实盘在某一个时刻的tick,第二个实盘没有这个tick。是服务器负载不够?要不漏掉每个tick最多能开多少实盘?
具体过程:
同一个策略跑多个同一个品种(参数不一样)实盘,有的实盘会漏掉某个时刻的tick没有获取。
比如MA2305,第一个实盘在某一个时刻的tick,第二个实盘没有这个tick,具体就是在onBar里面读取Q_AskPrice() Q_LastVol()打印出来结果不一样,在实盘数量少的时候没问题,但是实盘开到50个以上好像就不行了。
是的,服务器性能不够了。
tick数据肯定是不会漏的,如果漏了,你这根bar的成交量肯定就不对了。只要两边成交量一致,就说明没有丢数据。
至于你说的问题,那是因为处理器处理速度跟不上了。因为onbar是bar数据更新驱动,也就是收到一次新tick就更新一次。tick数据是0.5秒收到一次,如果处理一次onbar驱动的时间超过了0.5秒,那就会造成tick数据积压,就会把排队等待的tick数据合并成一次驱动来执行onbar,所以你感觉好像跳过了,其实只是因为处理器处理速度跟不上了而已。
这也是为什么数量少的时候都正常,数量多了就不行了。