1045 字
5 分鐘
HaP MACD 指標詳解:更快回應的動量與趨勢識別工具
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/// © agahakanaga
//@version=6indicator("HaP MACD", shorttitle="HaP MACD", timeframe = "", timeframe_gaps = true)
// --- 輸入參數 ---float sourceInput = input.source(close, "數據源")int fastLenInput = input.int(12, "快線週期", 1)int slowLenInput = input.int(26, "慢線週期", 1)int sigLenInput = input.int(9, "信號線週期", 1)string oscTypeInput = input.string("EMA", "振盪器MA類型", ["EMA", "SMA"])string sigTypeInput = input.string("EMA", "信號線MA類型", ["EMA", "SMA"])
// --- 函數定義 ---f_dema(source, length) => ema1 = ta.ema(source, length) ema2 = ta.ema(ema1, length) 2 * ema1 - ema2
ma(float source, int length, simple string maType) => switch maType "EMA" => ta.ema(source, length) "SMA" => ta.sma(source, length)
// --- 1. 標準MACD計算 ---float maFast = ma(sourceInput, fastLenInput, oscTypeInput)float maSlow = ma(sourceInput, slowLenInput, oscTypeInput)float macd = maFast - maSlowfloat signal = ma(macd, sigLenInput, sigTypeInput)float hist = macd - signal
// --- 2. DEMA MACD計算 (用於信號點) ---fast_dema = f_dema(sourceInput, fastLenInput)slow_dema = f_dema(sourceInput, slowLenInput)dema_macd_line = fast_dema - slow_demadema_signal_line = f_dema(dema_macd_line, sigLenInput)
// --- 條件和交叉判斷 ---dema_ustunde = dema_macd_line > dema_signal_linedema_signal_egim_pozitif = dema_signal_line > dema_signal_line[1]buy_condition = dema_ustunde and dema_signal_egim_pozitifis_first_signal = buy_condition and not buy_condition[1]
// 出場點邏輯// 如果前一根K線有信號點而當前沒有,則顯示紅色點orange_dot_condition = buy_condition[1] and not buy_condition
bull_cross = ta.crossover(macd, signal)bear_cross = ta.crossunder(macd, signal)
// --- 顏色邏輯 (信號點用) ---color dot_color = if is_first_signal color.blueelse if buy_condition macd > macd[1] ? color.green : color.orangeelse na
// --- 繪圖 ---hline(0, "零軸", color=color.new(color.gray, 50))
hColor = hist >= 0 ? hist > hist[1] ? #26a69a : #b2dfdb : hist > hist[1] ? #ffcdd2 : #ff5252plot(hist, "柱狀圖", hColor, style = plot.style_columns, display = display.none)
plot(macd, "MACD線", color=color.black, linewidth=1)plot(signal, "信號線", color=#ff6d00, linewidth=1)
// 1. DEMA信號點 (藍色, 綠色, 橙色)plotshape(buy_condition ? macd : na, title="HaP信號點", style=shape.circle, location=location.absolute, color=dot_color, size=size.tiny)
// 出場點plotshape(orange_dot_condition ? macd : na, title="HaP出場點", style=shape.circle, location=location.absolute, color=color.red, size=size.tiny)
// 3. 交叉信號// 金叉 (買入)plotshape(bull_cross ? macd : na, title="MACD金叉", style=shape.triangleup, location=location.absolute, color=color.lime, size=size.small, display = display.none)
// 死叉 (賣出)plotshape(bear_cross ? macd : na, title="MACD死叉", style=shape.triangledown, location=location.absolute, color=color.red, size=size.small, display = display.none)概述
HaP MACD 是經典 MACD 指標的升級版本,專為追求 更快回應速度 和 更清晰趨勢可視化 的交易者設計。
該指標將 DEMA(雙指數移動平均線) 的計算邏輯融入傳統 MACD 框架,在有效過濾市場噪音的同時,通過獨特的 彩色點陣系統 直觀展示動量變化,使趨勢強弱一目了然。
工作原理
HaP MACD 同時計算兩種不同結構的 MACD:
- 標準 MACD:用於主線,負責刻畫整體趨勢方向
- 基於 DEMA 的 MACD:用於信號生成,提高靈敏度並降低滯後
這種“雙重結構”設計,能夠在保持趨勢判斷穩定性的同時,在 動量開始減弱的第一時間發出提示,避免錯過關鍵轉折。
視覺指南與顏色邏輯
信號點會 直接繪製在 MACD 主線上,為交易決策提供直觀指引:
-
🔵 藍點(入場信號) 當 DEMA 條件首次形成看漲結構時出現,提示潛在入場機會。
-
🟢 綠點(強勁動量) 趨勢處於健康階段,MACD 數值持續走高,動量充足。
-
🟠 橙點(動量警告) 上漲趨勢仍在延續,但動能開始減弱(MACD 低於前一根 K 線)。
-
🔴 紅點(退出信號) 上漲行情結束,適合考慮平倉或收緊止損,防止回撤擴大。
主要功能與優勢
-
更低延遲 DEMA 的引入使信號相比傳統 EMA MACD 更早出現,提升反應速度。
-
趨勢狀態監控 通過顏色區分健康趨勢(綠色)與疲軟趨勢(橙色),降低主觀判斷難度。
-
高度可自定義 振盪器與信號線計算方式可自由選擇 EMA 或 SMA,適應不同交易風格。
-
經典交叉標記(可選) 支持顯示傳統 MACD 金叉 / 死叉的三角形標記(需在參數設置中啟用)。
適合的交易場景
HaP MACD 特別適合以下類型的交易者:
- 順勢交易者
- 動量型交易策略
- 希望減少震盪期噪音干擾的中短線交易
- 用於趨勢確認 + 動量衰減預警的組合策略
⚠️ 提示:任何指標都不應單獨使用,建議結合結構、成交量或高週期趨勢進行確認。
支持與分享
如果這篇文章對你有幫助,歡迎分享給更多人或贊助支持!
HaP MACD 指標詳解:更快回應的動量與趨勢識別工具
https://bkol.cc/posts/scripts/hap-macd/ 最後更新於 2025-12-22