KAMA+MACD 三重確認策略:Freqtrade 一年回測 +99.96% 拆解
目錄
Quant Tactics 這條片分享一套趨勢跟蹤 Trend Following 策略:用三條不同周期的 考夫曼適應性移動平均線 KAMA 判斷趨勢排列,再用 MACD Moving Average Convergence Divergence 做動能確認,雙重條件齊集才進場。整套策略在 Python 的開源加密交易機械人 Freqtrade 上實作,以 hyperopt 調參、walk-forward 方式驗證,標的為 Binance 的 80 隻加密貨幣永續合約 Perpetual Futures。講者聲稱一年 out-of-sample 回測累計回報 99.96%、最大回撤 15.66%。
策略速覽:重現規格
| 項目 | 規格 |
|---|---|
| 投資標的 | 80 隻加密貨幣永續合約(Binance USDⓈ-M 期貨;畫面示範用 BCHUSDT) |
| Timeframe | 1 小時(hyperopt 指令 --timeframe 1h) |
| 回測期間 | 2025-03-01 至 2026-03-01(--timerange 20250301-20260301,walk-forward 的 out-of-sample 合計一年) |
| 起始資金 | 原片未交代 |
| 指標參數 | KAMA(8)、KAMA(13)、KAMA(21)(KAMA 內部快慢常數原片未交代);MACD(12, 26, 9);ATR 周期原片未交代 |
| 進場條件 | 多倉:KAMA(8) 上穿 KAMA(21)、KAMA(13) 上穿 KAMA(21)、MACD 線上穿訊號線,三者齊集後下一根 K 棒進場;空倉反向 |
| 交叉有效窗 | 交叉訊號在指定 K 棒數內有效(hyperopt 後:KAMA 窗 4 根、MACD 窗 10 根) |
| 出場條件 | 觸及止蝕或止賺平倉 |
| 止蝕 | 訊號燭收盤價減 2.5 倍 ATR(hyperopt 後乘數改為 3 倍;Freqtrade 後備 stoploss 設 −25%) |
| 止賺 | 回報風險比 2:1(止賺距離=止蝕距離 × 2) |
| 槓桿 | 1 倍(hyperopt 輸出 leverage_level: 1) |
| 其他設定 | max_open_trades = 1;trailing stop 關閉 |
| 講者聲稱結果 | 一年累計 +99.96%、最大回撤 15.66%、12 個月有 9 個月獲利、月均 5.2 宗交易、最長連輸 2 個月;同期買入持有 −43.09% |
詳細拆解
三重 KAMA:趨勢排列過濾
KAMA 與傳統 SMA、EMA 最大的分別是「自動變速」:它按市場效率比率調節平滑常數,橫行嘈雜時放慢、趨勢暢順時加快,理論上比普通均線更少被噪音觸發假交叉。關於 KAMA 的計算原理與常見用法,第 7 課的 KAMA 策略筆記有較詳細解說。
講者使用三條 KAMA 構成快慢序列:
- KAMA(8):最快線,對價格變化最敏感,提供最早訊號。
- KAMA(13):中間線,平衡敏感度與穩定性。
- KAMA(21):最慢線,負責確認趨勢方向。
當 KAMA(8) > KAMA(13) > KAMA(21),三線順序排列,定義為強勢上升趨勢;倒序排列則為下跌趨勢。8、13、21 是 Fibonacci 數列的連續三項,間距由密到疏,令三條線分別捕捉短、中、長三個尺度的走勢。這種「三線排列」設計與 Alligator、三 EMA 帶的邏輯同源,目的都是用均線之間的相對位置代替單一均線穿越,減少橫行市的反覆訊號。要留意的是:排列條件比單線穿越嚴格,進場必然較遲,換取的是假訊號較少——趨勢策略的每一個過濾,本質上都是用滯後換確定性。
MACD:動能確認層
MACD 用標準參數(12, 26, 9):MACD 線是 12 期 EMA 減 26 期 EMA,訊號線是 MACD 線的 9 期 EMA。MACD 線上穿訊號線,解讀為買入動能增強;下穿則是賣出動能增強。本片只用兩線交叉,沒有用柱狀圖(Histogram)的縮放或零軸位置做額外過濾,保持規則簡單。
策略的分工很清楚:KAMA 三線負責「趨勢方向」,MACD 交叉負責「動能時機」。兩者訊號性質不同——均線排列是狀態(持續成立),MACD 交叉是事件(瞬間發生),疊加使用可以過濾掉「趨勢對但動能未配合」的過早進場。
進場規則
做多需要三個條件全部成立:
- KAMA(8) 上穿 KAMA(21)——短線動能轉強的最早訊號;
- KAMA(13) 亦上穿 KAMA(21)——三線完成牛市排列,趨勢確認;
- MACD 線上穿訊號線——動能配合。
三個條件齊集後,在下一根 K 棒進場,避免在訊號燭未完成時追價——這同時排除了「訊號在 K 棒中途出現、收盤前消失」的重繪(Repaint)問題,是回測要誠實的基本功。做空則完全鏡像:KAMA(8) 下穿 KAMA(21)、KAMA(13) 下穿 KAMA(21)、MACD 線下穿訊號線,下一根 K 棒開空倉。


值得注意的是「交叉有效窗」這個實作細節:三個交叉極少在同一根 K 棒發生,所以程式設定了 rolling window——交叉訊號出現後,在若干根 K 棒之內仍然視為有效,等待其餘條件補齊。這個窗口長度後來成為 hyperopt 的優化對象之一,最終定為 KAMA 窗 4 根、MACD 窗 10 根。窗口愈長愈容易湊齊訊號,但進場位置也愈偏離交叉當下,這是敏感度與價格優勢之間的取捨。
風險管理:ATR 止蝕+固定回報風險比
止蝕不是固定百分比,而是用 平均真實波幅 ATR 量度市場當下波動:多倉止蝕放在訊號燭收盤價減去 2.5 倍 ATR,空倉則加在收盤價之上。波動大時止蝕自動放寬,波動小時收緊,避免在正常波幅內被掃走。ATR 的周期原片沒有交代(常見預設是 14)。
止賺用固定回報風險比 Risk-Reward Ratio 2:1:止賺距離=進場價到止蝕價距離的兩倍。2:1 意味勝率只需高於約 33%(未計費用)即可打和,是趨勢策略常見的起步設定。Hyperopt 完成後,ATR 乘數由 2.5 調整到 3,回報風險比維持 2。
優化方法:walk-forward+hyperopt
講者沒有「一次調參用到盡」,而是用 Freqtrade 內建的 hyperopt 工具,配合滾動式前瞻分析 Walk-Forward Analysis:把歷史數據切成多段,每段先用前面的數據優化參數,再立即放到緊接的 unseen 數據段測試,窗口不斷向前滾動,最後把所有 out-of-sample 段落拼成一年的成績。原片畫面可見滾動示意圖:每輪「Optimization」段落之後緊接一段「Live」測試段,四輪層層推進至當前日期。這種做法的好處是參數會隨市況更新,而且每段成績都來自策略從未見過的數據,比單次全段優化難造假。

被優化的參數有四個:KAMA 交叉有效窗、MACD 交叉有效窗、ATR 乘數、回報風險比。注意 KAMA 的 8/13/21 周期本身不在優化範圍內,屬於固定設定。Hyperopt 的 loss function 用 MultiMetricHyperOptLoss,目標是在放大利潤的同時壓低回撤,只搜尋 buy(進場)空間。
回測結果
一年 out-of-sample 測試(80 隻 Binance 永續合約,截至 2026 年 3 月的回測窗口)聲稱數字:
- 累計回報 +99.96%;同期買入持有基準 −43.09%;
- 最大回撤 15.66%;
- 單月回報介乎 −15.66% 至 +22.55%,12 個月中 9 個月獲利(75%);
- 平均每月 5.2 宗交易,最長連輸 2 個月。

月均 5.2 宗交易對一套 1 小時圖策略而言算非常低頻——三個交叉要齊集、又要 80 隻標的裡先找到排列完成者,篩選相當嚴格。講者把它包裝成「選擇性高、避免過度交易」,但反過來看,樣本數少也意味統計意義有限:一年約 62 宗交易,當中幾宗大贏家的去留,足以令整條權益曲線改觀。
月度回報分佈方面,最好一個月 +22.55%、最差 −15.66%,9 賺 3 蝕,最長連輸 2 個月。以回撤 15.66% 對回報 99.96% 計算,回撤佔回報的比例不算差,但兩個數字來自同一條曲線,本身就是用來互相包裝的——看單月波動(±15% 以上)更能反映持有過程的真實感受。
重現 Backtest 清單
自行重現這個回測需要以下資訊,原片交代情況逐項核對:
- ✅ 市場與標的:Binance 永續合約(
config_binance_futures),80 隻標的 - ⚠️ 80 隻標的確實名單:原片未交代,揀幣結果直接影響成績
- ✅ Timeframe:1 小時
- ✅ 回測窗口:2025-03-01 至 2026-03-01(walk-forward out-of-sample 合計一年)
- ✅ 指標與參數:KAMA(8)/KAMA(13)/KAMA(21)、MACD(12, 26, 9)
- ⚠️ KAMA 快慢平滑常數:原片未交代(TA-Lib 預設 2/30 屬合理推測但未明示)
- ⚠️ ATR 周期:原片未交代(常見預設 14)
- ✅ 進場條件:三交叉齊集、下一根 K 棒進場;交叉有效窗 KAMA 4 根/MACD 10 根(hyperopt 後)
- ✅ 止蝕止賺:訊號燭收盤價 ±3 倍 ATR 止蝕(原規則 2.5 倍)、回報風險比 2:1 止賺;後備 stoploss −25%
- ✅ 槓桿:1 倍(
leverage_level: 1) - ⚠️ 起始資金與每倉注碼 Position Sizing:原片未交代(
max_open_trades = 1只交代同時持倉上限) - ⚠️ 手續費與滑價:原片未交代有否計入;永續合約特有的資金費率亦無提及
- ⚠️ Walk-forward 窗口長度與滾動步幅:原片未交代
- ⚠️ Hyperopt 搜尋範圍與 epochs 數:原片未交代
- ⚠️ 完整程式碼:存在但鎖在講者的 Patreon 付費牆內,非公開
🙏 覺得內容有用?本站所有內容免費提供,使用推薦碼開戶就是支持我們繼續營運的最大鼓勵:
ZA Bank 邀請碼 P20923
—— 你享 HKD 2,000 迎新獎賞,本站獲得營運支持。
立即開戶 →
(聯盟連結|投資涉及風險,受條款及細則約束,此資料僅可於香港境內分發)
MT5 可行性速評
| 項目 | 評估 |
|---|---|
| 可移植性 | 高。MQL5 內建 iAMA(即 Kaufman Adaptive Moving Average)、iMACD、iATR,三重交叉邏輯與 ATR 止蝕止賺都是標準寫法 |
| 平台限制 | MT5 券商的加密貨幣多為 CFD 而非真永續合約,點差與隔夜利息成本結構不同;做空需對沖模式(hedging)帳戶;80 隻標的的多幣種掃描要自行寫市場掃描邏輯 |
| 評級 | ✅ 核心邏輯可直接移植,但回測環境(標的、費用)與原片差異大,結果不可直接對照 |
| MQL5 寫法提示 | 交叉有效窗可用「交叉發生後記錄 bar index,比較當前 bar 與記錄值之差」實作;止蝕止賺在開倉時以訊號燭收盤價 ±3×ATR 計算掛單 |
MT5 回測同樣會過度擬合。
防坑檢查
- 過度擬合 Overfitting:原片有正面處理——用 walk-forward 讓參數持續面對 unseen 數據,且只優化 4 個參數,自由度不算高。但 walk-forward 的窗口長度與步幅本身也是參數,原片沒有交代,無法判斷這層有沒有再被「調」過。
- 樣本外測試 Out-of-Sample:有,聲稱整段一年(2025 年 3 月至 2026 年 3 月)都是 out-of-sample 拼接結果。這是本片比一般「單次調參就展示成績」的影片可信的地方。
- 滑價 Slippage:原片未交代。加密永續合約小幣種流動性差異大,80 隻標的中長尾幣種的滑價可以吃掉不少利潤。
- 手續費與資金費率:原片未交代。月均 5.2 宗、80 隻標的的話,一年每隻標的平均不足一宗交易,費用影響相對小,但資金費率(永續合約特有成本)完全沒有提及。
- 浮誇數字:+99.96% 對 −43.09% 買入持有的對比很搶眼,但要注意基準期間是加密市場大跌的一年,趨勢策略做空剛好順風;換一個單邊上升年份,同一套策略可能明顯跑輸買入持有。月均 5.2 宗交易、一年約 62 宗樣本,統計上仍屬小樣本。
- 原片提供的資訊能否完整重現回測? 不能。80 隻標的名單、起始資金、ATR 周期、walk-forward 窗口設定、手續費滑價假設全部未交代,完整程式碼又鎖在 Patreon 付費牆後。規則層面可以自行重寫重測,數字層面無法核對。
欣利克的看法
- 這條片的方法論意識高於平均水平:walk-forward 驗證、只調 4 個參數、明確標示 out-of-sample,這些都是認真做回測的標誌。相比動輒「回測三年賺十倍」的影片,本片至少在框架上值得參考。
- 但結果仍然無法獨立驗證。完整策略檔案放在講者的 Patreon 付費牆內,講者直接從訂閱獲利——這不是說數字必然有問題,而是讀者應把「可驗證性」與「可信度」分開看待:本片給的是方法,不是可核實的成績。
- 回測窗口(2025 年 3 月至 2026 年 3 月)正值加密市場深度回調,買入持有跌逾四成。趨勢跟蹤策略在這種環境天然佔優,做空貢獻了多少回報原片沒有拆分,讀者不宜把 99.96% 當成策略的「常態表現」。
- 三交叉齊集才進場的設計把頻率壓到月均 5.2 宗,一年總樣本約 62 宗。小樣本下,連贏連輸的偶然性很高,「12 個月有 9 個月獲利」的說服力有限。
- 若真的動手重現,建議先把 ATR 周期、手續費、資金費率這三個原片沒講的變數補上,並至少分開統計多倉與空倉的貢獻,再決定這套規則值不值得繼續研究。
名詞解釋
- 考夫曼適應性移動平均線 KAMA:按市場效率自動調節平滑速度的均線,趨勢暢順時緊貼價格、橫行時放慢抗噪。
- MACD:以快慢 EMA 之差量度動能的指標,由 MACD 線、訊號線與柱狀圖組成,交叉常用作動能轉向訊號。
- 平均真實波幅 ATR:量度市場波動幅度的指標,常用於設定動態止蝕距離。
- 永續合約 Perpetual Futures:沒有到期日的加密貨幣期貨,靠資金費率錨定現貨價,支援做多與做空。
- 滾動式前瞻分析 Walk-Forward Analysis:把歷史數據切成多段「優化窗+測試窗」滾動驗證,評估參數在 unseen 數據上的表現。
- 回報風險比 Risk-Reward Ratio:預期利潤與預期虧損的比例,本策略用 2:1,即止賺距離是止蝕距離的兩倍。
- 過度擬合 Overfitting:策略參數過度遷就歷史數據,導致回測亮麗但實盤失靈的現象。
- 滑價 Slippage:預期成交價與實際成交價之間的差異,回測若忽略會高估表現。
FAQ
這套 KAMA+MACD 策略可以直接照用嗎?
不建議直接照搬。原片的回測結果來自特定的一年窗口(2025 年 3 月至 2026 年 3 月)與 80 隻加密永續合約,期間加密市場大跌,趨勢策略做空順風;換一個市況,同一套規則的表現可能完全不同。而且起始資金、ATR 周期、手續費等關鍵設定原片均未交代,嚴格來說無法完整重現。較穩妥的做法是當作學習框架,自行補齊假設重新回測。
Walk-forward 分析為甚麼比一般回測可信?
一般回測在整段歷史數據上一次過調參,最優參數往往只是「背了答案」。Walk-forward 把數據切成多段,每段只用前面的數據調參,再立刻放到後面未見過的數據測試,然後窗口向前滾動重複。參數不斷接受新數據考驗,出來的成績比較接近實盤會遇到的情況。不過窗口長度與步幅本身也是自由度,不是做了 walk-forward 就等於免疫過度擬合。
為甚麼三個交叉條件需要「有效窗口」?
因為 KAMA(8)、KAMA(13) 與 MACD 的交叉極少在同一根 K 棒同時發生。若要求三者同日出現,幾乎不會有進場訊號。有效窗口讓每個交叉在出現後的若干根 K 棒內保持「新鮮」,等其餘條件補齊。代價是進場位置會偏離最早的交叉點,窗口愈長偏離愈遠,這正是本片把它列為 hyperopt 優化參數的原因。
MT5 有沒有內建 KAMA?
有。MQL5 的 iAMA 指標就是 Kaufman Adaptive Moving Average,與本片所用 KAMA 是同一指標,配合內建的 iMACD 與 iATR,策略核心邏輯可以直接移植,不需要自行編寫指標計算。主要差異在市場層面:MT5 券商提供的是加密貨幣 CFD 而非永續合約,成本結構與標的範圍都不同,回測結果不能與原片直接比較。
原影片
本文整理自以下影片,版權屬原創作者所有,建議配合原片觀看: