设为首页收藏本站

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

最高最低值返回位置的逻辑错误 [复制链接]

Rank: 1

精华
0
UID
40443
积分
27
帖子
10
主题
7
阅读权限
10
注册时间
2011-5-17
最后登录
2013-8-25
跳转到指定楼层
1#
发表于 2013-7-30 15:50:55 |只看该作者 |倒序浏览
//------------------------------------------------------------------------
// 简称: LowestBar
// 名称: 求最低值出现的Bar
// 类别: 用户函数
// 类型: 内建函数
// 输出: 数值型
//------------------------------------------------------------------------

Params
        NumericSeries Price(0);
        Numeric Length(5);
Vars
        Numeric LowestValue;
        Numeric i;
        Numeric reBar(0);
Begin
        LowestValue = Price;       
        for i=1 to Length - 1
    {
                If(Price[i] < LowestValue)
                {
                        LowestValue = Price[i];
                        reBar = i;
                }
        }
        Return reBar;
End

//------------------------------------------------------------------------
// 编译版本        GS2010.12.08
// 版权所有        TradeBlazer Software 2003-2010
// 更改声明        TradeBlazer Software保留对TradeBlazer平
//                        台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------



以最低值位置为例,系统默认i=1,如果比较两根K线之间的最大值,输入参数为2吧,那么是不可能返回当前K线为最小值的,输入参数为1,逻辑判断直接就不进行了,从代码看,求极值位置是涵盖当前位置算的。
不论如何返回值不可能为零,就是说不能判断当下是否就是极值

Rank: 3Rank: 3

精华
0
UID
66209
积分
128
帖子
78
主题
19
阅读权限
40
注册时间
2011-9-18
最后登录
2020-12-20
2#
发表于 2013-7-31 13:26:00 |只看该作者
没有问题啊。如果当下就是极值,运行了第一句,        LowestValue = Price;       循环退出;  直接返回ReBar的默认值(0)

使用道具 举报

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

bottom

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

GMT+8, 2024-5-19 19:20

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部