首先声明,以下内容仅代表个人看法,欢迎拍砖。
金字塔的图表交易里面有一个高频选项,后台交易里面有一个分笔速率扫描选项,这是其他交易平台所没有的,个人认为,如果不将这两个东西拿掉,很难避免交易紊乱。
正常交易,每一个TICK来临,必须完整的执行一遍模型,如果能保证每个TICK完整执行一遍模型,也就无需高频选项和分笔速率扫描选项了。
也就是说,模型的运行不能在中间被新的TICK来临所中断,模型虽然是被TICK驱动,但中间运行过程中,模型运行的优先级必须要有保障,宁可慢一点也要执行一遍完整的模型程序,试想,如果模型正好运行在开仓时突然来了一个新的TICK,后面关于记录仓位和方向的程序没有执行完成,而被新的TICK再次驱动,会是什么结果呢,这里所说的不单是指模型没有执行完成,更重要的是怀疑平台本身的内部变量或记录没有完成而又开始新的循环了,因此,强烈建议去掉高频选项和分笔速率扫描选项,当然,不是说简单取消就可以的,要从根源上无需这两个选项。
模型运行一遍的优先级应为最高.
如果模型计算复杂,在新的一个TICK到来的时候还没运行完模型,是不会中断运行的模型的.
由于模型运行复杂等情况,前一笔未刷新完毕时,当又出现新的一笔数据时,图表和后台分别采取2种处理方法:
图表:会将刷新放入队列中,等待上一笔刷新计算完毕后再来刷新
后台:若上一笔刷新刷新未完成,置标志,等待刷新完毕后,判断标志位,然后再考虑是否继续重新刷新
从上述描述可以看出,后台的刷新是有他的优势的,图表这种模式如果数据过快,可能会导致软件停止相应,因为图表上必须做到TICK数据的刷新与计算刷新一致,而后台则发现软件计算无法达到TICK数据要求时,会主动放弃中间的一些刷新,这种做法既不会漏掉该刷新的数据,又可以保证软件能够比较顺畅的使用
以前记过日志,由于大多时间正常,为了不影响速度,后来就没记了。
出现漏单情况很大程度上是因为金字塔软件卡造成软件短时间内卡死的现象~(在10分钟内无法切换出软件..)
不少人做程序化交易并没有一直守在实盘机器旁边观察现象~
结果出了问题一直在调试却找不出编程错误~后面怀疑到金字塔的刷新...
我这边出现的情况是金字塔经常占用25%的CPU然后自己软件就卡死了~
软件假死情况下出现任何操作都是合理的..
我主观认为这是因为连接了金字塔的行情服务器..(具体为啥全推行情会导致刷新卡死软件我也不清楚)
因为我把行情换成点播式的时候~金字塔运行同样的交易模型占用CPU变成了16-20%...
这是很明显的现象~你们自己试试就知道了..