66天量化訓練週記:從 SMA 到 Ichimoku,七天打穩技術指標地基
記錄 66 天量化交易訓練 Day 4 ~ Day 10 的學習歷程。七天內,我們從最基礎的簡單移動平均(SMA)出發,逐步探索布林通道、MACD、ADX 與一目均衡表,最終以一堂百萬美金的風險管理心法課作結。每一個指標都經過實際回測驗證,而非紙上談兵。
一、這七天的學習地圖
| 天數 | 核心主題 | 指標類型 | 學到的關鍵觀念 |
|---|---|---|---|
| Day 4 | SMA 策略 + IBKR 實作 | 趨勢追蹤 | 均線交叉、資料擷取流程 |
| Day 5 | SMA 日內交易改造 | 趨勢追蹤(短線) | 時間週期切換、SMA 參數靈敏度 |
| Day 6 | 布林通道(Bollinger Bands) | 波動率 + 均值回歸 | 95% 法則、過度擬合的代價 |
| Day 7 | MACD 黃金交叉 | 動能指標 | 落後指標特性、柱狀圖斜率濾網 |
| Day 8 | ADX 趨勢強度 | 趨勢強度濾網 | 不看方向只看力道、假訊號過濾 |
| Day 9 | Ichimoku Cloud 一目均衡表 | 全方位系統 | 五線整合、雲帶作為多空禁區 |
| Day 10 | 風險管理心法 | 心態與紀律 | 止損獨立、破產風險、正期望值 |
二、指標深度解析
Day 4–5:SMA — 一切趨勢策略的起點
簡單移動平均(SMA) 是技術分析最經典的工具。它的運算邏輯極其樸素:取過去 天收盤價的算術平均。
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 + (通常 )
- 下軌:SMA -
其中 為收盤價的標準差。
根據常態分佈,約 95% 的價格波動會落在 ±2 標準差以內。當價格突破上下軌,就進入了統計上的「尾部事件」。這不代表必定反轉,但代表這個價格已經「不太正常」了。
回測結論與反思
以 AAPL 為標的,使用「觸及下軌買入、觸及上軌賣出」的均值回歸邏輯回測十年:
| 指標 | 樣本內(2016–2021) | 樣本外(2022–2026) |
|---|---|---|
| CAGR | 25.99% | 8.85% |
| Sharpe | 1.20 | 0.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 線由下往上穿越訊號線 → 看漲動能正在匯聚
- 死亡交叉:MACD 線由上往下穿越訊號線 → 看跌動能正在發動
進階技巧:柱狀圖斜率濾網
單純的交叉訊號容易在盤整市場中被「洗」出場(whipsaw)。加入柱狀圖斜率濾網後:
- 僅在柱狀圖「上升」時允許買入
- 僅在柱狀圖「下降」時允許賣出
這層額外確認能有效減少假訊號,但也會讓你晚一步進場——動能指標的天生特性就是落後(lagging)。交易永遠是「確認度」與「時效性」之間的取捨。
Day 8:ADX — 不告訴你方向,只告訴你值不值得出手
ADX(Average Directional Index,平均趨向指數)是一個非常獨特的指標。它不像 SMA 或 MACD 告訴你該買還是該賣,而是回答一個更根本的問題:「現在有趨勢嗎?趨勢夠強嗎?」
ADX 的計算原理
ADX 並非直接從價格算出,而是經過多層加工。整個計算鏈可拆成五個步驟:
步驟一:計算趨向變動(Directional Movement)
每根 K 棒比較當前最高/最低價與前一根的差異:
簡單來說:+DM 捕捉「向上突破」的幅度,-DM 捕捉「向下突破」的幅度。
步驟二:計算真實波幅(True Range, TR)
TR 衡量的是每根 K 棒的「實際波動範圍」,考慮了跳空缺口的情況。
步驟三:平滑處理(Wilder's Smoothing)
對 +DM、-DM、TR 分別套用 Wilder 平滑移動平均(通常週期 ):
Wilder 平滑等價於 週期的 EMA。所以 ADX 14 實際上的衰減速度接近 EMA 27,比直覺上想的更「緩慢」。
步驟四:計算方向指標(+DI / -DI)與 DX
+DI 代表向上動能占波動的比例,-DI 代表向下動能占波動的比例。DX 則衡量兩者之間的「分歧程度」。
步驟五:ADX = DX 的平滑
最終的 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 > 25)時你才能上路,但你還是需要其他指標告訴你該往左還是往右。
Day 9:Ichimoku Cloud — 一張圖看天下
一目均衡表(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 期 | 第二確認者 |
先行帶 A 與 B 之間形成的區域就是「雲帶」。
- 價格在雲帶之上 → 多頭環境
- 價格在雲帶之下 → 空頭環境
- 價格在雲帶之中 → 方向不明,建議觀望
與單一 MA 策略的比較
相比 SMA 只告訴你「價格相對於均線在哪」,Ichimoku 同時提供了:
- 前瞻性:雲帶向未來延伸,讓你預判支撐與壓力位置
- 多維確認:轉折線/基準線交叉 + 雲帶位置 + 遲行帶,三重確認降低假訊號
- 內建動能判讀:觀察價格與雲帶的距離,越遠代表動能越強,靠近則代表動能衰減
代價是:訊號較為保守,交易頻率低,在震盪市場中容易錯失機會。
Day 10:百萬美金的教訓 — 風險管理心法
這一天沒有程式碼,只有一個真實故事:一位交易者打造了名為 Imhotep 的量化策略,帳戶一度突破 188 萬美元。然後因為止損程式碼未經測試、缺乏監控、全倉投入加上槓桿,一夜之間全部歸零。
- 使用槓桿
- 沒有測試止損邏輯
- 沒有完善的監控與告警機制
- 用 100% 的資金交易
- 當一切順利時,以為自己無敵
我的安全防護框架
參考《交易聖經》的核心理念,我歸納出三項生存原則:
原則一:讓單筆交易風險趨近於零
- 單筆風險上限 ≤ 總資金的 1%
- 槓桿以「實際曝險」計算,而非名義部位
原則二:盡可能讓自己存活在市場中
- 即使連續 20 次止損,帳戶仍保有 80% 以上資金
- 資金分為「交易資金」與「儲備資金」,儲備資金絕不動用
原則三:確保策略為正期望值
其中 為勝率, 為平均獲利, 為敗率, 為平均虧損。只有正期望值的策略才值得執行。
程式碼可以幫你執行邏輯,但只有你的風險意識能讓你留在場內。
三、七天回測實戰的共同發現
過度擬合是你最大的敵人
每一次參數優化都是一次與過度擬合的博弈。我們在 Day 6 的布林通道、Day 7 的 MACD、Day 8 的 ADX、Day 9 的 Ichimoku 中反覆驗證同一個道理:
樣本內的最佳參數,幾乎從不是樣本外的最佳參數。
應對方式:
- 永遠將資料切分為樣本內(訓練期)與樣本外(驗證期)
- 看 Sharpe 熱力圖時,選「高原」而非「尖峰」——穩定的參數區間比單一最佳點更可靠
- 當樣本內 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 | 布林通道(均值回歸) |
| 區間震盪 | 布林通道、RSI | MACD、ADX |
| 趨勢不明 | ADX(用來確認是否值得交易) | 所有訊號型指標 |
| 需要全面判斷 | Ichimoku(趨勢+動能+支撐壓力) | 單一指標 |
每個指標都有它擅長的市場環境。真正的功力不在於找到最強的指標,而在於判斷「現在是什麼樣的市場」,然後選用對的工具。
五、銘記的心態
- 簡單的策略往往更穩健。 越複雜的系統越容易在實盤中崩壞。
- 回測是地圖,不是領土。 資料是完美的,市場不是。
- 風險管理優先於一切。 先求生存,再求獲利。
- 落後指標不是缺陷,是特性。 多一層確認換來的是更少的假訊號。
- 別追求最佳,追求穩健。 Sharpe 熱力圖上的尖峰是陷阱,高原才是歸宿。
Day 11 開始進入 RSI 背離與更進階的策略組合。帶著這七天打下的地基,繼續前進。