设为首页收藏本站

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

关于CrossOver函数执行错误的问题 [复制链接]

Rank: 3Rank: 3

精华
0
UID
101666
积分
138
帖子
21
主题
8
阅读权限
40
注册时间
2012-3-1
最后登录
2019-9-23
跳转到指定楼层
1#
发表于 2013-2-19 22:56:01 |只看该作者 |倒序浏览

如图CCI绘图输出的是上一周期的值,在十字线所示周期调用CrossOver(CCI[1],CCIAvgL[1])没有返回true

//------------------------------------------------------------------------
// 简称: CrossOver
// 名称: 求是否上穿
// 类别: 用户函数
// 类型: 内建函数
// 输出: 布尔型
//------------------------------------------------------------------------

Params
        NumericSeries Price1(1);
        NumericSeries Price2(1);
Vars
        Bool Con1(False);
        Bool PreCon(False);
        Numeric Counter(0);
Begin
        If(Price1 > Price2)
        {
                Counter = 1;       
                Con1 = Price1[1] == Price2[1];               
                While (Con1 and Counter < CurrentBar)
                {                       
                        Counter = Counter + 1;                         
                        Con1 = Price1[Counter] == Price2[Counter];       
                }
                PreCon = Price1[Counter] < Price2[Counter];
                Return PreCon;
        }Else
        {
                Return False;
        }
End

对于 NumericSeries 类型的数据例如CrossOver(CCI[1],CCIAvgL[1])的实参CCI[1] 代入CrossOver函数体内部语句 "Con1 = Price1[1] == Price2[1];"是否就是CCI[2]了呢?
TB基于C语言的话我觉得数组回溯存在问题或者指针操作有错误
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 6Rank: 6

精华
0
UID
1896
积分
1979
帖子
117
主题
33
阅读权限
70
注册时间
2008-7-16
最后登录
2013-11-16
2#
发表于 2013-4-18 12:43:28 |只看该作者
cross函数好像是有些问题 会随机出现些错误结果
比如这样的结构
if (a==1)
{
sc=crossover(x,0);
bc=crossunder(x,0);
}

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
3#
发表于 2013-4-18 14:29:55 |只看该作者
bluefox 发表于 2013-4-18 12:43
cross函数好像是有些问题 会随机出现些错误结果
比如这样的结构
if (a==1)

crossover 等函数的运算需要序列型数据,如上述的写法放在条件内,取值受限制,会导致计算结果有误的。
要将此函数的赋值语句放到条件外。如:
  1. sc=crossover(x,0);
  2. bc=crossunder(x,0);
  3. if( a == 1)
  4. {
  5.      if(sc == true).....
  6.      if( bc == true) .....
  7. }
复制代码

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
1896
积分
1979
帖子
117
主题
33
阅读权限
70
注册时间
2008-7-16
最后登录
2013-11-16
4#
发表于 2013-4-18 17:11:16 |只看该作者
谢谢小米 原来从if 到最后的 }中都不能用cross啊

使用道具 举报

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

bottom

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

GMT+8, 2024-5-11 13:47

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部