欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → while循环执行的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3914人关注过本帖树形打印复制链接

主题:while循环执行的问题

帅哥哟,离线,有人找我吗?
JJG
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2019/1/2 22:42:47
while循环执行的问题  发帖心情 Post By:2019/2/20 17:13:42    Post IP:180.169.30.6[只看该作者]

为何WHILE  表达式1 AND 表达式2 DO 不能执行,只能变成变量来判断?
见程序黄色部分。

程序如下:

//一致性获利法_双安全气囊

{
//取当前窗口的品种
//取当前窗口的的数据周期
//数据周期参数+1,
}

//定义变量
WEIZHIPIANYI_BUY :1;//买入双安全气囊的位置偏移,初始化为前1根K线。
买入气囊_临时_初始: CALLSTOCKEX('',VTLOW,ZOUQI,-WEIZHIPIANYI_BUY,100);//买入安全气囊_临时_初始,引用当前品种,最低价,程序设定周期买入位置偏移的最近100根数据.
ANQUANQINANG_BUY_TMP : CALLSTOCKEX('',VTLOW,ZOUQI,-WEIZHIPIANYI_BUY,100);//买入安全气囊_临时,引用当前品种,最低价,程序设定周期买入位置偏移的最近100根数据.
ANQUANQINANG_BUY : 买入气囊_临时_初始 - SHUZHIPIANYI; //买入安全气囊,=买入安全气囊_临时 - 数值偏移

P:=I;

TS:0;

//算法

//买入安全气囊
//若安全气囊<当前图表上周期的当前周期的最低价则循环。位置偏移+1;买入安全气囊_临时重新赋值,买入安全气囊重新赋值;

A:0;
IF ANQUANQINANG_BUY_TMP >= LOW AND P>0 THEN A=1;
WHILE  A  DO 
//上面这3句组合能执行,若用下面这1句就不能执行了。
//WHILE  ANQUANQINANG_BUY_TMP >= LOW AND P>0 DO  不能执行循环
     BEGIN
     TS:=1;  
       WEIZHIPIANYI_BUY : = WEIZHIPIANYI_BUY+1;
       ANQUANQINANG_BUY_TMP := CALLSTOCKEX('',VTLOW,ZOUQI,-WEIZHIPIANYI_BUY,100);
       ANQUANQINANG_BUY := ANQUANQINANG_BUY_TMP - SHUZHIPIANYI;
       P=P-1;
       IF P=0 THEN 
           BEGIN
            ANQUANQINANG_BUY := 买入气囊_临时_初始 - SHUZHIPIANYI;
            BREAK;
          END;
     END;  
      


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/2/20 17:19:29    Post IP:180.169.30.6[只看该作者]

 一般只有while的判断条件里面带统计类函数才会有问题。通常情况下是不会有问题的。2种形式并无差别。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
JJG
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2019/1/2 22:42:47
  发帖心情 Post By:2019/2/20 17:31:12    Post IP:112.5.248.219[只看该作者]

这个程序能执行循环,但是会死循环,我查不出原因,请帮忙看一下!

 回到顶部
帅哥哟,离线,有人找我吗?
JJG
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2019/1/2 22:42:47
  发帖心情 Post By:2019/2/20 17:44:51    Post IP:112.5.248.219[只看该作者]

这个程序为何死循环?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/2/21 15:03:43    Post IP:180.169.30.6[只看该作者]

和循环的条件有关了:
ANQUANQINANG_BUY_TMP >= LOW AND P>0

我注意到你的循环内部对
ANQUANQINANG_BUY_TMP是有重新赋值的。这可能是导致死循环的原因。

而之前的方案中的变量A只判断了一次,后面的方案每次循环一次之后对
ANQUANQINANG_BUY_TMP >= LOW AND P>0又进行计算和判断 。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
CH123456
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:4 积分:0 威望:0 精华:0 注册:2019/4/18 11:09:18
  发帖心情 Post By:2019/4/22 14:15:12    Post IP:116.30.223.138[只看该作者]

P=P-1;改成p:=p-1;

 回到顶部