66天量化訓練週記:從 RSI 背離到 VWAP,七天跨越量價結合的門檻
記錄 66 天量化交易訓練 Day 11 ~ Day 17 的學習歷程。這一週我們從 RSI 背離的動能透視出發,走進 K 線形態的量化偵測(錘頭線、看漲吞噬),再跨越「量價結合」門檻(爆量反轉、VWAP),最後以一篇量化交易者的年度反思作結。每一個策略都經過完整的九階段回測流程驗證,從訊號偵測到參數優化再到樣本外驗證,一步不跳。
一、這七天的學習地圖
| 天數 | 核心主題 | 指標 / 工具 | 學到的關鍵觀念 |
|---|---|---|---|
| Day 11 | RSI 看漲背離 | RSI Divergence | 價格與動能「唱反調」是反轉預兆 |
| Day 12 | RSI 看跌背離 | RSI Divergence (Bearish) | 用做空邏輯捕捉多頭力竭 |
| Day 13 | 錘頭線 + RSI | Hammer + RSI | K 線形態量化偵測,三重條件進場 |
| Day 14 | 看漲吞噬 + SMA 濾網 | Bullish Engulfing + SMA(50) | 形態 + 趨勢濾網降低假訊號 |
| Day 15 | 爆量反轉策略 | Volume Spike + Reversal Candle | 成交量是每一次突破背後的真正推手 |
| Day 16 | VWAP 回測策略 | VWAP + SMA | 跟著法人的「公允價格」交易 |
| Day 17 | 量化交易心態反思 | — | 風險管理、參數簡化、二階衍生 |
二、指標深度解析
Day 11–12:RSI 背離 — 當價格與動能「唱反調」
RSI(Relative Strength Index,相對強弱指標) 是 J. Welles Wilder 於 1978 年提出的動能振盪指標。它衡量的不是價格的方向,而是近期漲幅與跌幅之間的相對強度。
其中 (通常取 14 日為計算週期)。
RSI 的經典應用是超買(>70)與超賣(<30)的區間判讀。但真正讓 RSI 發揮威力的,是背離(Divergence)——價格走勢與 RSI 讀數之間出現不一致的現象。
背離的本質是:價格的表象與內在動能正在脫鉤。當你看到價格創新高,RSI 卻沒跟上,就像一台車還在往前衝,但引擎轉速已經開始下降——遲早要減速。
四種背離類型一覽
| 背離類型 | 價格動作 | RSI 動作 | 交易訊號 | 趨勢性質 |
|---|---|---|---|---|
| 經典看漲 | 更低的低點(LL) | 更高的低點(HL) | 買進 | 反轉 |
| 經典看跌 | 更高的高點(HH) | 更低的高點(LH) | 賣出 | 反轉 |
| 隱藏看漲 | 更高的低點(HL) | 更低的低點(LL) | 買進 | 持續 |
| 隱藏看跌 | 更低的高點(LH) | 更高的高點(HH) | 賣出 | 持續 |
看漲訊號時,只觀察價格與指標的低點(Lows)。看跌訊號時,只觀察高點(Highs)。搞混方向是最常見的背離分析錯誤。
Day 11:看漲背離實戰
策略邏輯:使用 scipy.signal.argrelextrema 識別波段低點,當價格出現更低的低點(Lower Low)但 RSI 出現更高的低點(Higher Low),判定為看漲背離訊號,在下一根 K 棒開盤進場。
出場規則的比較是這一天的核心實驗。我們測試了三種出場方式:
- RSI 超買止盈:RSI ≥ 70 時出場
- 固定百分比止損:收盤價跌破進場價 × (1 − 5%)
- 時間止損:持有滿 20 個交易日強制出場
不同的出場方式對策略報酬與風險特性的影響極大——同一個進場訊號,搭配不同出場邏輯,可以產生截然不同的結果。這是量化回測中常被忽略卻至關重要的環節。
Day 12:看跌背離 — 捕捉多頭力竭
Day 12 將視角反轉:偵測看跌背離(價格創新高,RSI 卻高點降低),以做空邏輯進場。
技術上的關鍵差異在於波段高點的偵測。我們使用 argrelextrema(order=5) 來識別局部高點,並限制兩個高點之間的間距(避免太近的假訊號或太遠的過期訊號)。
RSI 背離是「條件」而非「保證」。在量化回測中,背離訊號的勝率通常不高(約 40-50%),但搭配合理的出場機制,正期望值完全可以實現。關鍵在於:你不需要每次都對,只需要贏的時候賺得比輸的時候多。
學術研究與實戰社群的共識是:RSI 背離在日線以上的時間週期最為可靠,5 分鐘或 1 分鐘線上的背離訊號雜訊過多,假陽性率顯著上升。
Day 13:錘頭線(Hammer)— 用數學定義「反轉蠟燭」
K 線形態分析已有數百年歷史,起源於 18 世紀日本的米市交易。然而,多數教科書只教你「看出來像錘子就是錘頭線」,這在程式化回測中行不通。我們需要的是精確的數學定義。
錘頭線的量化條件
一根 K 棒要被判定為錘頭線,必須同時滿足以下所有條件:
body = abs(close - open)
lower_shadow = min(open, close) - low
upper_shadow = high - max(open, close)
條件 1:lower_shadow >= body × 2 (下影線至少是實體的 2 倍)
條件 2:upper_shadow <= body × 0.3 (上影線極短)
條件 3:body > 0 (排除十字線)
錘頭線的故事很簡單:在一段下跌行情中,某根 K 棒一度被賣方狠狠往下打壓(形成長下影線),但最終買方強勢反撲,把價格拉回至接近開盤價附近。這根蠟燭記錄了一場多空激烈交戰後,買方險勝的戰況。
但光靠一根 K 棒就進場太冒險了。Day 13 的策略加入了兩層額外確認:
- RSI 超賣確認:RSI ≤ 40(使用較寬鬆的門檻,平衡訊號頻率與品質)
- 下跌趨勢確認:收盤價 < SMA(20),確保是在下行趨勢中出現的反轉訊號
三重條件同時滿足才進場——寧可錯過,不可做錯。
根據 Thomas Bulkowski 的經典著作《Encyclopedia of Candlestick Charts》以及近年的量化回測研究,單一 K 線形態的可靠性普遍偏低(約 50-60%)。但當形態搭配成交量確認、趨勢濾網或動能指標時,準確率可顯著提升。這也是為什麼我們堅持「多重條件進場」的原則。
Day 14:看漲吞噬(Bullish Engulfing)— 買方的全面壓制
看漲吞噬是 K 線形態中被認為最強大的看漲反轉形態之一。它由兩根 K 棒組成,第二根陽線的實體完全「吞噬」了前一根陰線的實體。
量化偵測條件
條件 1:prev_close < prev_open (前一根為陰線)
條件 2:curr_close > curr_open (當前為陽線)
條件 3:curr_open <= prev_close (當前開盤 ≤ 前收盤)
條件 4:curr_close >= prev_open (當前收盤 ≥ 前開盤)
條件 5:body > 0 (排除十字線)
視覺上就像第二根蠟燭把前一根完全「吃掉」,代表買方力量在一天之內完全壓倒了賣方。在回測研究中,看漲吞噬在支撐位附近出現時,搭配高成交量確認,是可靠度最高的 K 線形態之一。
SMA(50) 趨勢濾網
Day 14 引入了 SMA(50) 作為趨勢濾網:只在收盤價 > SMA(50) 時才允許做多信號通過。這個設計背後的邏輯是:
我們只想在中期上升趨勢中捕捉短期回調後的反彈,而非在下行趨勢中去「接飛刀」。
參數優化時測試了 36 組組合(SMA 週期 × 止損比例 × 持有天數),這也是我們首次體會到一個重要教訓:
在許多策略中,持有天數這個參數對績效的影響比你想像的大得多。Day 14 的回測顯示,3 天持有與 20 天持有的 Sharpe Ratio 差異可達 2 倍以上。出場時機往往比進場條件更決定策略成敗。
Day 15:爆量反轉 — 成交量才是真正的主角
Day 4 到 Day 14,我們一直在用「價格衍生指標」(SMA、RSI、K 線形態)來判斷進場時機。Day 15 是一個轉折點——我們正式把成交量引入策略框架。
價格告訴你市場在做什麼,成交量告訴你市場有多認真。
爆量的定義
「爆量」的量化標準很直觀:
其中 為爆量倍數(預設 ,即今日成交量超過 20 日均量的 2 倍)。
這代表市場在這一天出現了遠超尋常的交易活動——可能是機構大額建倉、恐慌性拋售,或是重大消息驅動的集體行動。
三重進場條件
Day 15 的策略要求三個條件同時滿足:
- 爆量:成交量 > 20 日均量 × 2
- 反轉 K 線形態:出現錘頭線 或 看漲吞噬(整合 Day 13、14 學到的形態偵測)
- 趨勢濾網:收盤價 > SMA(50)
這是我們首次將前幾天學到的不同知識模組組裝成一個完整的策略。量化交易的進步,往往就是這樣——不是學新指標,而是學會組合現有工具。
參數優化的觀察
測試了 48 組參數組合(爆量倍數 × SMA 週期 × 持有天數):
- 爆量倍數對策略品質影響最大。倍數太低(1.5×)會納入太多「非事件」的日子;倍數太高(3.0×)則幾乎沒有訊號觸發
- 最穩健的區間落在 2.0–2.5 倍,這也印證了一個直覺:真正有意義的量能變化,通常需要超過日常水平的兩倍以上
在機構交易的世界裡,「爆量」往往意味著大玩家正在進場或出場。散戶的單日交易量微乎其微,能夠讓成交量飆升數倍的,幾乎都是法人、對沖基金或做市商的大額委託。這就是為什麼「量先價行」在技術分析中被視為老生常談卻歷久不衰的原則。
Day 16:VWAP — 法人級盤中指標的量化應用
VWAP(Volume Weighted Average Price,成交量加權平均價格) 是從日內交易跨入機構級分析的一道門檻。它不是另一條移動平均線,而是市場參與者在某個價位上達成的成交量加權共識。
計算公式
關鍵特性:VWAP 每個交易日開盤時自動重置,從零開始重新累積。早盤時分母小、對價格變動極其敏感;盤中逐漸鈍化,因為累積成交量越來越大。
對機構投資者來說,VWAP 是衡量「今日交易執行品質」的基準。如果你的平均買入價低於 VWAP,代表你買得比市場平均水準便宜。因此,VWAP 自然而然成為了一個重要的盤中支撐/壓力水平——大量機構掛單會聚集在 VWAP 附近。
VWAP Pullback 策略
策略邏輯:在上升趨勢中(收盤價 > SMA(20)),當價格從 VWAP 上方回落至 VWAP 附近時,視為回測買入機會。
進場條件:
- 前一根 K 棒 close > VWAP,當前 K 棒 close ≤ VWAP(回測發生)
- 收盤價 > SMA(20)(趨勢濾網)
- 排除開盤前 30 分鐘(09:30–10:00 波動過大)
出場規則比較(三種方式):
- 出場 A:持有固定 K 棒數(如 12 根 × 5 分鐘 = 1 小時)
- 出場 B:固定百分比停利(+2%)
- 出場 C:SMA(20) 跌破即出場
回測績效與核心發現
| 標的 | 參數 | IS Sharpe | OOS Sharpe | 核心觀察 |
|---|---|---|---|---|
| AAPL | SMA=50, Hold=36 | -3.81 | 0.39 | 回撤控制優於 Buy-and-Hold |
| SPY | SMA=10, Hold=36 | 2.44 | 1.30 | 實現超額收益,IS→OOS 衰減但維持正值 |
在極端強勢的多頭趨勢中,股價可能連續數天都在 VWAP 之上,連一次回測都沒有。如果你執著於等待「低於 VWAP」的買點,將會徹底錯失暴漲行情。VWAP 是一個盤中工具,不適合用於跨日的趨勢判斷。
專業交易者的做法是:將 VWAP 與更大時間週期的趨勢分析搭配使用。VWAP 告訴你「盤中的公允價格在哪」,但趨勢方向需要日線或週線級別的指標來判斷。
Day 17:暫停程式碼,聆聽一年的教訓
Day 17 是一天「沒有程式碼」的日子。我們閱讀了 QFX Research 的文章《1 Year in Quant Trading — 24 Lessons I've Learned》,從一位全職量化交易者用真金白銀換來的 24 個教訓中,挑出最深刻的三個進行反思。
教訓 #9:風險管理是首要任務
你的策略應該有能力應對某天早上醒來發現市場暴跌 50% 的狀況。
損失 40% 的資金,需要賺回 66.7% 才能回到原點——這是一個根本不對稱的遊戲。在前 16 天的訓練中,我們跑出過漂亮的回測數字,卻從沒認真思考過:萬一最壞的情況發生,帳戶還能存活嗎?
風險控管的量化框架:
| 層次 | 原則 | 量化標準 |
|---|---|---|
| 單筆交易 | 每筆風險上限 | ≤ 總資金 1% |
| 單日 | 每日最大虧損 | ≤ 總資金 3% |
| 策略 | 最大回撤容忍 | ≤ 20%,超過則暫停 |
| 帳戶 | 儲備資金隔離 | 20% 資金永不入場 |
首要目標不是「賺錢」,而是「不破產」。先求生存,才有機會複利。
教訓 #10:用更少的參數,但要徹底理解它們
我績效最佳的策略只有 3 個參數。最糟糕的錯誤,大概就是讓優化腳本自動產生參數組合。
在訓練中我們曾對 SMA 週期、RSI 門檻、持倉天數做 grid search,找到「最好看」的組合——卻不知道為什麼這組參數回測好。這本質上是在用歷史資料過擬合,而非找到真正有效的市場規律。
加入任何參數前,先回答三個問題:
- 這個參數代表什麼市場行為?(例如:SMA 200 代表長期趨勢方向)
- 為什麼它應該影響策略表現?(邏輯驅動,非數據驅動)
- 如果稍微改變這個數值,策略會崩潰嗎?(穩健性測試)
三個問題都能清楚回答,這個參數才值得留在策略裡。
教訓 #20:衍生的衍生才有用
如果將指標策略性地改造成二次衍生物,策略的表現往往會好得多。
不急著換新指標,先問:現有指標的二階行為是什麼?
- RSI → RSI 的斜率變化(動量加速度)→ 斜率連續幾根為正(趨勢確認)
- MACD → MACD 柱狀圖的面積累積 → 面積由正轉負的速率
- VWAP 偏離度 → 偏離度的標準差(日內波動節奏)→ 偏離度回歸速率
理解 → 簡化 → 生存 → 衍生
- 理解每個參數和指標的市場含義
- 簡化到你真正掌控的核心邏輯
- 生存是一切複利的前提
- 在理解的基礎上,衍生更有洞察力的特徵
深挖一個你理解的指標,遠比廣撒一堆你不懂的指標更有價值。
三、七天回測實戰的共同發現
出場比進場重要
如果這七天只能帶走一個教訓,那就是:出場規則對策略績效的影響,往往大於進場訊號。
Day 11 的三種出場方式比較、Day 14 的持有天數敏感度分析、Day 16 的三種出場邏輯對比,每一次都在驗證同一件事——同一個進場訊號,搭配不同出場機制,Sharpe Ratio 可以差 2 倍以上。
市面上 90% 的策略教學都把重心放在「什麼時候買」,但真正決定你存亡的,是「什麼時候賣」。
多重條件 > 單一指標
從 Day 11 的純 RSI 背離,到 Day 13 的三重條件(形態 + RSI + 趨勢),再到 Day 15 的三重條件(量 + 形態 + 趨勢),策略設計的脈絡清晰可見:
每多疊加一層有意義的濾網,假訊號就減少一層,但訊號頻率也降低一層。
這是一個永恆的取捨:確認度 vs. 交易頻率。沒有正確答案,只有適合你資金規模與風險承受度的答案。
從日線到分鐘線的跨越
Day 16 的 VWAP 策略讓我們首次從日線走進 5 分鐘線的世界。盤中交易的挑戰完全不同:
- 資料量暴增(一天有 78 根 5 分鐘 K 棒)
- 需要考慮「開盤波動期」與「收盤強制平倉」
- VWAP 每日重置,指標邏輯與日線指標截然不同
- 交易成本佔比更高(因為每筆交易的預期利潤更小)
四、策略工具箱速查表
| 工具 | 類型 | 最適用場景 | 核心限制 |
|---|---|---|---|
| RSI 背離 | 動能反轉 | 波段高/低點的轉折偵測 | 勝率不高,需搭配出場紀律 |
| 錘頭線 | K 線形態 | 下跌趨勢中的反轉信號 | 單獨使用可靠度低 |
| 看漲吞噬 | K 線形態 | 強勢反轉確認 | 需搭配趨勢濾網 |
| 爆量偵測 | 成交量 | 異常交易活動的定位 | 倍數門檻需依標的調整 |
| VWAP | 盤中基準 | 日內交易的公允價格錨點 | 僅適用盤中,每日重置 |
| SMA 濾網 | 趨勢確認 | 過濾逆趨勢的假訊號 | 本質為落後指標 |
五、銘記的心態
- 出場決定存亡。 進場只是故事的開頭,出場才是結局。花在設計出場規則的時間,應該至少等於進場條件。
- 多重確認是你的安全帶。 單一指標很少可靠,但有意義的多重條件組合能顯著降低假訊號。
- 風險管理不是附加項,是前提。 損失 40% 需要賺回 66.7%。這個數學事實永遠不會改變。
- 少即是多。 3 個你理解的參數,勝過 10 個你跑出來的參數。
- 深挖勝過廣撒。 把一個指標的二階行為搞懂,比學十個新指標更有價值。
- 成交量是價格的靈魂。 沒有量的突破是假突破,有量的反轉才值得信任。
Day 18 開始進入更進階的策略組合與投資組合層面的思考。帶著「量價結合」的新視角,以及「風險優先」的心態框架,繼續前進。