设为首页收藏本站

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

写了段代码想统计股指的波动率数据,怎么不行? [复制链接]

Rank: 5Rank: 5

精华
0
UID
15203
积分
1411
帖子
397
主题
35
阅读权限
60
注册时间
2010-8-14
最后登录
2017-12-29
跳转到指定楼层
1#
发表于 2012-10-23 12:27:56 |只看该作者 |倒序浏览
以下代码用于IF888日线,Length1-3是2010-2012年每年的交易日数量,是固定的。
BDrate是每天的波动率,ATR201x是求每年的平均真实波幅,AvgRange201x是求每年的平均波动率,由于后面这两个放在If的大括号里面会有编译警告,所以拿出来放在外面。

现在这个程序在2010年12月31日并没有输出ATR和AvgRange的值,试了半天找不出问题在哪里,请高手给看看怎么回事?
  1. Params
  2.         Numeric Length1(173);
  3.         Numeric Length2(244);
  4.         Numeric Length3(193);
  5. Vars
  6.         NumericSeries ATR2010;
  7.         NumericSeries ATR2011;
  8.         NumericSeries ATR2012;
  9.         NumericSeries AvgRange2010;
  10.         NumericSeries AvgRange2011;
  11.         NumericSeries AvgRange2012;
  12.         NumericSeries BDrate;
  13. Begin
  14.         BDrate = TrueRange()/Close[1];
  15.         ATR2010 = AvgTrueRange(Length1);
  16.         AvgRange2010 = Average(BDrate, Length1);
  17.         ATR2011 = AvgTrueRange(Length2);
  18.         AvgRange2011 = Average(BDrate, Length2);
  19.         ATR2012 = AvgTrueRange(Length3);
  20.         AvgRange2012 = Average(BDrate, Length3);
  21.        
  22.         If(Date == 20101231)
  23.         {
  24.                 PlotString("ATR2010", Text(ATR2010), High);
  25.                 PlotString("BDrange2010", Text(AvgRange2010), Low);
  26.         }
  27.         If(Date == 20111230)
  28.         {
  29.                 PlotString("ATR2011", Text(ATR2011), High);
  30.                 PlotString("BDrange2011", Text(AvgRange2011), Low);
  31.         }
  32.         If(Date == 20121022)
  33.         {
  34.                 PlotString("ATR2012", Text(ATR2012), High);
  35.                 PlotString("BDrange2012", Text(AvgRange2012), Low);
  36.         }
  37. End
复制代码
知行合一
利润来自追杀

Rank: 4

精华
0
UID
112594
积分
333
帖子
281
主题
8
阅读权限
50
注册时间
2012-9-20
最后登录
2013-12-4
2#
发表于 2012-10-23 13:09:27 |只看该作者
我这边显示没问题

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15203
积分
1411
帖子
397
主题
35
阅读权限
60
注册时间
2010-8-14
最后登录
2017-12-29
3#
发表于 2012-10-23 14:57:55 |只看该作者
靠,楼上的回答让我抓狂

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15203
积分
1411
帖子
397
主题
35
阅读权限
60
注册时间
2010-8-14
最后登录
2017-12-29
4#
发表于 2012-10-23 14:58:03 |只看该作者
靠,楼上的回答让我抓狂

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
81930
积分
151
帖子
72
主题
8
阅读权限
40
注册时间
2011-11-24
最后登录
2018-12-5
5#
发表于 2013-5-21 17:30:29 |只看该作者
兄弟 你的代码有些小问题,我给你的代码改造了一下,做成自适应的了,不仅IF888可以自动分年来算每年的波动,其他商品也通用可以按年计算波动情况了,不需要再数每年有多少个交易日了。所以不要传任何参数。
你的BDrate统计的是每天高-低的百分比幅度,我另外加了一个今收-昨收的百分比幅度给自己看,花了20分钟写完简单看了一下计算暂没发现什么问题,你要发现哪儿计算错了我再改改
  1. Params

  2. Vars
  3.         NumericSeries ATR(0);
  4.         Numeric AvgHL(0);
  5.                 Numeric AvgCC(0);
  6.         NumericSeries HLrate(0);
  7.                 NumericSeries CCrate(0);
  8.                 NumericSeries cc(0);
  9. Begin
  10.         HLrate = TrueRange()/Close[1];
  11.                 CCrate = Abs(Close-Close[1])/Close[1];
  12.                
  13.                 cc=cc[1]+1;
  14.                 ATR=AvgTrueRange(cc);
  15.                 AvgHL = Average(HLrate, cc);
  16.                 AvgCC = Average(CCrate, cc);
  17.                
  18.                 Commentary("CountDay:"+Text(cc));
  19.                 Commentary("ATR_Now:"+Text(ATR));
  20.                 Commentary("HLrange_Now:"+Text(AvgHL));
  21.                 Commentary("CCrange_Now:"+Text(AvgCC));
  22.                
  23.                 If(Mod(Date,10000)<Mod(Date[1],10000))
  24.                 {
  25.                  PlotString("ATR_YEAR", Text(ATR), High*1.01);
  26.                  PlotString("HLrange_YEAR", Text(AvgHL), Low*0.99);
  27.                  PlotString("CCrange_YEAR", Text(AvgCC), Low*0.98);
  28.                  cc=0;
  29.                 }

  30.                
  31. End
复制代码

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15203
积分
1411
帖子
397
主题
35
阅读权限
60
注册时间
2010-8-14
最后登录
2017-12-29
6#
发表于 2013-5-22 16:34:25 |只看该作者
xiaoye51888 发表于 2013-5-21 17:30
兄弟 你的代码有些小问题,我给你的代码改造了一下,做成自适应的了,不仅IF888可以自动分年来算每年的波动 ...

谢谢了,兄弟

使用道具 举报

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

bottom

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

GMT+8, 2024-5-12 18:49

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部