关于后台交易速度的3个问题 咨询版主
1 第一个速度 从模型运算完毕到发出委托的速度.
模型是2个挨着的语句发出开多开空的2单
之前用的3.8版本,第一单大约60ms 第二单等第一单发出之后又过了60ms才发出.
导致套利老是单腿 亏钱.
好在4.3版本速度有较大的提升. 第一单3ms发出 第二单又等3ms才发出.
那么:
既然是一个模型 挨着的2条语句. 后面的第二条委托 能不能一起 都在第一个3ms内发出呢?
2017-11-16 13:57:45.501 【后台】PB01 TSellShort 第 155 行出现信号
2017-11-16 13:57:45.501 【后台】PB12 TSellShort 已成功触发下单操作 价格:18470.000000 数量:5 类型:0 账户:620717 品种:PB12
2017-11-16 13:57:45.501 【后台】多账户及策略系数 委托账户或者组: 620717
2017-11-16 13:57:45.502 【后台】CTP登录账户 0 个
2017-11-16 13:57:45.502 【后台】金仕达登录账户 0 个
2017-11-16 13:57:45.502 【后台】恒生登录账户 0 个
2017-11-16 13:57:45.502 【后台】子账户 登录账户 0 个
2017-11-16 13:57:45.503 【后台】扩展接口 登录账户 1 个
2017-11-16 13:57:45.503 【后台】 帐户 620717 下单
2017-11-16 13:57:45.503 【后台】账户 620717 下单系数为1.000000
2017-11-16 13:57:45.503 【后台】账户 620717 下单,系数调整后下单量:5
2017-11-16 13:57:45.503 【后台】实际账户 620717 持仓 25
2017-11-16 13:57:45.504 【后台】下单已发送 ////////第一条委托
2017-11-16 13:57:45.504 【后台】PB01 TSell 第 156 行出现信号
2017-11-16 13:57:45.505 【后台】PB01 TSell 已成功触发下单操作 价格:18465.000000 数量:5 类型:0 账户:620717 品种:PB01
2017-11-16 13:57:45.505 【后台】多账户及策略系数 委托账户或者组: 620717
2017-11-16 13:57:45.505 【后台】CTP登录账户 0 个
2017-11-16 13:57:45.505 【后台】金仕达登录账户 0 个
2017-11-16 13:57:45.505 【后台】恒生登录账户 0 个
2017-11-16 13:57:45.506 【后台】子账户 登录账户 0 个
2017-11-16 13:57:45.506 【后台】扩展接口 登录账户 1 个
2017-11-16 13:57:45.506 【后台】 帐户 620717 下单
2017-11-16 13:57:45.506 【后台】账户 620717 下单系数为1.000000
2017-11-16 13:57:45.507 【后台】账户 620717 下单,系数调整后下单量:5
2017-11-16 13:57:45.507 【后台】实际账户 620717 持仓 25
2017-11-16 13:57:45.507 【后台】下单已发送 ///////////第二条委托
2 第二个速度 模型的运算速度
勾选了不间断监控 1ms
从日志看,几百行的模型在15 16毫秒内运算完毕 .
但是我做了一个极简单的测试模型,就1-2句. 按道理可以在3毫秒以内运算完毕.
然而但是并没有,还是15-16毫秒才运算完毕.
那么 应该是金字塔封印了模型的运算速度. 没道理几百行15毫秒,一句话也要15毫秒.
能不能解除封印呢? 让电脑以最大速度最快的刷新率去运行. 简单模型 估计3毫秒就能刷一次.然后就可以发单了.
如果这样,从收到行情开始 3毫秒算完 3毫秒2个单子发出去. 能大大的减少滑点.毕竟比别的软件快就是一大优势.
路上走多长时间,这个就由不得我们了.
3 第三个速度 勾选日志 对发单速度到底有多大的影响.
或者说 当前勾选 1收到行情运算完毕16毫秒,发单6毫秒. 总计22ms
如果不勾选, 你们估计 这个22ms能缩减吗,大概缩减到了多少?
谢谢!! 期待能优化第一个 和第二个速度.
(毕竟发单速度 从3.8版本的120ms 变戏法一样的4.3版本变成了6ms, 相信你们的能力)
如果把第二个模型预算速度接触封印,谁再说金字塔慢,就可以拿个几句话的模型怼他. 你看2毫秒算完了 3毫秒就发出单子了
慢是因为模型复杂了,自己改策略去!!
从收到行情到发出单子 5毫秒以内,大家都没话说了!!
[此贴子已经被作者于2017/11/16 14:48:00编辑过]
这就涉及到软件底层设计算法和资源利用的问题了,任何软件都会有一个运行的极限值的,只有在不断优化运行计算算法,提高硬件资源的利用率,才会突破这个壁垒。随着硬件的提升,客户的需求,对这块的需求我们也会更加重视,这需要一个过程,也是我们努力的方向。
谢谢版主的重视
软件都会有一个运行的极限值的,只有在不断优化运行计算算法,提高硬件资源的利用率,才会突破这个壁垒
现在这第二个速度 比较复杂和极简单的模型 都要16ms运算完, 应该是你们基于某种考虑封印了这个速度.
如果能解除这个封印,让简单的模型快点算完把单子发出去,再进行下一次扫描. 那就最好不过了.
争取做到发单子有多块 只看模型和电脑. 期待中!!
日志记录也需要时间的,这3ms主要是记录日志消耗的
不会吧大哥? 意外惊喜?
你是说第二单和第一单之间间隔的3毫秒 是记录日志消耗的?
那第一单和出现信号之间的3毫秒呢? 不会也是记录日志消耗的吧?
回到第二个速度,模型不管大小 运行都要16毫秒的情况, 其中大概有多少是记录日志消耗的?
当然 除掉记录日志消耗的, 简单模型也应该能速度更快才对.
日志消耗大约1-2毫秒。
另外如果你对交易速度计较到毫秒的程度,那么PEL是不适合你的,建议你用处理更高效的VBA交易
易用性和速度 是一个两难的取舍
当然 如果两者都好 那就更好了.
金字塔可以尽量让PEL压榨硬件, 同时让客户易用. 我感觉你们完全有能力缩短简单模型的运算时间间隔的.
实在没有解决方案了,再来压榨脑袋去搞VBA.
因为你知道的,大部分策略,即使我们辛辛苦苦用VBA搞出来,花费大量的精力,然而结论是该策略并没有什么大的卵用. 又去搞新的想法.
如何减少这种对生命的浪费呢?
就靠你们了,尽最大的力 让PEL兼顾速度和易用性.
PEL确实是主要考虑易用性,对于速度而言也不是完全不行,主要还是要考虑编程者的编程能力是否处理高效。
我们新手教学区有个专门介绍提高编程效率的帖子,建议你学习一下
金字塔的PEL跟其他的几家比起来算是很快的了,这也是我们转到金字塔的原因之一.
原来从出信号到发出2单委托 要120毫秒,现在被你们轻松的加速到6毫秒,提升了20倍了.
后来后台加入了不间断监控功能,可以1毫秒刷一下,
我现在疑惑的是 不论复杂还是极其简单的模型,日志里面记录的刷新间隔都在15毫秒左右.
同时CPU占用并不高, 也就是说 你们在这个不间断监控的地方 还有压榨速度的空间.
期待你们在以后的版本里面再压榨一下.
另外再请教一下版主:
用vba 的话 一个简单的套利模型,尽可能快的去监控行情(委托价 委托量)的变化,比如也间隔1毫秒就去监控,
从发现行情变化 到委托单从我电脑上发出,大概要几毫秒? 比PEL大概快多大比例?