设为首页收藏本站

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

请教Xaverage的用法 [复制链接]

Rank: 3Rank: 3

精华
0
UID
21908
积分
246
帖子
34
主题
17
阅读权限
40
注册时间
2010-12-20
最后登录
2013-4-9
跳转到指定楼层
1#
发表于 2011-1-27 09:08:32 |只看该作者 |倒序浏览
用Xaverage(close,a)时候,如果每根bar的a在变,那是不是每根bar都会从第一根bar开始重新计算xaverage呢?

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
2#
发表于 2011-1-27 09:17:14 |只看该作者
历史的变量A是不会改变的,每个图表上,只有最后一个bar在变动,最后的变量a在变动

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
21908
积分
246
帖子
34
主题
17
阅读权限
40
注册时间
2010-12-20
最后登录
2013-4-9
3#
发表于 2011-1-27 09:45:11 |只看该作者
本帖最后由 mauricem 于 2011-1-27 09:49 编辑

额,我没有表述清楚,比如a是个公式,即使在历史上的每根BAR也在变,那么是不是在每根BAR都会从头开始计算Xaverage?或者就算是最后一根BAR在变动,那么用Xaverage(close,a)这个函数,它是会从第一根BAR开始重新计算吗?Params
        NumericSeries Price(10);
        Numeric Length(10);
Vars
        Numeric sFcactor;
        NumericSeries XAvgValue;
Begin
        sFcactor = 2 / ( Length + 1 );
        if (CurrentBar == 0 || XAvgValue[1] == InvalidNumeric)
        {
                XAvgValue = Price;
        }else
        {
                XAvgValue = XAvgValue[1] + sFcactor * ( Price - XAvgValue[1] ) ;
        }       
            Return XAvgValue;
End

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
4#
发表于 2011-1-27 09:47:43 |只看该作者
历史上的bar数据是不会改变的
公式是每次打开图表,或者每次插入图表时,会从图表上历史第一根k线开始执行
历史bar公式只会执行一遍,在最后一根bar上,每来一个tick都会执行一遍的

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
21908
积分
246
帖子
34
主题
17
阅读权限
40
注册时间
2010-12-20
最后登录
2013-4-9
5#
发表于 2011-1-27 09:53:45 |只看该作者
假如a就是close,每根BARclose不一样,Xaverage是在每根bar都重新(从CurrentBar == 0开始)计算一个值还是利用上一根BAR的XAvgValue[1],来计算这个XAvgValue

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
6#
发表于 2011-1-27 10:04:49 |只看该作者
XAvgValue = XAvgValue[1] + sFcactor * ( Price - XAvgValue[1] ) ;
利用上一个bar的XAvgValue来计算的
用户只需要懂得如何使用即可

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
21908
积分
246
帖子
34
主题
17
阅读权限
40
注册时间
2010-12-20
最后登录
2013-4-9
7#
发表于 2011-1-27 10:13:14 |只看该作者
再比如历史总共只有三根bar,程序只有一句话Xaverage(close,close);
那么这个程序的运行结果应该是下面两种的哪种:
1  第一根bar上Xaverage1=close1(第一根bar的close)
   第二根bar上Xaverage2=(1-s)*Xaverage1+s*Xaverage1 , s=2/(1+close2)
   第三根bar上Xaverage3=(1-s)*Xaverage2+s*Xaverage2,s=2/(1+close3);
              其中Xaverage2=(1-s)*Xaverage1+s*Xaverage1 ,s=2/(1+close3); Xaverage1 =close1;
2  第一根bar上Xaverage1=close1(第一根bar的close)
   第二根bar上Xaverage2=(1-s)*Xaverage1+s*Xaverage1 , s=2/(1+close2)
   第三根bar上Xaverage3=(1-s)*Xaverage2+s*Xaverage2,s=2/(1+close3);
              其中Xaverage2=(1-s)*Xaverage1+s*Xaverage1 ,s=2/(1+close2); Xaverage1 =close1;

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
8#
发表于 2011-1-27 11:18:51 |只看该作者
Xaverage第二个参数是计算的周期数

使用道具 举报

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

bottom

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

GMT+8, 2024-5-18 10:07

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部