金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4354|回复: 9

关于ADX指标

[复制链接]

8

主题

13

帖子

13

积分

Rank: 1

等级: 新手上路

注册:
2022-6-26
曾用名:
发表于 2022-7-12 12:24 | 显示全部楼层 |阅读模式
你好老师,金字塔里系统不带ADX指标,我尝试自己编写,但是最终数值出现了问题,请老师帮忙看看,谢谢!
ADX的计算方式
1、计算DM
图1:如何计算方向性运动DM。图片来源:《期货市场计算机分析指南》
计算ADX的第一步是计算价格的方向性运动DM,其为当天的波动区间超出前一日波动区间的最大部分。图1中的左侧,当天价格向上运动,超出前一日波动区间的部分我们称为+DM;而在图1中的右侧,当天价格向下波动,超出前一日波动区间的部分我们称为-DM。
对于外部日,即当天的价格波动在上下两个方向都超出了前一日的波动区间,我们取超出部分的较大者;对于内含日,即当天的价格波动在上下两个方向都没有超出前一日的波动区间,我们认为DM=0。
2、计算真实区间TR
TR=MAX{当日最高价和最低价之差,当日最高价和前一日收盘价之差,当日最低价和前一日收盘价之差}
3、计算方向指标DI
DI=DM/TR
注意,我们区分DM为+DM和-DM,这在数值上表现为可正可负,而TR则只是一个正数,因此,DI也是可正可负的,我们区分为+DI和-DI。
此外,这里是先计算的14周期+DM均值+DM14和14周期-DM均值-DM14,以及14周期TR均值TR14。
此时,+DI14=+DM14/ TR14,-DI14=-DM14/ TR14。
4、计算+DI与-DI的差值
差值=|(+DI14)-(-DI14)|
5、计算+DI与-DI的和值
和值=|(+DI14)+(-DI14)|
6、计算方向性运动指数DX
DX=(差值/和值)*100
然后再计算方向性运动指数DX的14周期平均值,就得到了平均趋向指数ADX。
ADX的计算非常复杂,我们在这里大篇幅的论述是为了让大家更好地理解ADX。目前几乎所有交易软件都自带ADX指标,并不需要我们单独计算。
从ADX的计算方式可知,其数值一定为正数,且一定位于0~100之间。

最终输出ADX有大于100的值和负值,请老师看看是哪里出了问题,代码如下:
INPUT:m(14,7,60,1),n(14,7,60,1);

UP:high-ref(high,1);  //今天最高-昨日最高
DOWN:ref(low,1)-low;  //昨日最低-今日最低

TR1:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:MA(TR1,m);      //14日ATR线

ZDM:MA(UP,n);      // +DM
FDM:MA( DOWN,n);    // -DM

ZDI:(ZDM/ATR)*100;        // +DI   
FDI:(FDM/ATR)*100;        // -DI  

CZ1:ZDI+ABS(FDI);   // +DI与-DI差值
CZ2:ZDI-FDI;        // +DI与-DI和值


DX:(CZ1/CZ2)*100;
ADX:ma(DX,n);





回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-7-12 13:12 | 显示全部楼层
[PEL] 复制代码
INPUT:P(14,2,100,1),M(6,1,100,1);
TR1 := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),P);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SUM(IF(HD>0 AND HD>LD,HD,0),P);
DMM:= SUM(IF(LD>0 AND LD>HD,LD,0),P);
PDI: DMP*100/TR1,NODRAW;
MDI: DMM*100/TR1,NODRAW;
ADX: MA(ABS(MDI-PDI)/(MDI+PDI)*100,M),NODRAW;
ADXR:(ADX+REF(ADX,M))/2,NODRAW;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

8

主题

13

帖子

13

积分

Rank: 1

等级: 新手上路

注册:
2022-6-26
曾用名:
 楼主| 发表于 2022-7-12 13:26 | 显示全部楼层
技术009 发表于 2022-7-12 13:12
[mw_shl_code=pel,true]INPUT:P(14,2,100,1),M(6,1,100,1);
TR1 := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CL ...

谢谢老师,有一点没理解,就是要做一个14日的平均为什么不用MA而是用SUM呢
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-7-12 14:12 | 显示全部楼层
没啥区别啊。后面都算比值,都抵消了。这里不算ma还能减少点计算误差。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

16

帖子

16

积分

Rank: 1

等级: 新手上路

注册:
2022-2-2
曾用名:
发表于 2023-8-30 15:01 | 显示全部楼层
为什么软件显示不出来
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-8-30 15:03 | 显示全部楼层
数据量不足吧。就是个简单指标,没有其他运行要求。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

16

帖子

16

积分

Rank: 1

等级: 新手上路

注册:
2022-2-2
曾用名:
发表于 2023-8-30 15:06 | 显示全部楼层
好奇怪,老师的软件里能显示?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-8-30 15:26 | 显示全部楼层


本地正常。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

12

主题

61

帖子

61

积分

等级: 免费版

注册:
2025-1-13
曾用名:
发表于 2025-3-15 17:55 | 显示全部楼层
技术009 发表于 2022-7-12 13:12
[mw_shl_code=pel,true]INPUT:P(14,2,100,1),M(6,1,100,1);
TR1 := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CL ...

您好,第9行,ADX: MA(ABS(MDI-PDI)/(MDI+PDI)*100,M),NODRAW;其中ABS(MDI-PDI)是不是应当改为ABS(PDI-MDI),因为PlusDI应当比MinusDI更大一些吧?也就是正向动向指数(+DI)和负向动向指数(-DI)。

补充内容 (2025-3-15 18:11):
虽然使用了绝对值ABS计算分子,可能计算结果一样;但是这行代码会不会在特殊情况下导致错误呢?
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-3-17 09:20 | 显示全部楼层
这个逻辑上修改需要用户自己去考量的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-15 00:42 , Processed in 0.119817 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表