设为首页收藏本站

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

问过公式问题 [复制链接]

Rank: 5Rank: 5

精华
0
UID
9631
积分
900
帖子
11
主题
5
阅读权限
60
注册时间
2010-5-4
最后登录
2010-11-10
跳转到指定楼层
1#
发表于 2010-8-20 14:11:14 |只看该作者 |倒序浏览
本帖最后由 cug02204105 于 2010-8-20 14:13 编辑

正在学习TB编程。在网页上看到如下公式:
公式含义为:假定我们需要编写一个用户函数,该函数需要求出序列变量Price在最近Length周期内的最大值,并且要求出最大值出现的Bar和当前Bar的偏移值。

Params
    NumericSeries Price(1);
    Numeric Length(10);
    NumericRef HighestBar(0);
Vars
    Numeric MyVal;
    Numeric MyBar;
    Numeric i;
Begin
    MyVal = Price;
    MyBar = 0;
    For i = 1 to Length - 1
    {
            If ( Price > MyVal)
            {
                    MyVal = Price;
                    MyBar = i;
            }
    }
    HighestBar = MyBar;
    Return MyVal;
End

问题:begin下
MyVal = Price 此时 MyVal 的值为1。(因为MyVal的默认值为1且不能确定MyVal的值是当前的bar的Price的值。)
所以在循环的时候当前Bar的值没有参与比较吧。那如果是当前BAR出现最大值的话。公式不是有问题吗?
是不是MyVal=Price 修改为MyVal=Price[0]?

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20906
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
2#
发表于 2010-8-23 08:59:58 |只看该作者
这个公式的for循环部分有问题吧?这公式是在哪里看到的呢?
  1.     For i = 1 to Length - 1
  2.     {
  3.             If ( Price[i] > MyVal)
  4.             {
  5.                     MyVal = Price;
  6.                     MyBar = i;
  7.             }
  8.     }
复制代码

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
9631
积分
900
帖子
11
主题
5
阅读权限
60
注册时间
2010-5-4
最后登录
2010-11-10
3#
发表于 2010-8-23 09:32:12 |只看该作者
For循环我贴出来的是错的。但是好像FOR循环里面当前BAR的值没有参与比较啊?在当前bar值最大的情况下。这个代码给出来的不就是错误的最大值吗?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20906
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
4#
发表于 2010-8-23 10:37:03 |只看该作者
这个公式是求一定周期内的历史最高价到当前bar的k线数

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
9631
积分
900
帖子
11
主题
5
阅读权限
60
注册时间
2010-5-4
最后登录
2010-11-10
5#
发表于 2010-8-24 10:35:43 |只看该作者
想过来吧。谢谢管理员

使用道具 举报

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

bottom

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

GMT+8, 2024-5-23 06:57

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部