急求:帮忙把趋向指标(钱龙版本)DMI—QL,给改写成通达信中能用的公式,在次新股上能显现出正确指标图形

趋向指标(钱龙版本)的是:DMI—QL
N=14
M=6
TR := SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SMA(IF(HD>0 AND HD>LD,HD,0),N,1);
DMM:= SMA(IF(LD>0 AND LD>HD,LD,0),N,1);
PDI: DMP*100/TR;
MDI: DMM*100/TR;
ADX: SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR:(ADX+REF(ADX,M))/2;

通达信软件中自带的趋向指标DMI,显现出的图形与此不一样,
如果把DMI—QL版本的源码直接复制到通达信软件中,会在“上市不久的次新股”上显现出错误的走势,尤其是ADX 和ADXR是高位值,是错误的。
麻烦哪位前辈高人,帮忙把钱龙版本的DMI—QL,给改写成通达信中能用的公式,并且在次新股上,也能显现正确的指标图形。
先拜谢了,好人多福!急求中……
此问题的难点是:以大智慧的数值为准确,通达信上的数值对比有出错。如何更改源码,才能使得通达信里的“次新股”的日/周/月的DMI数值与大智慧里的数值一样?老股票的数值一般都是正确的,只有次新股会出现错误,也不知道为什么?
次新股的“日线”上,比如002614蒙发利,上市9天,在通达信日线上其ADX、ADXR都是高位值,是错误数值,而且MDI数值都不一样,与原码在大智慧上的数值一点都不一样。
尤其是在“次新股”的“周线上//月线上”,比如300238冠昊生物,上市12周,在通达信周线上其ADX、ADXR都是高位值,是错误数值,与原码在大智慧上的数值一点都不一样。

N:=14;
M:=6;
VV:=SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD:=HIGH-REF(HIGH,1);
LD:=REF(LOW,1)-LOW;
DMP:=SMA(IF(HD>0 AND HD>LD,HD,0),N,1);
DMM:=SMA(IF(LD>0 AND LD>HD,LD,0),N,1);
PDI:DMP*100/VV;
MDI:DMM*100/VV;
ADX:SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR:(ADX+REF(ADX,M))/2;

{已测试,复制可直接引用,如果回答满意,请记得给采纳}追问

非常感谢你来回答,我已经很感谢了。但是你根本不明白我这个问题的内容。我认为这是一个非常难解答的问题,得解决,通达信编码的问题。并不是公式能不能测试通过,而是它与大智慧的数值差距非常之大。

追答

1.急求:帮忙把趋向指标(钱龙版本)DMI—QL,给改写成通达信中能用的公式,在次新股上能显现出正确指标图形
--------------------------------------------------------------------------------------------
答:这个公式己在通达信中通过了!完全与钱龙版本一样!

2.如果把DMI—QL版本的源码直接复制到通达信软件中,会在“上市不久的次新股”上显现出错误的走势,尤其是ADX 和ADXR是高位值,是错误的。
--------------------------------------------------------------------------------------------
答:次新股周期达不到该公式的赋值天数。

3.次新股的“日线”上,比如002614蒙发利,上市9天,在通达信日线上其ADX、ADXR都是高位值,是错误数值,
--------------------------------------------------------------------------------------------
答:赋值N:=14天数,002614蒙发利,上市9天,周期少,并处于下跌过程,自然在上面,如果,上涨就下来了啊。

4.而且MDI数值都不一样,与原码在大智慧上的数值一点都不一样。
--------------------------------------------------------------------------------------------
答:这里你修改的是钱龙指标,如何与大智慧一致?复制如下公式就与大智慧一致了!自己对比一下有什么不同?

N:=14;
M:=6;
VV := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SUM(IF(HD>0 AND HD>LD,HD,0),N);
DMM:= SUM(IF(LD>0 AND LD>HD,LD,0),N);
PDI: DMP*100/VV,COLORWHITE;
MDI: DMM*100/VV,COLORYELLOW;
ADX: MA(ABS(MDI-PDI)/(MDI+PDI)*100,M),COLORFF00FF;
ADXR:(ADX+REF(ADX,M))/2,COLOR00FF00

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-22
{N和M自己填在参数里,并赋值,如果不准备修改,你也可以把下边公式中所有N改成14,M改成6}
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SMA(IF(HD>0 AND HD>LD,HD,0),N,1);
DMM:= SMA(IF(LD>0 AND LD>HD,LD,0),N,1);
PDI: DMP*100/SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
MDI: DMM*100/SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
ADX: SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR:(ADX+REF(ADX,M))/2;追问

您这样更改,其实就是把这个源码复制到通达信中一样,“在次新股上”的“周线上”,ADX 和ADXR还是高位错值。没有用的,我要求是如何改编成没有高位错值的公式。比如300238冠昊生物,你看看它的周线

追答

300238周线总共才12根K线,你把N设成14当然有问题了,不过即便是这样,在我这里显示也是正常的,你用的是最新版的通达信吗?

追问

老师,谢谢你给我答复,我已经很感谢,但是你的答案还是错的。首先,通达信,是证券公司的,用来专门做交易买卖的,绝对最新的。其次,大智慧中,其周线的数值就是正确的。我认为各个软件,其编码都不一样,所以我一直,想着怎么更改它。以大智慧为原型 ,大智慧是正确的。

追答

你在大智慧里看到的数值是多少?是不是PDI 14.57 MDI 8.05 ADX 92.39 ADXR 96.20 ?
如果是的话就没什么问题。你去通达信官方网站下载最新版通达信,版本号是V6.15,证券公司给提供的一般都不是最新版本,我不知道你是在哪家证券公司开的户,但是我是在江海证券开户的,他们提供的通达信就不是最新版本。