以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  复杂的if 嵌套的关系,请老师指导  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166738)

--  作者:幸运60
--  发布时间:2018/11/28 21:00:04
--  复杂的if 嵌套的关系,请老师指导

if holding>0 then begin
                条件1
                条件2
                if 条件3  then begin   
                                   sell(holding>0,1,market);
                                      end                  
                 if 条件4 then begin
                                  sell(holding>0,1,market);
                              
                                      end;

                 if 条件5 then
                       sell(holding>0,1,market);
                end;

 

==================================

这几个if嵌套的关系,搞不清楚了,

请老师指导下

 

如果分开来写,这几个条件之间的什么关系?

 

是不是就是

 if  条件1 and 条件2 and 条件3 then begin   
                                   sell(holding>0,1,market);
                                      end 

 if  条件1 and 条件2 and 条件4 then begin   
                                   sell(holding>0,1,market);
                                      end 

==================================

 

最后一个条件5是没有then

 

有什么区别


--  作者:wenarm
--  发布时间:2018/11/29 8:39:25
--  

不是,

你的代码是if双层嵌套,如果holding>0成立则分别判断条件3、4、5,条件3、4、5谁满足就执行谁、

 

注:条件1,2 这种写法没有有语法结构,不知道。

 

这个语法不对,可以这样写

 if 条件5 then sell(holding>0,1,market);

 

或者,英文begin和end是成对出现的,

 if 条件5 then begin
                       sell(holding>0,1,market);
                end;

 

 


--  作者:FireScript
--  发布时间:2018/11/29 8:55:09
--  
 条件1,条件2也是外部的if 语句?还是只是变量定义的语句。代码不完整,逻辑我没法判断清楚。

--  作者:幸运60
--  发布时间:2018/11/29 10:44:47
--  

谢谢,老师,指导,我想简化下,谁满足执行谁,用什么结构能把第一个if,去掉?


--  作者:幸运60
--  发布时间:2018/11/29 10:54:35
--  

条件1,条件2 和条件3是什么关系呀?


--  作者:FireScript
--  发布时间:2018/11/29 11:14:01
--  
 你给的代码是看不出什么关系的。
这2个条件就孤零零的在这里,如果这里只是计算某个值,那和后面没其实啥关系,但是这里具体是什么你没给出来。

if holding>0 then begin
                条件1
                条件2

                if 条件3  then begin   
                                   sell(holding>0,1,market);
                                      end                  
                 if 条件4 then begin
                                  sell(holding>0,1,market);
                              
                                      end;

                 if 条件5 then
                       sell(holding>0,1,market);
                end;


第一个if 和begin-end 如果要去掉的话,改写成这样,是等效的。


if 条件3  and holding>0 then

begin   
sell(holding>0,1,market);
end  

               
if 条件4
and holding>0 then

begin
sell(holding>0,1,market);                              
end;

 if 条件5  and holding>0 then sell(holding>0,1,market);