Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:PEL语句执行效率问题

1楼
youop 发表于:2021/3/24 9:42:21
我使用下面的无意义程序测试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);
2楼
banzhuan 发表于:2021/3/24 9:56:13
不知道这样有什么意义呢?策略后面的代码都会去运算一遍,回测个7,8年的数据用4分钟也很正常啊
3楼
youop 发表于:2021/3/24 9:59:26
自己的pel跑大概是40~50多秒,比这个短,因为看到一句话,逐k+最后一根k线,tick过来是刷新最新一根,但是等新的k线形成,还是要整理刷新一遍,所以我想看看能不能简化下代码。
共3 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 2 queries.