『最佳拍檔』智能決策系統

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2144|回复: 3

請教Matthew 大師

[复制链接]
发表于 2009-9-1 19:39:01 | 显示全部楼层 |阅读模式
How to make DMI (Directional Movement Index) explorer in MetaStock? Thanks!
发表于 2009-9-3 00:49:32 | 显示全部楼层

其實你可能問得太過籠統喇 ~

可知 DMI 的組成, 可以有很多的變化,  而那一個才是你想要的結果呢 ?

你先睇睇 DMI 的資料 (資料來自網上):

趨向指標DMI則是把每日的高低波動的幅度因素計算在內,來分析預測未來的走勢。



    應用如下(可同步運用在選擇權操作上):



1.          當+DI曲線在-DI曲線上時,表示上升動能強於下降動能,所以+DI向上穿過-DI時,為買入信號。若ADX曲線伴隨上升,則股價的漲勢更強。 (可伴隨買入買權buy call。)



2.          當-DI曲線在+DI曲線上時,表示下升動能強於上降動能,所以-DI向上穿過+DI時,為賣出信號。若ADX曲線伴隨上升,則股價會出現較急跌勢。(可伴隨買入賣權buy put。)



3.          ADX曲線的功用是輔助判斷漲勢和跌勢的強弱是否延續的反轉信號。ADX在50以上的區間及20以下的區間有重要技術含義(實際運用須視商品特性而訂),而其轉折點也是非常重要的買賣信號。



4.          當ADX曲線位於+DI曲線和-DI曲線的下方,特別在20以下時,代表股價處於整理期,應退出觀望(可伴隨賣出買權sell call或賣出賣權sell put或同步賣出,形成莊家策略。);而 ADX曲線從20以下向上爬升時,不論當時股價是否漲跌,都可認定,將產生一段有相當幅度的行情。



5.          ADX曲線向上運行,代表目前的趨勢正在加強。此時若+DI曲線在其上,代表當前趨勢為上升行情;反之,如果-DI曲線在其上,代表當前趨勢為下跌行情。ADX曲線一旦高於50以上,由上升轉為下降,意味著之前的行情開始轉變。 (時間價值開始耗損,可將選擇權之買方進行獲利了結。)



6.          當ADX曲線在低檔愈久,也代表一種預告信號,一旦向上揚升,對期貨交易者而言,此時即將可能產生波段行情,主要可用在投入資金的比例(加減碼)。


 


DMI.gif



 


算法簡介如下:


先算出DM值:包括+DM{正趨向變動值} 及 -DM{負趨向變動值}
 
須計算「+DM」、「-DM」、「真實+DM」、「真實-DM」、「+DM(14)」、「–DM(14)」


1.     把當日最高價減去前一日最高價 = +DM。


2.     前一日最低價減去當日最低價 = -DM。


3.     若+DM>-DM成立,且+DM大於0,則「真實+DM」= +DM,若+DM小於等於0,則「真實+DM」= 0。


4.     同理,若+DM<-DM且-DM大於0,則「真實-DM」= -DM,若-DM小於等於0,則「真實-DM」= 0。


5.     接下來計算 +DM(14)與 –DM(14)之值。


起始值:可先用前14天之「真實+DM」的平均數做為第一天之+DM(14),用前14天之「真實-DM」的平均數做為第一天之-DM(14),而後計算如下:


當日+DM(14)=前一日+DM(14)*(13/14) + 當日真實+DM*(1/14)


當日-DM(14)=前一日 -DM14*(13/14) + 當日真實 -DM*(1/14)


 


 


DMI2.gif


 


DMI1.gif
再算出TR值 (當日價格與前一日價格相比之最大波動值)


TR(True Range)為波動實值,其算法為取以下三值中的最大一值,如下:


1、為當日最高價減去當日最低價。


2、∣Ht-C(t-1)∣ 為當日最高價減去前一日收盤價的絕對值。


3、∣C(t-1)-Lt∣為前一日收盤價減去當日最低價絕對值。


公式TR=MAX(Ht-Lt,∣Ht-C(t-1)∣,∣C(t-1)-Lt∣)


可簡化為 TR=MAX(H,L,前日收)-MIN(H,L,前日收)


再計算 TR(14):起始值計算比照DM(14)之計算方式,取前14根做平均數。


當日TR(14)=前一日TR14*(13/14) + 今日TR*(1/14)  


以上為合併DM值與TR值之呈現:


 


然後算出DI值



+DI(14)=+DM(14)/ TR(14) * 100


-DI(14)=-DM(14)/ TR(14) * 100


如果+DI(14)為36,代表上攻力道中有36﹪的價格變動是真實有效的,如果-DI(14)為20,代表下殺力道中有20價格變動是真實有效跌破的。而真實有效的值才可列入ADX的計算。


    例:以下列五個圖形來論,不論圖形之1、3、4之TR值都是相同的,因為前一根收盤被這一根的高低點包住,所以若+DM相同,其對+DI的貢獻度是一樣的;較不同的應是1與2的比較,一般來說圖形2是從空頭直接拉上來的,感覺好像是比較強,可是在+DI的解釋反而是較小的(因為分母TR大、分子+DM一樣),代表圖2之後較易盤整;而下列對DI貢獻最大的為圖5,表示開高走高在多頭的意義也是最大的,也就是創新高的能力會直接反應在此指標上。


最後算出DX及ADX


ADX(趨向平均線)是用來判別14日內價格變動趨勢的明顯度,計算如下:


1、先取DX值:DX=∣(+DI 14)- (-DI14)∣/ ((+DI14)+ (-DI14))。


再取ADX值:起始值計算比照DM(14)之計算方式,取前14根做平均數。


當日ADX(14)=前一日ADX*(13/14) + 今日DX*(1/14)


2、ADX向上,表示價格變動的趨勢力量愈大,亦愈有可能產生連續行情,反之若向下,通常伴隨著是橫向整理。


ADX愈大、代表目前市場上潛藏的動能愈強,任何方向皆可能有波段產生。


 

发表于 2009-9-3 00:52:09 | 显示全部楼层

而於 MetaStock Explorer 內可以用於參考的程式有這一條:

PS Dynamic Momentum Index 1 (Signal)



ColA:


{Longs}
a:=Cross(30,DMI(C));
b:=Cross(Mov(C,5,S),C) OR (BarsSince(Cross(30,DMI(C)))=3 AND ROC(C,3,%)<0);


state:=If(BarsSince(a)<BarsSince(b),1,0);
state=1 AND Ref(state,-1)=0


 


ColB:
{Shorts}
a:=Cross(DMI(C),70);
b:=Cross(C,Mov(C,5,S)) OR (BarsSince(Cross(DMI(C),70))=3 AND ROC(C,3,%)>0);


state:=If(BarsSince(a)<BarsSince(b),1,0);
state=1 AND Ref(state,-1)=0


 


 


Filter:  colA OR colB


 


 


PS DMI.gif

 楼主| 发表于 2009-9-3 11:16:28 | 显示全部楼层

回复 3# 的帖子

谢谢 admin 的回复。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|『最佳拍檔』智能決策系統

GMT+8, 2024-9-27 22:46 , Processed in 0.061242 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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