设为首页收藏本站

 找回密码
 注册
查看: 3991|回复: 5

If条件语句里面不能使用序列函数进行计算 V4中的问题! [复制链接]

Rank: 7Rank: 7Rank: 7

精华
0
UID
13206
积分
3844
帖子
60
主题
26
阅读权限
80
注册时间
2010-6-28
最后登录
2014-10-13
发表于 2011-4-26 10:46:00 |显示全部楼层
原来V3中的程序 经常出现 IF语句中的序列变量,有些开平仓条件只需在某种条件下才需要判断,如果全部调用到IF之外那不是会增加计算量?

还有 为了防止集合竞价时候发单失败。经常运用到如下代码:

If(Date != Date[1]&&High == Low)
        {
            Return;
        }
        Else
       {
        正式程序.......
     }
那不是所有序列变量也都在这里面,如何避免出错?也是全部调整到IF之外?

Rank: 7Rank: 7Rank: 7

精华
0
UID
8209
积分
3268
帖子
413
主题
78
阅读权限
80
注册时间
2010-4-6
最后登录
2013-3-18
发表于 2011-4-26 13:15:20 |显示全部楼层
序列变量应不受影响。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
13206
积分
3844
帖子
60
主题
26
阅读权限
80
注册时间
2010-6-28
最后登录
2014-10-13
发表于 2011-4-26 13:19:50 |显示全部楼层
回复 2# cnbiz850
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
8209
积分
3268
帖子
413
主题
78
阅读权限
80
注册时间
2010-4-6
最后登录
2013-3-18
发表于 2011-4-26 13:28:07 |显示全部楼层
我也不是很明白为什么那么多的警告。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
1057
积分
824
帖子
158
主题
8
阅读权限
60
注册时间
2008-1-11
最后登录
2021-10-24
发表于 2011-4-26 21:26:12 |显示全部楼层
是啊!这种警告很多,不知道影响到底如何?
系统交易学徒

使用道具 举报

Rank: 4

精华
0
UID
18507
积分
329
帖子
43
主题
16
阅读权限
50
注册时间
2010-10-28
最后登录
2021-6-3
发表于 2011-5-1 22:16:04 |显示全部楼层
影响很大,序列函数几乎不能用,强烈质疑TB的这一不负责任的改动,要求恢复到v3
看我的另一个帖子 http://www.tradeblazer.net/forum/thread-14060-1-1.html
-------------------------------------------------------------------------------------------------
再谈V4序列变量使用重大缺陷,请TB严重关注

序列变量在子函数中取值错误
现在有一个指标 TestMD,在条件语句中调用子函数iTest, iTest中只是简单输出序列变量MD
序列变量MD在每个Bar会修改一次,但有三次使用
1. 在IF语句之外输出10个
2. 在IF语句之内输出10个
3. 在IF语句之内的子函数iTest输出10个
结果1,2 都正确,3的输出严重错误, 程序如下
//------------------------------------------------------------------------
// 简称: TestMD
// 名称:
// 类别: 公式应用
// 类型: 用户应用
// 输出:
//------------------------------------------------------------------------
Params
String pKey("KKK");
Vars
Numeric i;
NumericSeries DIFF;
NumericSeries DEA;
NumericSeries MD;
NumericSeries MA1;
NumericSeries MA2;
string logfile("C:\\worktb\\logs\\icLogs.txt");
string ss;
Begin
        DIFF = (XAverage( Close, 7 ) - XAverage( Close, 19 ));        
        DEA = XAverage(DIFF,5);
        MD = DIFF - DEA;
        MA1=Average(C,5);
        MA2=Average(C,10);
        ss=Text(SystemDateTime()) + " - " + "BarTime= "  + Text(Date + time) + " Bar= " + Text(CurrentBar) +  " : " ;
        for i=0 to 10
             { FileAppend(LogFile,ss+ " 1. i="+text(i)+ " md="+text(md) ); }
        IF (MA1>MA1[1] && MA1[1] > MA1[2] && MA1 >MA2)
        {
                  for i=0 to 10
             { FileAppend(logfile,ss+"2. i="+text(i)+ " md="+text(md) ); }
                 iTest(pKey,logfile,MD);
         }
        
End


//------------------------------------------------------------------------
// 简称: iTest
// 名称:
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------

Params
    String pKey;
        String LogFile;
        NumericSeries MD;
Vars
        Numeric i;
        string ss;
Begin
     ss=Text(SystemDateTime()) + " - " + "BarTime= "  + Text(Date + time) + " Bar= " + Text(CurrentBar) +  " : " ;
         for i=0 to 10
          { FileAppend(LogFile,ss+" 3. i="+text(i)+ " md="+text(md) ); }

        Return i;
End

输出结果如下:
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  1. i=1 md=1.552115
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  1. i=2 md=1.345458
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  1. i=3 md=0.879360
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  1. i=4 md=1.279989
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  1. i=5 md=0.845014
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  1. i=6 md=0.431001
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  1. i=7 md=0.149780
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  1. i=8 md=-0.550251
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  1. i=9 md=-1.317075
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  1. i=10 md=-1.451735
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=0 md=1.103252
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=1 md=1.552115
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=2 md=1.345458
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=3 md=0.879360
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=4 md=1.279989
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=5 md=0.845014
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=6 md=0.431001
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=7 md=0.149780
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=8 md=-0.550251
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=9 md=-1.317075
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 : 2. i=10 md=-1.451735
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=0 md=1.103252
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=1 md=1.552115
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=2 md=1.552115
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=3 md=1.552115
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=4 md=1.279989
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=5 md=1.279989
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=6 md=1.279989
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=7 md=1.279989
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=8 md=1.279989
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=9 md=1.279989
20110429.102905 - BarTime= 20110429.094500 Bar= 1000 :  3. i=10 md=1.279989

使用道具 举报

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

bottom

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

GMT+8, 2024-4-19 08:23

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部