VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime

DMI 動向指標:+DI、−DI 與兩線交叉

DMI 動向指標畫出 +DI 與 −DI 兩條線,分別顯示近期價格的推進有多少是往上、有多少是往下。交易者看的是哪一條線在上面,以及兩條線在哪裡交叉。這頁專講這兩條線和它們的交叉:怎麼算出來、為什麼交叉只是主導權換手而不是趨勢成立的證明,以及策略產生器怎麼在你自己的商品上驗證交叉規則。趨勢強度本身,請看 ADX 那一頁。

類別趨勢類
輸出+DI 與 −DI 兩條趨向線多畫在獨立副圖,常與 ADX 放在一起
在 AlphaPrime策略產生器內建族主導方向濾網、交叉進場與單線轉折出場

它在量什麼

動向指標(Directional Movement Index,簡稱 DMI)是一組比較價格向上延伸與向下延伸的兩條線。正向趨向線 +DI 在 K 棒不斷突破前一根高點時上升;負向趨向線 −DI 在 K 棒不斷跌破前一根低點時上升。J. Welles Wilder 在七〇年代後期出版的著作《New Concepts in Technical Trading Systems》中提出了趨向變動的概念,同一本書也把 拋物線指標 SAR 和平均真實區間帶給了交易者。ADX 是之後再由這兩條線推導出來的,所以三條線常被畫在一起。

用文字說明計算方式,它是一根 K 棒一根 K 棒往下算。先量當根高點比前一根高點多漲了多少,再量當根低點比前一根低點多跌了多少。兩者之中只保留較大的那一邊,而且必須是正值;另一邊在這根 K 棒記為零。內包 K 棒既沒有越過前高、也沒有跌破前低,對兩邊都不加分。接著把向上與向下的延伸量,用 Wilder 自己那種緩慢遞延的平均方式在回顧期間內平滑,再各自除以同一段期間平滑後的真實區間。把兩邊都換算成真實區間的比例,才讓這兩條線能在價位與跳動點值差異很大的商品之間互相比較。

因為兩條線用同一個真實區間做基準,它們描述的是比例,而不是價格。+DI 在 −DI 之上,代表近期 K 棒往上延伸得比往下多;兩條線交換位置,就代表主導權換手。兩線之間的距離反映近期走勢有多一面倒,距離縮小則代表領先的一方開始失去掌控。這兩條線沒有告訴你的,是這個主導權能維持多久,而那正是 ADX 被設計來回答的問題。

概念示意圖(非真實行情)

常見市場行為

DMI 最常見的誤用,是把 +DI/−DI 交叉當成趨勢已經確認。交叉只說明在回顧期間內,一方的延伸量剛好超過另一方。它可能來自單一根長 K 棒、來自開盤跳空,或只是領先的一方退潮、另一方幾乎沒動。許多交叉發生時兩條線都在低檔、彼此貼近,這種狀態下其實沒有哪一方真的在推。把這種交叉當成趨勢起點、還照趨勢單的規模下單,往往正好在趨向力道最弱的時候建立部位。比較好的讀法,是把交叉當成仍需佐證的主導權換手:接下來幾根 K 棒兩線是否拉開、ADX 是否上升、價格是否突破關鍵價位。

趨向力道偏弱時,兩條線會互相纏繞。在平靜的區間裡,多數 K 棒與相鄰 K 棒重疊,兩邊的延伸量都很小,平滑後的兩條線逐漸靠攏,每一個小波動都能讓其中一條稍微超前。結果就是一連串方向交替的交叉,每一次都推翻上一次,跟著每次翻轉進出的交叉系統,每一趟都吐回一點。Wilder 本人在訊號上就搭配了停損:買進訊號以訊號 K 棒的低點作為初始停損,賣出訊號則以該 K 棒的高點作為初始停損。只要這個價位守住,即使兩線又交叉回去,訊號仍然有效;決定出場的是停損,而不是每一次反向交叉。要求兩線之間保持最小距離、交叉後再延續幾根 K 棒,或加上獨立的市場狀態判斷,是減少這類來回翻轉的常見做法。

回顧期間的選擇,是在交叉出現得多早與交叉出現得多頻繁之間取捨。期間較短,兩條線對近期延伸反應快,交叉來得早,但在震盪盤中翻轉得更頻繁。期間較長,線條較平滑,在趨勢中能維持較久的分離、減少來回洗盤,代價是交叉往往在轉折之後很久才出現。由於同一個設定同時驅動兩條線,它也會改變兩線平常相隔多遠,因此任何距離門檻都要和回顧期間一起決定,不能分開設。K 棒週期同樣有影響:在日內圖上,一次開盤跳空就可能主導平滑結果;在日線上,兩條線則移動得較慢。在你實際交易的商品與時間週期上比較幾種回顧期間,比直接套用教科書的預設值更有參考價值。

常見用法(概念示例)

主導方向濾網

只順著領先的那條線交易

不直接對交叉本身動作,而是看狀態:+DI 在 −DI 之上時才允許做多規則,−DI 領先時才允許做空規則。這樣 DMI 就成為另一個進場訊號的方向濾網,例如 唐奇安通道 的突破,而不必對每一次翻轉都做出反應。

交叉加確認

交叉之後還要有延續

把交叉當成候選,而不是訊號。進場要等新的領先線再多上升一兩根 K 棒,或等價格越過交叉那根 K 棒的極值。交叉後立刻反轉的情況就不會變成交易,前面提到的來回洗盤因此可以去掉一大部分。

領先線轉弱

領先線轉下時出場

持有多單時,不必等到完整交叉,直接盯著 +DI。當領先線轉為下降、−DI 開始上升,代表向上的推力正在流失,可以把停損收緊。停損距離以 ATR 換算,能讓它和當下的波動幅度相稱。

和其他指標族搭配

最自然的搭檔是 ADX,因為它就是由這兩條線算出來的。DMI 說明哪一方領先,ADX 說明這個領先是否持續。ADX 從低檔上升時出現的交叉,和 ADX 低檔走平時出現的交叉,是兩種不同的事件;把兩者分開,是處理前面所說交叉問題最簡單的方法。

再加一個較慢的方向參考也有幫助。用 均線 的斜率決定只做哪一邊,DMI 只用來在那個方向上抓進場時機,逆著斜率的交叉一律略過。Aroon 指標 則從另一個角度提供檢查:它看的是高點與低點出現得多近,而不是 K 棒延伸了多遠。

避免把 DMI 和測量幾乎同一件事的工具疊在一起。Vortex 指標 同樣比較相鄰 K 棒之間的向上與向下推力,它的交叉常常和 DMI 的交叉同時出現,提供的新資訊很少。把 DMI 和波動度指標或價位突破搭配,規則才會得到一個獨立的第二意見,而不是回音。

在 AlphaPrime 裡

在 AlphaPrime 裡,DMI 是策略產生器內建的條件群組,名稱為「動向指標 DMI」。可調整的輸入是指標週期,也就是同時驅動 +DI 與 −DI 的回顧期間。代表性的條件包括描述主導權的「+DI 高於 −DI」、「+DI 低於 −DI」,描述交叉的「+DI 向上穿越 −DI」、「+DI 向下穿越 −DI」,以及單看其中一條線斜率的「+DI 上升」、「−DI 下降」、「+DI 轉為上升」。

這些條件讓策略產生器去驗證本頁提出的問題,而不是先假設答案。它可以把交叉當進場、把主導狀態當作另一個進場訊號的濾網,或把領先線轉折當出場,並把每一種用法和其他族的規則組合。GPU 平行回測所有候選組合;你可以設定樣本外檢驗門檻,篩出在沒看過的資料上依然站得住的組合,而不是只在某一段趨勢行情裡有效的組合,那正是交叉規則最容易看起來比實際更好的時候。

通過驗證的組合可以匯出成交易平台的策略程式碼,DMI 條件會和其他進出場規則一起完整寫出,你可以閱讀邏輯、模擬執行,再決定要不要實際交易。

常見問題

DMI 和 ADX 有什麼不同?

DMI 是 +DI 與 −DI 這一組趨向線,告訴你哪一方延伸得比較多。ADX 則由兩條線之間的差距相對於兩者總和的比例推導、再經過一次平滑,衡量的是這個領先有多持續,不管方向。許多交易者用 DMI 看方向、用 ADX 看強度。

+DI 向上穿越 −DI,是不是代表上升趨勢開始了?

單憑交叉還不能這樣說。它只表示在回顧期間內,向上延伸剛剛超過向下延伸。在區間盤裡,這種情況會一再發生,後面卻沒有趨勢跟上。等兩條線拉開、等 ADX 上升,或等價格越過交叉那根 K 棒的高點,才讓這個交叉有足夠的背景再採取行動。

用 DMI 做的策略能在交易平台上執行嗎?

可以。用 DMI 條件組成的組合通過樣本外驗證後,會匯出成交易平台的策略程式碼,你可以在平台上檢視條件、模擬執行,再決定是否上線。