
一次看懂短、中、長週期動能的「市場儀表板」
這個指標的目的很簡單: 讓你在 1 秒內看懂市場的多空動能結構。
它把 MACD 的柱狀體(OSC)拆成「四象限」,再用三組不同週期的 MACD 來觀察短線、中線、長線的動能變化。 最後再把三組動能整合成「強多、偏多、偏空、強空」的整體評級。🟦 一、為什麼要用三組 MACD?
一般 MACD 只有一組,常常會遇到:
- 太慢(長週期)
- 太快(短週期)
- 容易被洗(盤整)
- 不知道趨勢是否一致
三組 MACD 則能同時看到:

你可以把它想成:
- F1:油門
- F2:引擎
- F3:車子的重量與方向
三者一起看,才能知道「車子到底往哪裡走」。
🟩 二、四象限是什麼?(MACD-OSC 的四種狀態)
每一組 MACD 的柱狀體(OSC)會被分類成四種狀態:

這比傳統 MACD 更細緻,因為它不只看「正負」,還看「加速或減速」。
🟧 三、圖上會看到什麼?
指標會畫出:
- 三組 OSC(柱狀體):短、中、長週期動能
- 四象限狀態點(彩色圓點):加速 / 減速
- 整體多空評級(最上方的強多 / 偏多 / 偏空 / 強空)
這些元素會隨著行情變化而同步更新, 讓你能像看「市場儀表板」一樣快速判斷趨勢。

🟥 四、如何解讀?(最重要的教學)
以下是最常見、最實用的判讀方式:
✔ 1. 三組同向 = 趨勢最乾淨
🔥 強多(全部 > 0)
→ 多頭一致、順勢單勝率最高 → 適合做多、加碼、抱波段
❄ 強空(全部 < 0)
→ 空頭一致、反彈容易失敗 → 適合做空、減碼、避險

✔ 2. 多空分歧 = 盤整 or 轉折前兆
例如:
- 短線翻多,但長線仍空 → 反彈
- 長線翻多,但短線轉弱 → 回檔
這些狀態會被標示為「偏多」或「偏空」。

✔ 3. 看加速/減速抓轉折
多頭加速(+加速)
→ 多頭正在發動 → 常出現在突破前、中段
多頭減速(+減速)
→ 多頭力道變弱 → 常出現在高檔背離前
空頭加速(–加速)
→ 空頭正在發動 → 常出現在破底前、中段
空頭減速(–減速)
→ 空頭力道變弱 → 常出現在落底前

🟪 五、實戰用法(最推薦的三種)
⭐ 用法 1:抓「多頭發動點」
觀察順序:
- F1(短)先出現 +加速
- F2(中)跟上變成 +加速
- F3(長)翻正
→ 這是典型的「突破起漲」結構。
⭐ 用法 2:抓「空頭發動點」
- F1 先變成 –加速
- F2 跟上
- F3 翻負
→ 常出現在破底前。
⭐ 用法 3:抓「轉折」
- 多頭減速(+減速)+ 長週期仍為負 → 反彈結束
- 空頭減速(–減速)+ 長週期仍為正 → 回檔結束
這比單純看 MACD 更早、更準。
🟫 六、適合哪些交易者?
✔ 做波段
✔ 做順勢
✔ 做突破
✔ 做短線轉折
✔ 想避免被洗盤
✔ 想知道「多空是否一致」
這個指標非常適合用來當作「市場動能儀表板」。
📌 七、總結(給使用者的最重要一句話)
這個指標不是 MACD,而是「三層級動能結構分析系統」,它讓你一次看懂短、中、長週期的多空力道與加減速狀態。
// ============================================================
// 指標名稱:三組 MACD 四象限狀態顯示(XS 紅綠燈版)
// ============================================================
// ------------------------------
// 1. 參數
// ------------------------------
Input:
_f1_fast(5), _f1_slow(8), _f1_sig(9),
_f2_fast(13), _f2_slow(21), _f2_sig(9),
_f3_fast(34), _f3_slow(144), _f3_sig(9);
// ------------------------------
// 2. 變數宣告
// ------------------------------
Vars:
_dif1(0), _macd1(0), _osc1(0),
_dif2(0), _macd2(0), _osc2(0),
_dif3(0), _macd3(0), _osc3(0),
_c11(false), _c12(false), _c13(false), _c14(false),
_c21(false), _c22(false), _c23(false), _c24(false),
_c31(false), _c32(false), _c33(false), _c34(false);
// ------------------------------
// 3. MACD 計算
// ------------------------------
_dif1 = XAverage(Close, _f1_fast) - XAverage(Close, _f1_slow);
_macd1 = XAverage(_dif1, _f1_sig);
_osc1 = _dif1 - _macd1;
_dif2 = XAverage(Close, _f2_fast) - XAverage(Close, _f2_slow);
_macd2 = XAverage(_dif2, _f2_sig);
_osc2 = _dif2 - _macd2;
_dif3 = XAverage(Close, _f3_fast) - XAverage(Close, _f3_slow);
_macd3 = XAverage(_dif3, _f3_sig);
_osc3 = _dif3 - _macd3;
// ------------------------------
// 4. 四象限條件
// ------------------------------
_c11 = _osc1 > 0 and _osc1 > _osc1[1];
_c12 = _osc1 > 0 and _osc1 < _osc1[1];
_c13 = _osc1 < 0 and _osc1 < _osc1[1];
_c14 = _osc1 < 0 and _osc1 > _osc1[1];
_c21 = _osc2 > 0 and _osc2 > _osc2[1];
_c22 = _osc2 > 0 and _osc2 < _osc2[1];
_c23 = _osc2 < 0 and _osc2 < _osc2[1];
_c24 = _osc2 < 0 and _osc2 > _osc2[1];
_c31 = _osc3 > 0 and _osc3 > _osc3[1];
_c32 = _osc3 > 0 and _osc3 < _osc3[1];
_c33 = _osc3 < 0 and _osc3 < _osc3[1];
_c34 = _osc3 < 0 and _osc3 > _osc3[1];
// ------------------------------
// 5. 基準線
// ------------------------------
Plot1(_osc1, "OSC1");
Plot2(_osc2, "OSC2");
Plot3(_osc3, "OSC3");
// ------------------------------
// 6. 狀態繪圖(互斥)
// ------------------------------
if _c11 then Plot4(90, "1+加速") else NoPlot(4);
if _c12 then Plot5(90, "1+減速") else NoPlot(5);
if _c13 then Plot6(90, "1-加速") else NoPlot(6);
if _c14 then Plot7(90, "1-減速") else NoPlot(7);
if _c21 then Plot8(60, "2+加速") else NoPlot(8);
if _c22 then Plot9(60, "2+減速") else NoPlot(9);
if _c23 then Plot10(60, "2-加速") else NoPlot(10);
if _c24 then Plot11(60, "2-減速") else NoPlot(11);
if _c31 then Plot12(30, "3+加速") else NoPlot(12);
if _c32 then Plot13(30, "3+減速") else NoPlot(13);
if _c33 then Plot14(30, "3-加速") else NoPlot(14);
if _c34 then Plot15(30, "3-減速") else NoPlot(15);
// 最強多
if _osc1 > 0 and _osc2 > 0 and _osc3 > 0 then Plot16(95,"強多") else NoPlot(16);
// 偏多
if _osc1 > 0 and _osc2 > 0 and _osc3 < 0 then Plot17(95,"偏多1") else NoPlot(17);
if _osc1 > 0 and _osc2 < 0 and _osc3 > 0 then Plot18(95,"偏多2") else NoPlot(18);
if _osc1 > 0 and _osc2 < 0 and _osc3 < 0 then Plot19(95,"偏多3") else NoPlot(19);
// 偏空
if _osc1 < 0 and _osc2 > 0 and _osc3 > 0 then Plot20(95,"偏空1") else NoPlot(20);
if _osc1 < 0 and _osc2 > 0 and _osc3 < 0 then Plot21(95,"偏空2") else NoPlot(21);
if _osc1 < 0 and _osc2 < 0 and _osc3 > 0 then Plot22(95,"偏空3") else NoPlot(22);
// 最強空
if _osc1 < 0 and _osc2 < 0 and _osc3 < 0 then Plot23(95,"強空") else NoPlot(23);



















