
在當沖或短線交易中,我們常需要在分 K 圖上參考日線層級的關鍵價位。然而,若同時計算過多模型(如三關價、CDP、樞紐線),往往會造成電腦卡頓。
「全維度關鍵價位:極致效能導航指標」 專為解決此痛點而生。它集結了四種經典的預測演算法,並導入「動能平滑畫線」技術,讓你在毫秒間掌握市場的支撐與壓力核心。🧠 四大價位模型深度整合
此指標整合了市場上最常用的四種靜態與動態價位預測邏輯:
1. 經典樞紐線 (Pivot Points, PP)
透過前一交易日的最高、最低與收盤價,計算出 7 個層級的心理關卡。
- 公式核心:PP = (H + L + C) / 3
- 應用:用於判斷當日的強弱勢區間,特別是「逆轉買進/賣出」位置。
2. 逆勢操作系統 (CDP)
專為當沖設計,提供比樞紐線更細緻的 5 個層級。
- 公式核心:CDP = (H + L + 2C) / 4
- 應用:AH (最高值) 與 AL (最低值) 通常作為當沖極短線的停損或反手點。
3. 三關價 (3-Level Price)
台股老手最愛用的短線指標。
- 構成:上關(多頭突破點)、中關(強弱分界)、下關(空頭突破點)。
4. 未來差離預測 (3-6 & 5-20 Divergence)
這是此腳本最獨特之處。它利用代數回推,預測未來幾根 K 棒為了維持趨勢所需的「平衡價」,幫助交易者領先市場發現動能轉折。
5-20差離公式:

🚀 效能黑科技:為什麼它不卡頓?
大多數指標會在每一根 K 棒(Bar)都重複畫圖,這在 1 分 K 且回溯天數長時會導致系統崩潰。本指標採用了兩大優化策略:
- islastbar 畫線鎖定:在分 K 模式下,指標只在「最後一根 K 棒」執行繪圖運算,透過 plotline 直接向右延伸。
- 跨頻率自動偵測:指標會自動判斷目前是「日 K」還是「分 K」。日 K:直接輸出數值。分 K:自動鎖定「昨收數據」並向右投影,確保畫面上呈現的是水平的今日參考線。

日K圖

1分K圖
📊 實戰建議
- 分 K 使用必讀:由於此指標在分 K 使用
plotline,線條會從當前 K 棒向右延伸。這非常適合**「預測今日支撐壓力」**。 - 界面美化:三關價:建議設為實線,區分多空主戰場。CDP/PP:建議設為虛線,作為輔助參考。未來差離:適合放在副圖,觀察預測價位與實際股價的扣抵關係。
- 效能提醒:若您開啟了多個商品分頁,這個指標的
islastbar優化將為您的電腦省下大量 CPU 資源,防止 XQ 閃退或卡頓。
🛠️ 完善後的指標腳本
// ============================================
// 腳本名稱:全維度關鍵價位:極致效能導航指標
// 核心邏輯:整合 PP, CDP, 三關價與未來差離,並優化分K繪圖效能
// 日期:2026/04/12
// ============================================
// ------------------------------
// 1. 變數宣告區
// ------------------------------
var:
_is_day(false),
_offset(0),
_i(0),
_c0(0), _h0(0), _l0(0),
_3l_up(0), _3l_mid(0), _3l_down(0),
_cdp(0), _cdp_ah(0), _cdp_nh(0), _cdp_nl(0), _cdp_al(0),
_pp(0), _pp_r3(0), _pp_r2(0), _pp_r1(0), _pp_s1(0), _pp_s2(0), _pp_s3(0),
_a36(0), _b36(0), _c36(0),
_x0(0), _x1(0), _x2(0), _x3(0), _x4(0), _x5(0),
_sum5_19(0), _sum1_4(0),
_extend(300);
// ------------------------------
// 2. 邏輯判斷區
// ------------------------------
// 判斷是否為日K層級 (包含還原日線)
_is_day = (barfreq = "d" or barfreq = "ad");
// 根據頻率設定讀取區間與動態偏移量
if _is_day then begin
settotalbar(25);
_offset = 0; // 日K使用當日數據
end else begin
settotalbar(6000);
_offset = 1; // 分K鎖定昨日日線數據
end;
// 基礎價位取值 (動態帶入 offset)
_c0 = closed(_offset);
_h0 = highd(_offset);
_l0 = lowd(_offset);
// 三關價
_3l_up = _l0 + (_h0 - _l0) * 1.382;
_3l_mid = (_h0 + _l0) / 2;
_3l_down = _h0 - (_h0 - _l0) * 1.382;
// cdp
_cdp = (_h0 + _l0 + 2 * _c0) / 4;
_cdp_ah = _cdp + (_h0 - _l0);
_cdp_nh = 2 * _cdp - _l0;
_cdp_nl = 2 * _cdp - _h0;
_cdp_al = _cdp - (_h0 - _l0);
// 樞紐線
_pp = (_h0 + _l0 + _c0) / 3;
_pp_r1 = 2 * _pp - _l0;
_pp_r2 = _pp + (_h0 - _l0);
_pp_r3 = _pp_r1 + (_h0 - _l0);
_pp_s1 = 2 * _pp - _h0;
_pp_s2 = _pp - (_h0 - _l0);
_pp_s3 = _pp_s1 - (_h0 - _l0);
// 3-6 差離
_a36 = 2 * closed(2 + _offset) - closed(5 + _offset);
_b36 = 2 * closed(1 + _offset) - closed(4 + _offset);
_c36 = 2 * closed(0 + _offset) - closed(3 + _offset);
// 5-20 未來差離 (使用安全迴圈避免 summation 跨頻計算錯誤)
// x0
_sum5_19 = 0; for _i = (5 + _offset) to (19 + _offset) begin _sum5_19 = _sum5_19 + closed(_i); end;
_sum1_4 = 0; for _i = (0 + _offset) to (4 + _offset) begin _sum1_4 = _sum1_4 + closed(_i); end;
_x0 = (_sum5_19 - 3 * _sum1_4) / 3;
// x1
_sum5_19 = 0; for _i = (4 + _offset) to (18 + _offset) begin _sum5_19 = _sum5_19 + closed(_i); end;
_sum1_4 = _x0 + closed(0 + _offset) + closed(1 + _offset) + closed(2 + _offset) + closed(3 + _offset);
_x1 = (_sum5_19 - 3 * _sum1_4) / 3;
// x2
_sum5_19 = 0; for _i = (3 + _offset) to (17 + _offset) begin _sum5_19 = _sum5_19 + closed(_i); end;
_sum1_4 = _x1 + _x0 + closed(0 + _offset) + closed(1 + _offset) + closed(2 + _offset);
_x2 = (_sum5_19 - 3 * _sum1_4) / 3;
// x3
_sum5_19 = 0; for _i = (2 + _offset) to (16 + _offset) begin _sum5_19 = _sum5_19 + closed(_i); end;
_sum1_4 = _x2 + _x1 + _x0 + closed(0 + _offset) + closed(1 + _offset);
_x3 = (_sum5_19 - 3 * _sum1_4) / 3;
// x4
_sum5_19 = 0; for _i = (1 + _offset) to (15 + _offset) begin _sum5_19 = _sum5_19 + closed(_i); end;
_sum1_4 = _x3 + _x2 + _x1 + _x0 + closed(0 + _offset);
_x4 = (_sum5_19 - 3 * _sum1_4) / 3;
// x5
_sum5_19 = 0; for _i = (0 + _offset) to (14 + _offset) begin _sum5_19 = _sum5_19 + closed(_i); end;
_sum1_4 = _x4 + _x3 + _x2 + _x1 + _x0;
_x5 = (_sum5_19 - 3 * _sum1_4) / 3;
// ------------------------------
// 3. 腳本輸出區
// ------------------------------
// 日K圖:純輸出數據。若不想在主圖看到線條,請至指標設定將繪圖樣式改為「文字」或將顏色設為透明。
plot1(_3l_up, "三關-上關");
plot2(_3l_mid, "三關-中關");
plot3(_3l_down, "三關-下關");
plot4(_cdp_ah, "cdp-ah");
plot5(_cdp_nh, "cdp-nh");
plot6(_cdp, "cdp");
plot7(_cdp_nl, "cdp-nl");
plot8(_cdp_al, "cdp-al");
plot9(_pp_r3, "逆轉買進");
plot10(_pp_r2, "阻力2");
plot11(_pp_r1, "阻力1");
plot12(_pp, "樞紐");
plot13(_pp_s1, "支撐1");
plot14(_pp_s2, "支撐2");
plot15(_pp_s3, "逆轉賣出");
plot16(_a36, "3-6差離1");
plot17(_b36, "3-6差離2");
plot18(_c36, "3-6差離3");
plot19(_x1, "5-20差離1");
plot20(_x2, "5-20差離2");
plot21(_x3, "5-20差離3");
plot22(_x4, "5-20差離4");
plot23(_x5, "5-20差離5");
// 分K圖:效能救星,僅在最後一根K棒時才執行 plotline 畫線
if not _is_day and islastbar then begin
plotline(31, 1, _3l_up, currentbar + _extend, _3l_up, "三關-上關");
plotline(32, 1, _3l_mid, currentbar + _extend, _3l_mid, "三關-中關");
plotline(33, 1, _3l_down, currentbar + _extend, _3l_down, "三關-下關");
plotline(34, 1, _cdp_ah, currentbar + _extend, _cdp_ah, "cdp-ah");
plotline(35, 1, _cdp_nh, currentbar + _extend, _cdp_nh, "cdp-nh");
plotline(36, 1, _cdp, currentbar + _extend, _cdp, "cdp");
plotline(37, 1, _cdp_nl, currentbar + _extend, _cdp_nl, "cdp-nl");
plotline(38, 1, _cdp_al, currentbar + _extend, _cdp_al, "cdp-al");
plotline(39, 1, _pp_r3, currentbar + _extend, _pp_r3, "逆轉買進");
plotline(40, 1, _pp_r2, currentbar + _extend, _pp_r2, "阻力2");
plotline(41, 1, _pp_r1, currentbar + _extend, _pp_r1, "阻力1");
plotline(42, 1, _pp, currentbar + _extend, _pp, "樞紐");
plotline(43, 1, _pp_s1, currentbar + _extend, _pp_s1, "支撐1");
plotline(44, 1, _pp_s2, currentbar + _extend, _pp_s2, "支撐2");
plotline(45, 1, _pp_s3, currentbar + _extend, _pp_s3, "逆轉賣出");
plotline(46, 1, _a36, currentbar + _extend, _a36, "3-6差離1");
plotline(47, 1, _b36, currentbar + _extend, _b36, "3-6差離2");
plotline(48, 1, _c36, currentbar + _extend, _c36, "3-6差離3");
plotline(49, 1, _x1, currentbar + _extend, _x1, "5-20差離1");
plotline(50, 1, _x2, currentbar + _extend, _x2, "5-20差離2");
plotline(51, 1, _x3, currentbar + _extend, _x3, "5-20差離3");
plotline(52, 1, _x4, currentbar + _extend, _x4, "5-20差離4");
plotline(53, 1, _x5, currentbar + _extend, _x5, "5-20差離5");
end;





















