

在技術分析中,MACD(平滑異同移動平均線)是最經典的趨勢指標之一。然而,傳統的 MACD 只有線條與柱狀圖,有時在盤整或趨勢轉換時,視覺上不夠直觀。
「MACD 雙向填色趨勢指標」 是為了強化視覺辨識度而設計的改良版本。它不僅保留了 MACD 的核心算法,更利用 XQ 的 填色功能 (PlotFill) 與 四色柱狀圖,將傳統 MACD 的數值轉化為直觀的戰略地圖。此版本最大的核心價值,在於協助交易者「一眼判斷」目前的位階與對應策略。
📊 四大情境實戰判讀 (Visual Strategy)
此指標將視覺化重點放在 DIF (快線) 與 MACD (慢線) 對於 零軸 (Zero Axis) 的相對位置。透過填色區域與零軸的關係,我們可以快速識別以下四種戰場:📈 多頭主戰場 (零軸之上)
當兩條線都在 0 軸之上 時,代表長線趨勢屬於多方控盤。
1. 多方進攻 (Trend Start / Long Entry)
- 現象:快線 > 慢線 (呈現 紅色/多方填色)
- 解讀:股價位於強勢區且動能增強,可能正要向上突破或發動主升段。
- 策略:適合 做多 (Long) 或 加碼。
2. 多方回檔 (Pullback / Take Profit)
- 現象:快線 < 慢線 (呈現 綠色/空方填色)
- 解讀:雖然仍處於多頭架構,但短線動能轉弱,股價可能從高點回檔修正。
- 策略:多單可 獲利了結,或觀察回檔幅度(是否不破前低)來決定是否續抱。
📉 空頭主戰場 (零軸之下)
當兩條線都在 0 軸之下 時,代表長線趨勢屬於空方控盤。
3. 空方進攻 (Trend Breakdown / Short Entry)
- 現象:快線 < 慢線 (呈現 綠色/空方填色)
- 解讀:股價位於弱勢區且跌勢加劇,可能正要向下突破或進入主跌段。
- 策略:適合 做空 (Short) 或 避險。
4. 空方反彈 (Rebound / Short Cover)
- 現象:快線 > 慢線 (呈現 紅色/多方填色)
- 解讀:雖然仍處於空頭架構,但短線出現反彈,股價可能從低點回升。
- 策略:空單可 獲利了結,或觀察反彈幅度(是否不過前高)來決定是否繼續看空。
🎯 指標三大特色
1. 獨家「多空雲帶」填色 (Dual-Fill Zones)
這是此指標最大的亮點。
- 多頭區間 (Positive Fill):當
DIF > MACD(黃金交叉狀態)時,兩條線中間會填充顏色(通常設為紅色系)。這代表多方控盤,開口越大代表趨勢越強。 - 空頭區間 (Negative Fill):當
DIF < MACD(死亡交叉狀態)時,兩條線中間會填充另一種顏色(通常設為綠色系)。 - 視覺優勢:透過填色,你可以直接看到「趨勢的厚度」。當色塊開始收斂變窄,往往是趨勢即將反轉的訊號。
2. 精細的「四態柱狀圖」 (4-State Oscillator)
傳統柱狀圖只有紅綠兩色,此腳本將柱狀圖細分為四種狀態,更能捕捉轉折細節:
- Osc++ (零軸上 + 趨勢向上):強勢多頭攻擊(最紅)。
- Osc+- (零軸上 + 趨勢向下):多頭回檔(顏色較淡),需注意是否背離。
- Osc-+ (零軸下 + 趨勢向上):空頭反彈(顏色較淡),可能是止跌訊號。
- Osc-- (零軸下 + 趨勢向下):強勢空頭下殺(最綠)。
3. 平滑化的價格計算
代碼中使用了 WeightedClose()(加權收盤價),計算公式為 (最高+最低+2*收盤)/4。相比於單純使用 Close,加權收盤價更能代表該根 K 棒的重心,減少極端價格造成的指標雜訊。
🛠️ 腳本程式碼
您可以直接複製以下代碼至 XQ 「自訂指標」 中使用。
// ============================================
// 腳本名稱: MACD 雙向填色趨勢指標
// 核心目的: 計算 MACD 指標,並在 DIF 線與 MACD 線之間根據位置填色
// 修正重點: 根據 DIF > MACD 或 DIF < MACD 使用不同 PlotFill 填色
// 日期: 2026/01/26
// ============================================
input:
_FastLength(12, "DIF 短天數"),
_SlowLength(26, "DIF 長天數"),
_MACDLength(9, "MACD 天數");
var:
_dif_str(""), _macd_str(""),
_price(0),
_difValue(0), _macdValue(0), _oscValue(0),
_trendUp(false);
// ------------------------------
// 1. 計算加權收盤價 (重心價)
// ------------------------------
// WeightedClose = (High + Low + 2*Close) / 4
_price = WeightedClose();
// ------------------------------
// 2. MACD 核心計算
// ------------------------------
_difValue = XAverage(_price, _FastLength) - XAverage(_price, _SlowLength);
_macdValue = XAverage(_difValue, _MACDLength);
_oscValue = _difValue - _macdValue;
// ------------------------------
// 3. 趨勢判斷 (用於柱狀圖變色)
// ------------------------------
_trendUp = _oscValue > _oscValue[1];
// ------------------------------
// 4. 處理前面區段資料變動較大,先不繪出
// ------------------------------
if CurrentBar <= _SlowLength then begin
_difValue = 0;
_macdValue = 0;
_oscValue = 0;
end;
// ------------------------------
// 5. 繪製 MACD 柱狀圖 (OSC)
// 根據 0 軸位置與趨勢方向,分為 4 種樣式
// ------------------------------
if _oscValue >= 0 then begin
if _trendUp then
Plot3(_oscValue, "Osc++") // 樣式建議:亮紅色、實心
else
Plot4(_oscValue, "Osc+-"); // 樣式建議:暗紅色、空心或細線
end else begin
if _trendUp then
Plot5(_oscValue, "Osc-+") // 樣式建議:暗綠色、空心或細線
else
Plot6(_oscValue, "Osc--"); // 樣式建議:亮綠色、實心
end;
// ------------------------------
// 6. 設定線條標籤文字
// ------------------------------
_dif_str = text("DIF(", numToStr(_FastLength,0), "-", numToStr(_SlowLength,0), ")");
_macd_str = text("MACD(", numToStr(_MACDLength,0), ")");
// ------------------------------
// 7. 繪製 DIF 線與 MACD 線
// ------------------------------
Plot1(_difValue, "DIF"); // 建議:快線
setplotLabel(1, _dif_str);
Plot2(_macdValue, "MACD"); // 建議:慢線
setplotLabel(2, _macd_str);
Plot7(_oscValue, "Osc"); // 數值顯示用 (不畫圖)
// ------------------------------
// 8. 關鍵功能:區間填色 (PlotFill)
// 利用 NoPlot 來達成互斥顯示,避免顏色重疊混淆
// ------------------------------
if _difValue > _macdValue then begin
// 黃金交叉狀態:填入多方顏色
PlotFill(8, _difValue, _macdValue, "Positive Fill");
NoPlot(9); // 關閉空方填色
end else if _difValue < _macdValue then begin
// 死亡交叉狀態:填入空方顏色
PlotFill(9, _macdValue, _difValue, "Negative Fill");
NoPlot(8); // 關閉多方填色
end;
💡 使用與設定建議
為了達到最佳的視覺效果,請在編譯完成後,進入指標的 「繪圖設定」 進行以下調整:
- PlotFill 設定 (最重要):
- 找到 Positive Fill (序號8):將顏色設為 半透明的紅色。
- 找到 Negative Fill (序號9):將顏色設為 半透明的綠色。
- 小技巧:透明度調整可以避免填色遮擋住 DIF/MACD 線條。
- 柱狀圖設定:
- Osc++ 與 Osc-- (趨勢加強):建議設為較粗的實體柱狀。
- Osc+- 與 Osc-+ (趨勢減弱):建議設為較細的柱狀或空心柱狀,以示區別。
- 線條設定:
- DIF:建議設為較鮮豔的顏色(如橘色)。
- MACD:建議設為較深沉的顏色(如藍色)。


















