PEL语句执行效率问题
作者:金字塔 来源:cxh99.com 发布时间:2022年09月17日
-
咨询内容:
我使用下面的无意义程序测试20个品种,2014年~2021年的数据,用了将近4分半钟,是不是意思是说,不用复杂函数,系统的行数其实对PEL的执行效率能产生很大影响。
if barpos = 1 then
DEBUGFILE2('D:\2222.TXT','开始',0,1);
if barpos= DATACOUNT then
DEBUGFILE2('D:\2222.TXT','结束',0,1);
//=========================================================
//定义变量
//=========================================================
X:=100;Et:=0;
Lti:=Ref(Time,1);Mc:=c;
If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;
If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;
If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;
If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;
If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;
If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;
If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;
If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;
If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;If Et>0 Then Et:=Et+1;
Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);
Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);
Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);
Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);
Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);
Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);
Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);
Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);
Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);Cs:=If(Et>=6000,x*0.6,x);
来源: WWW.CXH99.COM
-
金字塔客服:
不知道这样有什么意义呢?策略后面的代码都会去运算一遍,回测个7,8年的数据用4分钟也很正常啊
-
用户回复:
自己的pel跑大概是40~50多秒,比这个短,因为看到一句话,逐k+最后一根k线,tick过来是刷新最新一根,但是等新的k线形成,还是要整理刷新一遍,所以我想看看能不能简化下代码。