测试代码及输出结果如下面
用PP13(聚丙烯,开盘时间和L一样)5分钟下测试,瞬间输出;
用rb13(螺纹,有夜盘)日线下测试,就是瞬间输出;
5分钟下测试,不知道为什么,非常慢(可以看看下面的输出结果)
5分钟下测试,如果不要红色那句,也是瞬间输出(说明就是红色那句很慢)
问题:红色那句有什么问题?为什么用rb13 5分钟来测那么慢??
另外,好像callstock有时取的数不对,好像是跨市场或者品种的时候,但是不总是不对,所以我暂时未弄清楚什么时候会不对
--------------------------------------------------------------------------
runmode:1;
if ISLASTBAR then begin
msgout(1,'测试1:callstock取值不输出');
hhh:=callstock('L09',vtclose,6);
msgout(1,'测试1结束');
msgout(1,'测试2:callstock取值并输出');
hhh:=callstock('L09',vtclose,6);
msgout(1,'收盘价:'&NUMTOSTR(hhh,2));
msgout(1,'测试2结束');
end
--------------------------------------------------------------
测试对象:PP13,5分钟线
输出结果:
2015/06/28 08:12:22 测试1:callstock取值不输出
2015/06/28 08:12:22 测试1结束
2015/06/28 08:12:22 测试2:callstock取值并输出
2015/06/28 08:12:22 收盘价:9870.00
2015/06/28 08:12:22 测试2结束
测试对象:rb13,日线
输出结果:
2015/06/28 07:51:24 测试1:callstock取值不输出
2015/06/28 07:51:24 测试1结束
2015/06/28 07:51:24 测试2:callstock取值并输出
2015/06/28 07:51:24 收盘价:9870.00
2015/06/28 07:51:24 测试2结束
测试对象:rb13,5分钟线
输出结果:
2015/06/28 07:52:05 测试1:callstock取值不输出
2015/06/28 07:52:05 测试1结束
2015/06/28 07:52:05 测试2:callstock取值并输出
2015/06/28 07:52:07 收盘价:9870.00
2015/06/28 07:52:07 测试2结束
是不是你在选项里,设置的默认内存调用的数据太大了?
默认3000根,测试是由2009/1/1开始到现在,序列模式。我的问题是,就5分钟rb13下测,并且是含红字那行,才会特别慢,不明
在日线rb13,5分钟PP13下测都不会这样,不要红字那行,同样不会
[此贴子已经被作者于2015/6/29 7:28:28编辑过]
想了下PP好像历史不是很长,我忽略了,只能说可能callstock挺慢的吧
[此贴子已经被作者于2015/6/29 7:32:38编辑过]
而且测试的代码是序列模式,并且里面也写了“if islastbar then”,那就是说只算了一次,多一句msgout需要2秒那么久吗?
速度都差不多
msgout(1,'收盘价:'+NUMTOSTR(hhh,2));
msgout(1,'收盘价:'&NUMTOSTR(hhh,2));
msgout(1,strcat('收盘价:',NUMTOSTR(hhh,2)));
以上3句随便只要有一句,速度就慢
我本地测试就没有这个问题,用户是不是加载的数据太多了
rb13合约,5分钟线,由2009/01/01开始到现在
序列模式,是测试(ctrl+F7那里)
不要那句msgout,基本就是瞬出,加了,就是两秒,按道理应该不用那么久吧?
我那里有好多句msgout,就有关callstock的,加了,就用多两秒(不加那句,保留其他4句msgout基本就是0秒)
而且那个callstock的,只要不是msgout,都是瞬出的(还有没别的语句会很慢暂时不知道)
帮忙按我那个rb13,5分钟,2009/01/01开始来测测试试呗?