设为首页收藏本站

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

大家帮我看下这段代码为什么结果不对,谢谢了 [复制链接]

Rank: 1

精华
0
UID
75568
积分
42
帖子
2
主题
1
阅读权限
10
注册时间
2011-10-30
最后登录
2017-8-24
跳转到指定楼层
1#
发表于 2011-11-29 22:55:17 |只看该作者 |倒序浏览
发个问题,大家给指点一下,我想在分钟线图上求出日线ATR,就是那个每日最高减最低的平均值,代码在下面,结果数值不对,高手给指点下,谢了
另外,我知道论坛里有高手写出跨周期的例子了,我只是想弄明白我这个哪里错了,为什么错了,自己以后写程序也好避免,谢谢各位了
Params
        Numeric lenth(10);
Vars
            NumericSeries aatr;//日均ATR

        Numeric i;

Begin
    if(date!=date[1])
      {
        aatr=0;
        for i= 1 to lenth
        {
        aatr=aatr+HighD(i)-LowD(i);          
        }
        aatr=aatr/lenth;
      }Else
      {
            aatr=aatr[1];
        }

End

Rank: 2

精华
0
UID
80129
积分
100
帖子
15
主题
1
阅读权限
30
注册时间
2011-11-17
最后登录
2012-1-18
2#
发表于 2011-11-30 09:14:33 |只看该作者
回复 1# lhxpanda


    逻辑问题
如果当前周期 是 当日的第一个bar,执行if语句,执行到for循环的时候  里面的Highd(i)和Lowd(i)都是前一日的数据了就

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
9167
积分
182
帖子
46
主题
1
阅读权限
40
注册时间
2010-4-25
最后登录
2019-3-24
3#
发表于 2012-2-18 11:32:30 |只看该作者
Numeric HighD(Numeric daysAgo) daysAgo 最近N天,0为当天,1为昨天,依次类推。
for循环时 i=1时 已经是昨天的数据了。
投资是一种生活方式

使用道具 举报

Rank: 4

精华
0
UID
87653
积分
330
帖子
59
主题
15
阅读权限
50
注册时间
2011-12-20
最后登录
2021-8-18
4#
发表于 2012-2-18 19:19:11 |只看该作者
if(date!=date[1])里面的HIGHD与LOWD算出的值会不准确~要确保个BAR都运行HIGHD与LOWD才不容易出错

使用道具 举报

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

bottom

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

GMT+8, 2024-5-23 22:23

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部