MengNotes
部落格標籤關於
首頁/部落格/66 天量化訓練 Day 4–10:SMA、ADX、Ichimoku 與風險管理
Quant-Trading

66 天量化訓練 Day 4–10:SMA、ADX、Ichimoku 與風險管理

記錄 66 天量化交易訓練 Day 4–10:從 SMA、布林通道與 MACD,走到 ADX、Ichimoku,再用實際回測檢查過度擬合與風險管理。

2026年3月8日3,057 字16 分鐘閱讀
#quant-trading#technical-indicators#backtesting#66-days-training#week-summary
本文摘要

Day 4–10 依序測試 SMA、布林通道、MACD、ADX 與 Ichimoku,最後回到風險管理。這週最重要的結果,不是哪個指標最好,而是樣本外表現、交易成本與止損邏輯會迅速拆穿看似漂亮的回測。


七天的學習地圖

天數核心主題指標類型學到的關鍵觀念
Day 4SMA 策略 + IBKR 實作趨勢追蹤均線交叉、資料擷取流程
Day 5SMA 日內交易改造趨勢追蹤(短線)時間週期切換、SMA 參數靈敏度
Day 6布林通道(Bollinger Bands)波動率 + 均值回歸95% 法則、過度擬合的代價
Day 7MACD 黃金交叉動能指標落後指標特性、柱狀圖斜率濾網
Day 8ADX 趨勢強度趨勢強度濾網不看方向只看力道、假訊號過濾
Day 9Ichimoku Cloud 一目均衡表全方位系統五線整合、雲帶作為多空禁區
Day 10風險管理心法心態與紀律止損獨立、破產風險、正期望值

逐日拆解

Day 4–5:從 SMA 開始測趨勢策略

簡單移動平均(SMA)的計算很直接:取過去 NNN 天收盤價的算術平均。

SMAN=1N∑i=1NPiSMA_N = \frac{1}{N} \sum_{i=1}^{N} P_iSMAN​=N1​i=1∑N​Pi​
核心概念

SMA 用來平滑雜訊,讓價格方向比較容易辨認;價格穿越均線時,可以把它當成待確認的趨勢轉向訊號。

實作上學到的事

  • Day 4 我們用 IBKR API 擷取 MAG7(七巨頭:MSFT, AAPL, TSLA, NVDA, META, GOOGL, AMZN)的歷史資料,分別搜尋 SMA 視窗。結果顯示,同一組參數無法直接套到所有標的。
  • Day 5 我們把日線 SMA 200 改成 1 分鐘線的 SMA 5。時間週期縮短後,訊號更靈敏,假訊號也明顯增加。
週期越短,雜訊越多

SMA 5 在 1 分鐘線上跳動非常劇烈。快節奏不等於高獲利,反而需要更嚴格的進出場紀律。


Day 6:用布林通道描述波動

布林通道由三條線組成:

  • 中軌:SMA(通常為 20 日)
  • 上軌:SMA + k×σk \times \sigmak×σ(通常 k=2k = 2k=2)
  • 下軌:SMA - k×σk \times \sigmak×σ

其中 σ\sigmaσ 為收盤價的標準差。

95% 法則

在常態分佈假設下,約 95% 的觀測值落在 ±2 標準差內。價格突破上下軌不代表必定反轉,只表示它離近期平均值較遠。

回測結論與反思

以 AAPL 為標的,使用「觸及下軌買入、觸及上軌賣出」的均值回歸邏輯回測十年:

指標樣本內(2016–2021)樣本外(2022–2026)
CAGR25.99%8.85%
Sharpe1.200.59
Max Drawdown-31.43%-16.61%
  • 網格搜尋找到的最佳參數 (SMA=20, σ=3.0),Sharpe 是平均值的 2.05 倍,這是過度擬合的警訊。
  • 3σ 的帶寬極少被觸發(樣本外僅 1 筆交易),多數時間空倉,回撤低但報酬也偏低。
  • AAPL 長期呈向上趨勢,純粹的均值回歸策略會在上軌時過早賣出,錯過趨勢延伸的大段漲幅。
關鍵教訓

回測裡排名第一的參數,不會因此成為未來的最佳參數。這組結果更像過度擬合(overfitting)的警告。


Day 7:用 MACD 觀察動能

MACD 全名 Moving Average Convergence Divergence(指數平滑異同移動平均線),是衡量動能最常見的工具之一。

MACD=EMA12−EMA26MACD = EMA_{12} - EMA_{26}MACD=EMA12​−EMA26​ Signal=EMA9(MACD)Signal = EMA_9(MACD)Signal=EMA9​(MACD) Histogram=MACD−SignalHistogram = MACD - SignalHistogram=MACD−Signal
黃金交叉與死亡交叉
  • 黃金交叉:MACD 線由下往上穿越訊號線,視為看漲動能訊號
  • 死亡交叉:MACD 線由上往下穿越訊號線,視為看跌動能訊號

進階技巧:柱狀圖斜率濾網

單純的交叉訊號容易在盤整市場中被「洗」出場(whipsaw)。加入柱狀圖斜率濾網後:

  • 僅在柱狀圖「上升」時允許買入
  • 僅在柱狀圖「下降」時允許賣出

這層確認減少了部分假訊號,也會讓進場變慢。動能指標本來就會落後(lagging),這裡換到的是較高確認度,代價是時效性。


Day 8:ADX 只衡量強度,不判斷方向

ADX(Average Directional Index,平均趨向指數)不像 SMA 或 MACD 產生方向訊號。它回答的是:目前是否有趨勢,以及趨勢強度多高。

ADX 的計算原理

ADX 並非直接從價格算出,而是經過多層加工。整個計算鏈可拆成五個步驟:

步驟一:計算趨向變動(Directional Movement)

每根 K 棒比較當前最高/最低價與前一根的差異:

+DM={Hight−Hight−1若 Hight−Hight−1>Lowt−1−Lowt 且 >00否則+DM = \begin{cases} High_t - High_{t-1} & \text{若 } High_t - High_{t-1} > Low_{t-1} - Low_t \text{ 且 } > 0 \\ 0 & \text{否則} \end{cases}+DM={Hight​−Hight−1​0​若 Hight​−Hight−1​>Lowt−1​−Lowt​ 且 >0否則​ −DM={Lowt−1−Lowt若 Lowt−1−Lowt>Hight−Hight−1 且 >00否則-DM = \begin{cases} Low_{t-1} - Low_t & \text{若 } Low_{t-1} - Low_t > High_t - High_{t-1} \text{ 且 } > 0 \\ 0 & \text{否則} \end{cases}−DM={Lowt−1​−Lowt​0​若 Lowt−1​−Lowt​>Hight​−Hight−1​ 且 >0否則​

簡單來說:+DM 捕捉「向上突破」的幅度,-DM 捕捉「向下突破」的幅度。

步驟二:計算真實波幅(True Range, TR)

TR=max⁡(Hight−Lowt,  ∣Hight−Closet−1∣,  ∣Lowt−Closet−1∣)TR = \max(High_t - Low_t,\; |High_t - Close_{t-1}|,\; |Low_t - Close_{t-1}|)TR=max(Hight​−Lowt​,∣Hight​−Closet−1​∣,∣Lowt​−Closet−1​∣)

TR 衡量的是每根 K 棒的「實際波動範圍」,考慮了跳空缺口的情況。

步驟三:平滑處理(Wilder's Smoothing)

對 +DM、-DM、TR 分別套用 Wilder 平滑移動平均(通常週期 N=14N = 14N=14):

Smoothedt=Smoothedt−1−Smoothedt−1N+ValuetSmoothed_{t} = Smoothed_{t-1} - \frac{Smoothed_{t-1}}{N} + Value_tSmoothedt​=Smoothedt−1​−NSmoothedt−1​​+Valuet​
Wilder 平滑 vs 一般 EMA

Wilder 平滑等價於 2N−12N - 12N−1 週期的 EMA。所以 ADX 14 實際上的衰減速度接近 EMA 27,比直覺上想的更「緩慢」。

步驟四:計算方向指標(+DI / -DI)與 DX

+DI=Smoothed(+DM)Smoothed(TR)×100+DI = \frac{Smoothed(+DM)}{Smoothed(TR)} \times 100+DI=Smoothed(TR)Smoothed(+DM)​×100 −DI=Smoothed(−DM)Smoothed(TR)×100-DI = \frac{Smoothed(-DM)}{Smoothed(TR)} \times 100−DI=Smoothed(TR)Smoothed(−DM)​×100 DX=∣+DI−(−DI)∣+DI+(−DI)×100DX = \frac{|+DI - (-DI)|}{+DI + (-DI)} \times 100DX=+DI+(−DI)∣+DI−(−DI)∣​×100

+DI 代表向上動能占波動的比例,-DI 代表向下動能占波動的比例。DX 則衡量兩者之間的「分歧程度」。

步驟五:ADX = DX 的平滑

ADX=1N∑i=1NDXi(初始值)ADX = \frac{1}{N} \sum_{i=1}^{N} DX_i \quad \text{(初始值)}ADX=N1​i=1∑N​DXi​(初始值) ADXt=ADXt−1×(N−1)+DXtN(後續值)ADX_t = \frac{ADX_{t-1} \times (N-1) + DX_t}{N} \quad \text{(後續值)}ADXt​=NADXt−1​×(N−1)+DXt​​(後續值)

最終的 ADX 是對 DX 再做一次平滑,讓趨勢強度的讀數更穩定、不會因單日波動劇烈跳動。

不需要手算!

實作可以直接使用 Python ta 函式庫:ta.trend.ADXIndicator(high, low, close, window=14)。理解計算過程的目的,是知道兩層平滑讓 ADX 反應較慢,因此更適合確認而非預測。

ADX 數值解讀

ADX 數值趨勢強度操作建議
0–20弱勢 / 無趨勢觀望,避免進場
20–40中等趨勢趨勢正在成形
40–60強勢趨勢適合順勢操作
60–100極強趨勢趨勢極其強勁

ADX 搭配 +DI(正趨向指標)與 -DI(負趨向指標)一起使用:

  • 買入:ADX > 25 且 +DI 上穿 -DI
  • 賣出:ADX > 25 且 -DI 上穿 +DI
ADX 的真正價值

ADX 適合當濾網,不適合單獨產生方向訊號。ADX > 25 只表示趨勢強度達到設定門檻,方向仍要由 +DI、-DI 或其他條件判斷。


Day 9:Ichimoku 把多種判讀放在同一張圖

一目均衡表(Ichimoku Kinko Hyo)在同一張圖上呈現趨勢方向、動能強弱與支撐壓力,由五條線組成:

組件計算方式角色比喻
轉折線(Tenkan-sen)(9日高+9日低) ÷ 2偵察兵 — 靈敏的短期趨勢偵測
基準線(Kijun-sen)(26日高+26日低) ÷ 2將軍 — 穩重的中期趨勢錨點
先行帶 A(Senkou Span A)(轉折+基準) ÷ 2,向前位移 26 期雲帶上緣或下緣
先行帶 B(Senkou Span B)(52日高+52日低) ÷ 2,向前位移 26 期雲帶的另一緣
遲行帶(Chikou Span)當前收盤價,向後位移 26 期第二確認者
雲帶(Kumo)= 多空禁區

先行帶 A 與 B 之間形成的區域就是「雲帶」。

  • 價格在雲帶之上 → 多頭環境
  • 價格在雲帶之下 → 空頭環境
  • 價格在雲帶之中 → 方向不明,建議觀望

與單一 MA 策略的比較

相比 SMA 只告訴你「價格相對於均線在哪」,Ichimoku 同時提供了:

  1. 前瞻性:雲帶向未來延伸,讓你預判支撐與壓力位置
  2. 多維確認:轉折線/基準線交叉 + 雲帶位置 + 遲行帶,三重確認降低假訊號
  3. 內建動能判讀:觀察價格與雲帶的距離,越遠代表動能越強,靠近則代表動能衰減

代價是:訊號較為保守,交易頻率低,在震盪市場中容易錯失機會。


Day 10:一個 1.88 百萬美元帳戶歸零的案例

這一天沒有寫程式。我們讀到一位交易者使用 Imhotep 量化策略,帳戶一度突破 1.88 百萬美元,最後因止損程式碼未經測試、缺乏監控、全倉投入加上槓桿,在一夜之間歸零。

他犯的致命錯誤
  1. 使用槓桿
  2. 沒有測試止損邏輯
  3. 沒有完善的監控與告警機制
  4. 用 100% 的資金交易
  5. 當一切順利時,以為自己無敵

我的安全防護框架

參考《交易聖經》的核心理念,我歸納出三項生存原則:

原則一:讓單筆交易風險趨近於零

  • 單筆風險上限 ≤ 總資金的 1%
  • 槓桿以「實際曝險」計算,而非名義部位

原則二:盡可能讓自己存活在市場中

  • 即使連續 20 次止損,帳戶仍保有 80% 以上資金
  • 資金分為「交易資金」與「儲備資金」,儲備資金絕不動用

原則三:確保策略為正期望值

E=(W×Gˉ)−(L×Lˉ)>0E = (W \times \bar{G}) - (L \times \bar{L}) > 0E=(W×Gˉ)−(L×Lˉ)>0

其中 WWW 為勝率,Gˉ\bar{G}Gˉ 為平均獲利,LLL 為敗率,Lˉ\bar{L}Lˉ 為平均虧損。只有正期望值的策略才值得執行。

Quote

程式碼可以幫你執行邏輯,但只有你的風險意識能讓你留在場內。


七天回測的共同問題

樣本內最佳參數很難帶到樣本外

每一次參數優化都是一次與過度擬合的博弈。我們在 Day 6 的布林通道、Day 7 的 MACD、Day 8 的 ADX、Day 9 的 Ichimoku 中反覆驗證同一個道理:

樣本內的最佳參數,到了樣本外往往不再領先。

應對方式:

  1. 永遠將資料切分為樣本內(訓練期)與樣本外(驗證期)
  2. 看 Sharpe 熱力圖時,選「高原」而非「尖峰」——穩定的參數區間比單一最佳點更可靠
  3. 當樣本內 Sharpe 遠優於樣本外,就是過度擬合的紅旗

R.E.A.L 回測框架

所有回測都遵循 R.E.A.L 原則:

  • Realistic:加入手續費($0.005/股)與滑價(0.05%)
  • Evidence-based:每個 Phase 逐步驗證,不跳步
  • Avoiding Bias:signal.shift(1) 延遲一根 K 棒執行,避免 Look-Ahead Bias
  • Logged:每階段以 Markdown 記錄觀察,確保可重現

指標選擇速查表

市場狀態適合的指標不太適合的指標
明確趨勢SMA、MACD、Ichimoku布林通道(均值回歸)
區間震盪布林通道、RSIMACD、ADX
趨勢不明ADX(用來確認是否值得交易)所有訊號型指標
需要全面判斷Ichimoku(趨勢+動能+支撐壓力)單一指標
沒有萬能指標

每個指標都依賴特定市場條件。先判斷市場狀態,再決定是否使用該指標,比搜尋一個通用的「最強指標」實際。


這週留下的五條規則

  1. 簡單的策略往往更穩健。 越複雜的系統越容易在實盤中崩壞。
  2. 回測是地圖,不是領土。 資料是完美的,市場不是。
  3. 風險管理優先於一切。 先求生存,再求獲利。
  4. 落後指標不是缺陷,是特性。 多一層確認換來的是更少的假訊號。
  5. 別追求最佳,追求穩健。 Sharpe 熱力圖上的尖峰是陷阱,高原才是歸宿。

下一步

Day 11 開始測 RSI 背離與指標組合,繼續用樣本外資料和 R.E.A.L. 框架檢查結果。

目錄

七天的學習地圖逐日拆解Day 4–5:從 SMA 開始測趨勢策略Day 6:用布林通道描述波動Day 7:用 MACD 觀察動能Day 8:ADX 只衡量強度,不判斷方向Day 9:Ichimoku 把多種判讀放在同一張圖Day 10:一個 1.88 百萬美元帳戶歸零的案例七天回測的共同問題樣本內最佳參數很難帶到樣本外R.E.A.L 回測框架指標選擇速查表這週留下的五條規則
← 返回所有文章

© 2024-2026 MengNotes | 版權所有