设为首页收藏本站

 找回密码
 注册
查看: 1355|回复: 1
打印 上一主题 下一主题

如何在for语句中使用序列变量? [复制链接]

Rank: 1

精华
0
UID
226278
积分
10
帖子
5
主题
4
阅读权限
10
注册时间
2016-1-6
最后登录
2016-3-23
跳转到指定楼层
1#
发表于 2016-1-8 15:52:50 |只看该作者 |倒序浏览
以下两种写法,写法1能达到预期结果,但是写法2用for循环来实现的时候,系统提示for里面使用序列变量可能存在逻辑问题,而且写法2也不能达到预期结果,请问这是为什么?写法2应该如何修改才能做到在for循环中正确的使用序列变量呢?


写法1:
        // 最近的5根K线有溢出布林线上轨
        ConditionOverbought1 = (Close[1] > AverageFC(Close[1],Length) + Offset * StandardDev(Close[1],Length,2));
       
        ConditionOverbought2 = (Close[2] > AverageFC(Close[2],Length) + Offset * StandardDev(Close[2],Length,2));
       
        ConditionOverbought3 = (Close[3] > AverageFC(Close[3],Length) + Offset * StandardDev(Close[3],Length,2));
       
        ConditionOverbought4 = (Close[4] > AverageFC(Close[4],Length) + Offset * StandardDev(Close[4],Length,2));
       
        ConditionOverbought5 = (Close[5] > AverageFC(Close[5],Length) + Offset * StandardDev(Close[5],Length,2));
       
        ConditionOverbought = ConditionOverbought1 || ConditionOverbought2 || ConditionOverbought3 || ConditionOverbought4 || ConditionOverbought5;
       


写法2:
       
        i = 1;
       
        While (i <= 5) {
            if (Close[i] > AverageFC(Close[i],Length) + Offset * StandardDev(Close[i],Length,2)){
                        ConditionOverbought = true;
                        break;
                }
                i = i + 1;
    }

期市新手

TB官方客服

Rank: 1

精华
0
UID
223934
积分
18
帖子
18
主题
0
阅读权限
10
注册时间
2015-11-26
最后登录
2016-5-12
2#
发表于 2016-1-8 16:43:10 |只看该作者
像你这个例子,直接定义一个序列变量比如命名为condtion= (Close[1] > AverageFC(Close[1],Length) + Offset * StandardDev(Close[1],Length,2));
然后循环中,用condtion[i]来比较。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-27 13:12

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部