Rss & SiteMap

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

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

标题:[建议]PEL增加对else if 语法的支持

1楼
z7c9 发表于:2010/12/24 8:31:06

目前为了实现当cond1不满足时判断cond2,当cond2不满足时判断cond3这样的逻辑控制,要么如Test1进行大量的if嵌套,要么如Test2在if语句中加入goto语句,如果PEL支持else if语法的话,如Test3,很清晰明了的就能表达这个逻辑控制,而且当存在更多的如cond4,cond5...这样的逻辑时,无疑前两种方法的表式过于繁琐,建议PEL增加对else if语句的支持。

 

Test1

以下内容为程序代码:

1 if cond1 then
2     buy(1,1,limitr,close);
3 else begin
4     if cond2 then
5         buy(1,1,limitr,close);
6     else cond3 then
7         buy(1,1,limitr,close);            
8 end;

 

Test2

 

以下内容为程序代码:

1 if cond1 then begin
2     buy(1,1,limitr,close);
3     goto end@;
4 end;
5
6 if cond2 then begin
7     buy(1,1,limitr,close);
8     goto end@;
9 end;
10
11 if cond3 then begin
12     buy(1,1,limitr,close);
13     goto end@;
14 end;
15
16 end@;

 

 

 

Test3

以下内容为程序代码:

1 if cond1 then
2     buy(1,1,limitr,close);
3 else if cond2 then
4     buy(1,1,limitr,close);
5 else if cond3 then
6     buy(1,1,limitr,close);

 

 

 

 

[此贴子已经被作者于2010-12-24 8:32:07编辑过]
2楼
大灰狼 发表于:2010/12/24 8:45:10

楼主提出问题之前,可否自己先自行测试一下

1 if cond1 then
2     buy(1,1,limitr,close);
3 else if cond2 then
4     buy(1,1,limitr,close);
5 else if cond3 then
6     buy(1,1,limitr,close);

这个语法金字塔上完全可以执行

3楼
fly 发表于:2010/12/24 8:47:08

用已有的功能已经可以实现,且实现并不复杂.

因不是非增不可.

故暂不考虑增加

4楼
z7c9 发表于:2010/12/24 9:12:14
以下是引用大灰狼在2010-12-24 8:45:10的发言:

楼主提出问题之前,可否自己先自行测试一下

1 if cond1 then
2     buy(1,1,limitr,close);
3 else if cond2 then
4     buy(1,1,limitr,close);
5 else if cond3 then
6     buy(1,1,limitr,close);

这个语法金字塔上完全可以执行

http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=4556&skin=0

5楼
z7c9 发表于:2010/12/24 9:14:36

以下内容为程序代码:

1 runmode:0;
2
3 if true then
4     begin
5         buy(1,1,limitr,close);
6     end;    
7 else if true then
8     begin
9         buy(1,1,limitr,close);
10     end;
11 else if true then
12     begin
13         buy(1,1,limitr,close);
14     end;

 

这样是能运行呀,到底PEL支不支持else if语法呀,晕了。

6楼
xian_0_9 发表于:2011/10/31 11:14:07

这么写不行吗?

if cond1 or cond2 or cond3 then buy(1,1,limitr,c);

 

和例子3有啥区别?

 if cond1 then 
     buy(1,1,limitr,close); 
else if cond2 then 
     buy(1,1,limitr,close); 
else if cond3 then 
     buy(1,1,limitr,close);

7楼
fly 发表于:2011/10/31 13:30:37

1.任意cond1,cond2,cond3一个满足就开仓.

2.当cond1不满足时判断cond2,当cond2不满足时判断cond3.

8楼
xian_0_9 发表于:2011/10/31 20:00:11

谢谢

共8 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.00781 s, 3 queries.