

【XS 策略介紹】量能博弈雙雄:OBV 六階雲帶 × Weis 波段導航系統
在技術分析中,「量比價先行」是永恆的真理。然而,傳統的成交量柱狀圖往往雜訊過多。本系統整合了兩大重量級量能指標,將枯燥的量化數據轉化為直觀的視覺化雲帶與波段推力,協助交易者在茫茫股海中鎖定主力資金的真實去向。
核心組成元件
1. OBV 六全排列帶狀填色指標 (能量地圖)
此指標將 OBV 及其長短均線(SMA/MMA)的相對位置進行了 6 種排列組合 (Permutations)。透過這 6 種狀態,我們能將市場劃分為 6 個層次:- 最強多頭 (紅雲帶):OBV > 短均 > 長均。資金全力進駐。
- 多頭拉回 (黃/橙雲帶):短均 > OBV > 長均。上升趨勢中的良性修正。
- 最強空頭 (灰/綠雲帶):長均 > 短均 > OBV。資金潰散,絕對避開。
2. Weis Wave Volume 韋斯波段成交量 (攻擊雷達)
不同於傳統以「時間」為單位的成交量,Weis Wave 是以「趨勢波段」來累積。
- 邏輯:當股價未達 1.5% 反轉門檻時,量能會持續累加在同一波段。
- 視覺:你會看到一個個像山峰般的量能波。波峰越高,代表該次攻擊(或殺盤)的純度越高。
💡 整合實戰:如何雙劍合璧?
當你將這兩個指標放在一起使用時,你會發現市場的真相:
情境 A:多頭送分題 (趨勢加成)
- OBV 表現:出現「最強多頭」填色(紅色雲帶擴張)。
- Weis Wave 表現:上漲波的能量峰高度顯著高於先前的下跌波。
- 解讀:長線資金(OBV)撐腰,短線攻擊(Weis)有力。這是最佳的持股波段。
情境 B:高檔背離預警 (主力暗撤)
- OBV 表現:仍處於多頭排列,但填色區間開始縮小(甚至轉為多頭拉回)。
- Weis Wave 表現:股價創新高,但 Weis 的上漲量能波峰卻一波比一波低。
- 解讀:這就是典型的「量背離」。主力已在高檔偷偷出貨,此時應果斷獲利了結。
情境 C:底部止跌轉折
- OBV 表現:由最強空頭轉為「空頭反彈」。
- Weis Wave 表現:出現 1.5% 的向上反轉訊號(Plot3 買入標記),且 Weis 紅色量能波開始放大。
- 解讀:代表底部浮額已清,新一輪資金開始進場,適合小量試單。
🛠️ 優化後的整合腳本
為了方便您使用,我已將變數依照 XQ 規範 進行命名優化,並確保兩個腳本的邏輯清晰,您可以分別放入兩個指標分頁或整合觀察。
腳本一:OBV 六全排列帶狀填色指標
// -----------------------------------------------------------
// 腳本類別: 指標
// 腳本名稱: OBV 六全排列帶狀填色指標
// -----------------------------------------------------------
input:
_SMAlength(5, "短週期"), //InputKind:=Dict(["5期",5],["10期",10],["20期",20]), Quickedit:=True),
_MMAlength(20, "長週期"); //, InputKind:=Dict(["20期",20],["40期",40],["60期",60]), Quickedit:=True);
variable:
_OBV(0), // OBV 數值
_SMA(0), // 短期均線
_MMA(0), // 長期均線
_SMA_Label(""), // 短均線標籤
_MMA_Label(""); // 長均線標籤
// 效能優化
//SetTotalBar(_MMAlength + 5);
// ------------------------------
// 1. OBV 與均線核心計算
// ------------------------------
if CurrentBar = 1 then
_OBV = 0
else begin
if Close > Close[1] then
_OBV = _OBV[1] + Volume
else if Close < Close[1] then
_OBV = _OBV[1] - Volume
else
_OBV = _OBV[1];
end;
_SMA = Average(_OBV, _SMAlength);
_MMA = Average(_OBV, _MMAlength);
_SMA_Label = NumToStr(_SMAlength, 0) + "MA";
_MMA_Label = NumToStr(_MMAlength, 0) + "MA";
// 繪製基準三線
Plot1(_OBV, "OBV");
Plot2(_SMA, "短均線");
Plot3(_MMA, "長均線");
SetPlotLabel(2, _SMA_Label);
SetPlotLabel(3, _MMA_Label);
// ------------------------------
// 2. 定義 6 種排列組合狀態 (Permutations)
// ------------------------------
condition1 = _OBV > _SMA and _SMA > _MMA; // O > S > M (最強多頭)
condition2 = _OBV > _MMA and _MMA > _SMA; // O > M > S (多頭初現)
condition3 = _SMA > _OBV and _OBV > _MMA; // S > O > M (多頭拉回)
condition4 = _SMA > _MMA and _MMA > _OBV; // S > M > O (空頭初現)
condition5 = _MMA > _OBV and _OBV > _SMA; // M > O > S (空頭反彈)
condition6 = _MMA > _SMA and _SMA > _OBV; // M > S > O (最強空頭)
// ------------------------------
// 3. 買賣狀態柱狀圖 (輔助顯示)
// ------------------------------
if condition1 then Plot4(100, "最強多頭") else NoPlot(4);
if condition2 then Plot5(100, "多頭初現") else NoPlot(5);
if condition3 then Plot6(100, "多頭拉回") else NoPlot(6);
if condition4 then Plot7(100, "空頭初現") else NoPlot(7);
if condition5 then Plot8(100, "空頭反彈") else NoPlot(8);
if condition6 then Plot9(100, "最強空頭") else NoPlot(9);
// ------------------------------
// 4. 六組獨立區間填色 (PlotFill)
// 邏輯:填滿該狀態下最高值與最低值之間的區間
// ------------------------------
// PF1: O > S > M (填滿 OBV 到 MMA)
if condition1 then PlotFill(10, _OBV, _MMA, "最強多頭填色") else NoPlot(10);
// PF2: O > M > S (填滿 OBV 到 SMA)
if condition2 then PlotFill(11, _OBV, _SMA, "多頭初現填色") else NoPlot(11);
// PF3: S > O > M (填滿 SMA 到 MMA)
if condition3 then PlotFill(12, _SMA, _MMA, "多頭拉回填色") else NoPlot(12);
// PF4: S > M > O (填滿 SMA 到 OBV)
if condition4 then PlotFill(13, _SMA, _OBV, "空頭初現填色") else NoPlot(13);
// PF5: M > O > S (填滿 MMA 到 SMA)
if condition5 then PlotFill(14, _MMA, _SMA, "空頭反彈填色") else NoPlot(14);
// PF6: M > S > O (填滿 MMA 到 OBV)
if condition6 then PlotFill(15, _MMA, _OBV, "最強空頭填色") else NoPlot(15);
腳本二:Weis Wave Volume (韋斯波段成交量)
// ============================================
// 腳本名稱: Weis Wave Volume (韋斯波段成交量)
// 核心目的: 基於價格百分比反轉,累計波段成交量
// ============================================
input: _RevPct(1.5, "波段反轉門檻 (%)");
var:
_Trend(1), // 1: 上漲波, -1: 下跌波
_Extremum(0), // 波段極值
_WaveVol(0), // 累計量
_RevAmt(0); // 反轉絕對金額
if CurrentBar = 1 then begin
_Extremum = Close;
_WaveVol = Volume;
_Trend = 1;
end else begin
_RevAmt = _Extremum * (_RevPct / 100);
if _Trend = 1 then begin
if High > _Extremum then _Extremum = High;
if (_Extremum - Low) >= _RevAmt then begin
_Trend = -1; _Extremum = Low; _WaveVol = Volume;
end else _WaveVol = _WaveVol + Volume;
end else begin
if Low < _Extremum then _Extremum = Low;
if (High - _Extremum) >= _RevAmt then begin
_Trend = 1; _Extremum = High; _WaveVol = Volume;
end else _WaveVol = _WaveVol + Volume;
end;
end;
if _Trend = 1 then Plot1(_WaveVol, "上漲波量能") else Plot2(_WaveVol, "下跌波量能");
// 趨勢翻轉訊號 (主圖顯示)
if _Trend = 1 and _Trend[1] = -1 then Plot3(100, "買入點");
if _Trend = -1 and _Trend[1] = 1 then Plot4(100, "賣出點");
⚙️ 使用建議:UI 設定小撇步
- OBV 雲帶:將
PlotFill的顏色設定為半透明。強勢多頭建議用「亮紅色」,多頭拉回用「淡紅色」,強勢空頭用「深綠色」。 - WWV:建議設為「柱狀圖」,上漲波用紅色,下跌波用綠色。當你看到 Weis Wave 的柱子高過前波,就是加碼的好時機。
- 週期搭配:此組合在 1分鐘 K 或 日線 效果最佳,1.5% 的反轉門檻能有效過濾掉台股的大部分隨機震盪。





















