以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  请教编程基础知识  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=164107)

--  作者:大豆0911
--  发布时间:2018/6/21 13:57:01
--  请教编程基础知识

麻烦问下版主,两个条件需要同时满足的情况下,1. 分成IF END 两层嵌套来写代码,是否会运算更快(乙)?

2. HOLDING>0作为平多单的条件,是不是直接省略更好?(丙)


原写法(甲):

IF HOLDING>0  and  CROSS(A,B)  THEN BEGIN

      SELLHOLDING>0,0,MARKET); //交易系统之DDZS操作  

end


两层嵌套写法(乙):

IF HOLDING>0 THEN BEGIN

    IF  CROSS(A,B) THEN BEGIN

         SELLHOLDING>0,0,MARKET); //交易系统之DDZS操作  

    end    

end

 

第三种写法(丙):

IF   CROSS(A,B)  THEN BEGIN

      SELLHOLDING>0,0,MARKET); //交易系统之DDZS操作  

end


--  作者:wenarm
--  发布时间:2018/6/21 14:07:21
--  

建议你直接用第一种方式,双层嵌套没有意义,这种结构语法效率问题压根微乎其微。不要本末倒置。

注:外层已经控制了,sell函数内部就不要重复使用相同条件。

 

IF HOLDING>0  and  CROSS(A,B)  THEN BEGIN

      SELL(1,0,MARKET); //交易系统之DDZS操作  

end


--  作者:大豆0911
--  发布时间:2018/6/21 14:16:23
--  
感谢版主,这里您标红的1,是什么意思呢?
--  作者:banzhuan
--  发布时间:2018/6/21 14:29:23
--  
可以看做是条件恒成立