设为首页收藏本站

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

V4.0问题2 [复制链接]

Rank: 4

精华
0
UID
7798
积分
443
帖子
116
主题
32
阅读权限
50
注册时间
2010-3-26
最后登录
2023-5-2
跳转到指定楼层
1#
发表于 2011-4-20 18:24:34 |只看该作者 |倒序浏览
if(CrossOver(ma2,ma51))
        {
        SetGlobalVar(1,0);       
        SetGlobalVar(1,HighestFC(Close,8));       
        }
公式成功保存了,下面出现一句
“FOR,WHILE,IF,ELES中包含序列函数,可能存在潜在的逻辑错误。请确认代码无误”
果然出错了,显示的讯号不对。
请问如何应用IF函数?

Rank: 4

精华
0
UID
7798
积分
443
帖子
116
主题
32
阅读权限
50
注册时间
2010-3-26
最后登录
2023-5-2
2#
发表于 2011-4-20 18:39:53 |只看该作者
改成        Condition3=CrossOver(ma2,ma51);
        if(Condition3)
        {
        SetGlobalVar(1,0);       
        SetGlobalVar(1,HighestFC(Close,8));       
        }
if开头的语句没问题了,但        SetGlobalVar(1,HighestFC(Close,8));        这一句又不对了,

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
377
积分
1827
帖子
222
主题
29
阅读权限
70
注册时间
2007-9-19
最后登录
2021-12-9
3#
发表于 2011-4-29 13:59:00 |只看该作者
看这意思是 v4 不好在一句里面 函数套函数 参数套参数
我也遇到这情况

使用道具 举报

Rank: 4

精华
0
UID
18507
积分
329
帖子
43
主题
16
阅读权限
50
注册时间
2010-10-28
最后登录
2021-6-3
4#
发表于 2011-4-29 14:52:33 |只看该作者
看我的问题,类似,TB这样改越来越退步了
再谈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

使用道具 举报

Rank: 4

精华
0
UID
9103
积分
351
帖子
38
主题
11
阅读权限
50
注册时间
2010-4-24
最后登录
2019-3-30
5#
发表于 2011-5-4 18:29:06 |只看该作者
nopain 看看,是不是建议恢复原来的序列变量初始化,以便可以在if和循环里面嵌套序列变量函数

使用道具 举报

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

bottom

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

GMT+8, 2024-5-22 01:59

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部