以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  金字塔封装的下单接口的时间消耗问题。  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=61275)

--  作者:虎鱼
--  发布时间:2014/1/24 21:48:45
--  金字塔封装的下单接口的时间消耗问题。
请问金字塔的研发人员,有没有测试过ORDER对象在调用封装的CTP类API时,所消耗的时间?
比如,下列这段代码
ATIME=timer \'调用ORDER前的时间点
callorderid= Order.Buy(1,1,0,0,"ru05","sq","930137",0)     \'调用ORDER
BTIME=ORDER.BUY从本机发送下单指令完成时所记录的时间点。

TIMEUSE=BTIME-ATIME.

我想知道的就是TIMEUSE为多少MS?


--  作者:admin
--  发布时间:2014/1/24 22:07:59
--  

消耗的时间是可以忽略不计的,也就是那么几纳秒而已

[此贴子已经被作者于2014/1/24 22:08:14编辑过]

--  作者:虎鱼
--  发布时间:2014/1/24 22:14:56
--  
我自己粗略的写了下面的代码来估算,考虑到CALL过程是异步执行,所以时间的消耗肯定不是很精确,实际消耗的时间应该要比计算的还要多。
Sub frmMain_CommandButton1_Click()
frmmain_lbltxt.caption=""
befsend=timer
callorderid= Order.Buy(1,1,0,0,"ru05","sq","XXXXX",0)     \'市价开多单
if callorderid<>0 then afterorder=timer

atmp=afterorder-befsend
fundelay=(atmp-int(atmp))*1000
frmmain_lbltxt.caption="调用ORDER.BUY语句消耗:" &fundelay &"MS"

End Sub

测试的时候是实盘,XXXXX用的是实际登陆的账户。
80%时间是0MS,20%的时间是7MS。0MS估计是因为callorderid= Order.Buy(1,1,0,0,"ru05","sq","XXXXX",0) 是异步执行,所以无法真实计算。

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140124220741.jpg
图片点击可在新窗口打开查看

但是20%所测出的时间消耗达到7MS,这是不是有点恐怖了?
[此贴子已经被作者于2014/1/24 22:15:34编辑过]

--  作者:虎鱼
--  发布时间:2014/1/24 22:18:34
--  
还是我写的代码有误?
--  作者:王锋
--  发布时间:2014/1/26 10:51:22
--  

你这么测试是没有任何意义的,你测试是调用函数返回的时间,我没有仔细测试你的代码不知道你写的对不对,但是方法你就有问题.金字塔的报单发送是异步的,你测试代码的执行行的返回时间,本身就有问题的