设为首页收藏本站

 找回密码
 注册
楼主: tradeblazer
打印 上一主题 下一主题

用TB实现DMI指标! [复制链接]

Rank: 5Rank: 5

精华
0
UID
1057
积分
824
帖子
158
主题
8
阅读权限
60
注册时间
2008-1-11
最后登录
2021-10-24
1#
发表于 2008-2-14 22:51:53 |显示全部楼层
学习,支持版主把一些常用指标用TB实现啊。

好像,ADX、ADXR的计算有问题:你用的参数仍然是Numeric Length(14);应该是不同,楼主查查看。问题应该出在DirMovement函数上,不知我的理解对否?

[ 本帖最后由 stevenx8 于 2008-2-14 23:17 编辑 ]

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
1057
积分
824
帖子
158
主题
8
阅读权限
60
注册时间
2008-1-11
最后登录
2021-10-24
2#
发表于 2008-2-15 15:50:52 |显示全部楼层
原帖由 nopain 于 2008-2-15 09:28 发表
默认是相同的,您想设置成不同,增加一个参数就可以了

请教:是不是这样修改

Params
        Numeric Length(14);
        Numeric Length2(6);
Vars
        NumericSeries oDMIPlus( 0 );
        NumericSeries oDMIMinus( 0 );
        Numeric oDMI( 0 );
        Numeric oADX( 0 );
        Numeric oADXR( 0 );
        Numeric oVolty( 0 );
        NumericSeries nTrend(0);
Begin
        DirMovement(Length, Length2, oDMIPlus, oDMIMinus, oDMI, oADX, oADXR, oVolty ) ;
        PlotNumeric( "DMI+" ,oDMIPlus);
        PlotNumeric( "DMI-" ,oDMIMinus);
        PlotNumeric( "ADX" ,oADX);
        PlotNumeric( "ADXR" ,oADXR);
End

DirMovement函数
Params
        Numeric Length(14);
                Numeric Length2(6);
        NumericRef oDMIPlus;
        NumericRef oDMIMinus;
        NumericRef oDMI;
        NumericRef oADX;
        NumericRef oADXR;
        NumericRef oVolty;
Vars
        NumericSeries sDMI;
        NumericSeries sADX;
        NumericSeries sVolty;
        Numeric PlusDM;
        Numeric MinusDM;
        Numeric UpperMove;
        Numeric LowerMove;
        Numeric SumPlusDM(0);
        Numeric SumMinusDM(0);
        Numeric SumTR(0);
        NumericSeries AvgPlusDM;
        NumericSeries AvgMinusDM;
        Numeric SF;                        // smoothing factor
        Numeric SF2;                       // smoothing factor2
        Numeric Divisor;
        Numeric i;
        NumericSeries TRValue;
Begin
        SF = 1/length;
        SF2 = 1/length2;
(这部分相同省略)

        if(CurrentBar > 0)
        {
                if (CurrentBar <= Length)
                {
                        sADX = Cum( sDMI ) / CurrentBar ;
                        oADXR = ( sADX + sADX[ CurrentBar - 1 ] ) * 0.5 ;
                }else  
                {
                        sADX = sADX[1] + SF2 * ( sDMI - sADX[1] ) ;
                        oADXR = ( sADX + sADX[ Length2 - 1 ] ) * 0.5 ;
                }
        }
        oVolty = sVolty;
        oDMI = sDMI;
        oADX = sADX;
        Return True;
End

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
1057
积分
824
帖子
158
主题
8
阅读权限
60
注册时间
2008-1-11
最后登录
2021-10-24
3#
发表于 2008-2-15 16:35:51 |显示全部楼层
原帖由 nopain 于 2008-2-15 16:16 发表
应该就是这样



谢谢你的及时回复!

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
1057
积分
824
帖子
158
主题
8
阅读权限
60
注册时间
2008-1-11
最后登录
2021-10-24
4#
发表于 2008-2-15 16:55:06 |显示全部楼层
原帖由 小米 于 2008-2-15 16:49 发表
stevenx8  
      现在对自己信心大增了吧



慢慢有那么点,呵呵!以后多请教你们。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-20 07:04

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部