一目均衡表趨勢策略:Ichimoku 五線、限價單入場與 257% 回測拆解|Quant Strategies Ep 5 筆記
第 5 課・共 18 課
目錄
Algo-trading with Saleh 的 Saleh 在片中用 一目均衡表 Ichimoku Cloud 寫了一個趨勢跟蹤策略,並逐步加入過濾條件改善回測表現。要先說明:標題上的「257%」是他特定設定下(BTC-USDT 永續合約、2022 至 2024 年、倉位規模放大四倍後)的回測教學案例數字,並非實盤成績。這條片值得學的不是那個百分率,而是「雲圖定大勢、兩線定小勢、ATR 定入場價」的組裝思路,以及每加一重過濾便重跑四個時間框架的驗證習慣。
學習重點
- 訊號結構:轉換線 Conversion Line 在基準線 Base Line 之上視為短期升勢(
small_trend);先行帶 A 在先行帶 B 之上(綠雲)視為長期升勢(big_trend);遲行線被講者直接棄用。 - 入場方式:不用市價單,改用限價單掛在現價減 1 倍 ATR 的位置,止蝕設於入場價減 2.5 倍 ATR,每單風險為可用保證金的 3%。
- 出場哲學:不設止盈,轉換線跌回基準線之下即平倉,讓利潤在強趨勢中盡量延伸。
- 過濾演進:單一條件回測幾乎無利潤 → 加雲圖方向 → 加 ADX 高於 50 → 加 Choppiness Index 低於 50,最大回撤由約 -38% 收窄至約 -7%。
- 257% 的由來:回撤夠低後,講者把倉位規模乘以 4,1 小時框架淨盈利才升至 257%、最大回撤同時升至 -27%——是槓桿化倉位調整,不是訊號本身的邊際增強。
詳細筆記
一目均衡表的五條線
一目均衡表 Ichimoku Cloud 是日本記者細田悟一於 1930 年代發表的綜合指標,一張圖同時交代趨勢方向、動力與支持阻力,預設參數為 9/26/52(源自日本市場的交易日曆)。五個組件分別是:轉換線 Conversion Line(過去 9 期最高最低價的中點,反映短期動力)、基準線 Base Line(26 期中點,反映中期方向)、先行帶 A Senkou Span A(轉換線與基準線的平均值,向前投射 26 期)、先行帶 B Senkou Span B(52 期中點,同樣向前投射 26 期),兩條先行帶圍成的著色區域就是「雲圖」(Kumo);最後是遲行線 Lagging Span(當期收盤價向後延遲 26 期繪製)。傳統讀法還會看價格與雲圖的相對位置:價格在雲上偏多、雲下偏空、跌入雲內則視為方向不明;雲帶的厚度亦被視為支持阻力的強度指標。不過本片策略沒有用到價格與雲的位置關係,只用兩組線的上下排列。
Saleh 在 TradingView 的 4 小時圖上示範時,直言遲行線「只是把價格延後畫一遍,沒有用處」,直接在設定中關掉,只留下轉換線、基準線與雲圖三樣東西。他的取態很實際:指標組件不必全用,只保留策略真正依賴的訊號。

策略規則:兩重趨勢+限價單入場
策略的第一重訊號是短期趨勢:轉換線在基準線之上,代表短期升勢,回傳 1;反之回傳 -1。做多的入場條件是 small_trend 等於 1,做空則是等於 -1。
@property
def small_trend(self):
c = ta.ichimoku_cloud(self.candles) # 預設 9/26/52
if c.conversion_line > c.base_line: # 轉換線在基準線之上
return 1 # 短期升勢
return -1 # 短期跌勢
(以上程式碼摘錄自原片教學,基於 Jesse 框架。)
入場方式是全片最有意思的設計。Saleh 觀察到一個現象:當入場條件成立時(雲圖轉綠、轉換線升越基準線),價格多數會先小幅回落,而不是立刻起飛。因此他放棄慣用的市價單,改用限價單 Limit Order,掛在現價減 1 倍 ATR 的位置等價格回落成交。止蝕設於入場價減 2.5 倍 ATR,倉位用 Jesse 的 risk_to_qty 工具函數反推,把每單最大虧損鎖定在可用保證金的 3%(風險承受力較高者可設 5%,他自用 3%),並計入交易所費率。做空完全鏡像:入場價為現價加 1 倍 ATR,止蝕為入場價加 2.5 倍 ATR。
def go_long(self):
entry = self.price - ta.atr(self.candles) # 限價單:低於現價 1 ATR
stop = entry - ta.atr(self.candles) * 2.5 # 止蝕:再低 2.5 ATR
qty = utils.risk_to_qty(self.available_margin, 3,
entry, stop, fee_rate=self.fee_rate)
self.buy = qty, entry
(以上程式碼摘錄自原片教學。)
他特別提醒一個框架細節:用市價單進場時,should_cancel_entry 回傳甚麼都不要緊;但用限價單掛單等成交時,這個方法必須回傳 True,讓框架在條件失效時自動取消未成交的掛單,否則舊訊號的掛單會殘留在市場。

止蝕單在開倉後經 on_open_position 提交:多倉的止蝕價為持倉入場價減 2.5 倍 ATR,空倉則加回去。出場方面,策略完全不設止盈單——Saleh 的說法是「想讓趨勢跑多久就跑多久」。具體做法是在 update_position 中監察入場條件是否仍然成立:多倉持有期間,一旦轉換線跌回基準線之下(small_trend 變為 -1),即調用 self.liquidate() 全部平倉;空倉反之。
def update_position(self):
if self.is_long and self.small_trend == -1:
self.liquidate() # 轉換線跌穿基準線:趨勢完結,離場
elif self.is_short and self.small_trend == 1:
self.liquidate()
(以上程式碼摘錄自原片教學。)
回測第一輪:單一條件注定不合格
回測設定:Jesse 框架、Binance 永續合約 BTC-USDT、2022 年 1 月 1 日至 2024 年 1 月 1 日。講者解釋選這兩年,是因為期間涵蓋了一個熊市和一個「算是牛市」的階段,對趨勢策略來說是有代表性的考驗。他同時開四個分頁,分別跑 15 分鐘、30 分鐘、1 小時、4 小時四個時間框架。
第一輪結果:1 小時框架已是四者中最好,但淨盈利只有約 8%,最大回撤卻達 -38%——賺得少、跌得深,風險回報完全不成比例。Saleh 直言「相當差勁」,並補充一個他視為常識的判斷:單一入場條件的策略幾乎不可能盈利,至少要兩重以上條件互相配合。值得留意他的反應不是即時調參數(例如改雲圖的 9/26/52 或 ATR 倍數),而是先加一重性質不同的訊號;前者只是把同一組數字磨到貼合歷史,後者才是結構上的改進。這句話其實點出了全片的結構——接下來的每一步,都是為訊號加「確認」。
逐步加過濾:雲圖方向、ADX、Choppiness
第一重過濾是長期趨勢,講者命名為 big_trend:先行帶 A 在先行帶 B 之上(即雲圖為綠)視為長期升勢,回傳 1;反之回傳 -1。寫法與 small_trend 幾乎一樣,只是比較的對象由轉換線/基準線換成兩條先行帶。入場條件改為大小兩重趨勢同向才開倉——短期訊號負責時機,長期訊號負責方向過濾,這是趨勢策略的標準分工。他順帶示範了 Jesse 當時新推出的 Benchmark 頁面:把所有分頁的回測指標(淨盈利、最大回撤、各種比率)集中在同一頁對照,按一個按鈕即可重跑全部測試,省去在四個分頁之間來回切換重跑。加入雲圖方向後,1 小時框架仍是最佳,但講者注意到一個趨勢策略的老問題:一進入橫行市(ranging market),策略便「被屠宰」,轉換線與基準線在窄幅區間內反覆交叉,假訊號不斷觸發止蝕,盈虧互相抵銷之餘還要白白支付手續費。
第二重過濾針對橫行市:平均趨向指數 ADX 必須高於 50,確認市場有足夠趨勢強度才開倉。這是講者慣用的過濾器。加入後重跑:4 小時、1 小時、30 分鐘框架的盈虧由負轉正,15 分鐘仍然虧損;論淨盈利以 1 小時最佳,論最大回撤則以 30 分鐘最淺。
第三重過濾用上他在前一條影片發現的波動雜亂指數 Choppiness Index,要求數值低於 50。他特別提醒這個指標的邏輯與 ADX 相反:ADX 要數值高(波動充足),Choppiness 則要數值低(走勢不雜亂、隨機性少),因為量化策略的工作是在市場中尋找規律,而隨機噪音是規律的敵人。加入後的效果是全場最戲劇性的一幕:30 分鐘與 1 小時框架的淨盈利上升之餘,最大回撤大幅收窄至 -6.3% 與 -7.7%,夏普比率同為 1.2,而他最看重的卡瑪比率 Calmar Ratio(因為把最大回撤計算在內)達到 2.9。

倉位乘四:257% 的由來
最後一步不是改訊號,而是改倉位。Saleh 的推理是:最大回撤只有約 -7%,而他個人的風險承受上限是 -30%,中間有很大空間,於是把倉位計算中的可用保證金直接乘以 4。重跑結果:1 小時框架淨盈利 257%、最大回撤 -27%;30 分鐘框架淨盈利 166%、最大回撤 -23%。他指出夏普與卡瑪比率維持不變,因為這些比率本來就是盈利相對回撤的比例,倉位同步放大時分子分母一齊變。

至於 1 小時與 30 分鐘哪個較好,講者沒有下結論——前者總利潤較高,後者淨值曲線在他看來較平穩,他把選擇留給觀眾。他明確否決的是 15 分鐘(結果不好)與 4 小時(交易次數太少,統計意義不足)。片尾他表示會把策略源碼、其他時段與以太坊等標的的回測結果上載到其網站的策略目錄。本課之前的雲圖剝頭皮策略|第 9 課同樣以一目均衡表為核心,可對照兩者在持倉時間與出場邏輯上的差異。
🙏 覺得內容有用?本站所有內容免費提供,使用推薦碼開戶就是支持我們繼續營運的最大鼓勵:
ZA Bank 邀請碼 P20923
—— 你享 HKD 2,000 迎新獎賞,本站獲得營運支持。
立即開戶 →
(聯盟連結|投資涉及風險,受條款及細則約束,此資料僅可於香港境內分發)
MT5 可行性速評
| 項目 | 評估 |
|---|---|
| 邏輯可移植性 | 高。MT5 內建 iIchimoku,一個句柄取齊轉換線、基準線、先行帶 A/B 與遲行線五個緩衝區;iATR、iADX 同為內建,限價單(ORDER_TYPE_BUY_LIMIT)、止蝕掛單與反向交叉平倉全是標準 EA 結構。 |
| 平台限制 | Choppiness Index 無內建指標,須自寫自訂指標或找程式庫;先行帶在圖上向前偏移 26 期,讀取緩衝區時要留意位移對應的 K 線位置,新手最易在這裏出錯。加密貨幣永續合約亦非一般 MT5 券商標的,所有閾值移植後須重新驗證。 |
| 評級 | ✅ 核心邏輯可完整移植,唯一要自行實現的是 Choppiness Index 過濾器(工作量有限);評級不達滿分的原因不在平台,而在策略本身參數全是看著回測結果調校,移植只解決「能否執行」,不解決「是否可信」。 |
| MQL5 寫法提示 | 見下 |
int ichi = iIchimoku(_Symbol, PERIOD_CURRENT, 9, 26, 52);
double tenkan[], kijun[], spanA[], spanB[];
CopyBuffer(ichi, TENKANSEN_LINE, 0, 1, tenkan); // 轉換線
CopyBuffer(ichi, KIJUNSEN_LINE, 0, 1, kijun); // 基準線
CopyBuffer(ichi, SENKOUSPANA_LINE, 0, 1, spanA); // 雲帶 A(注意前移 26 期)
CopyBuffer(ichi, SENKOUSPANB_LINE, 0, 1, spanB); // 升勢:tenkan>kijun && spanA>spanB
注意:即使移植成功,MT5 策略測試器跑出的回測同樣會過度擬合——ATR 倍數 2.5、ADX 閾值 50、CHOP 閾值 50、倉位乘四,全是看著結果調出來的參數,換平台不解決方法論問題。
欣利克的看法
- 防坑檢查一:257% 的構成要拆開看。這數字來自「倉位乘四」後的回測讀數,不是訊號本身的邊際;未放大前,1 小時框架兩年淨盈利約 47.5%,那才是「原材料」成績。同樣操作套在虧損策略上,虧損亦放大四倍;把槓桿化回測報酬當策略實力的講法,先除回倍數再評估。
- 防坑檢查二:參數全是看著結果調的。ATR 倍數 2.5、ADX 50、Choppiness 50、倉位乘四,全是回測後才決定的數字,屬教科書式過度擬合;片中無樣本外驗證,257% 能否重現沒有證據。預設參數 9/26/52 源自日本股市日曆,原封不動套在加密貨幣上,嚴謹性同樣存疑。
- 防坑檢查三:Ichimoku 在橫行市必然失效。講者自己承認趨勢策略進入橫行市便「被屠宰」,要靠 ADX 與 Choppiness 補救;但過濾器同屬滯後指標,市況轉換的空窗期仍會虧損。把一目均衡表當「一圖走天涯」的完整系統,是初學者常見誤解。
- 值得學的部分:Saleh 先觀察到訊號成立後價格多先回落,才改用限價單;每加一重過濾便重跑四個時間框架對照;明確否決交易次數太少的 4 小時框架。先問「為甚麼」再加條件,次序正確。
- 時效提醒:回測數據截至影片拍攝前(2024 年 10 月),回測期為 2022 至 2024 年的加密貨幣週期;截至 2026 年中,市場結構與費率環境已有變化,片中數字不代表當前條件。本文僅為學習記錄,不構成任何買賣建議。
名詞解釋
- 一目均衡表 Ichimoku Cloud:由轉換線、基準線與兩條先行帶組成的綜合指標,雲圖同時顯示趨勢方向與支持阻力;本策略用兩線交叉定短期趨勢、雲圖顏色定長期趨勢。
- 平均真實波幅 ATR:量度每根 K 線平均波動範圍;本策略的限價單掛在現價減 1 倍 ATR,止蝕設於入場價減 2.5 倍 ATR。
- 限價單 Limit Order:指定價格或更佳價格才成交的掛單;講者因觀察到訊號成立後價格多先回落,放棄市價單改用限價單入場。
- 平均趨向指數 ADX:量度趨勢強度而不分方向;本策略要求高於 50 才開倉,剔除橫行市。
- 波動雜亂指數 Choppiness Index:量度走勢雜亂程度,邏輯與 ADX 相反;本策略要求低於 50,雙重確認市況適合趨勢跟蹤。
- 卡瑪比率 Calmar Ratio:年化回報除以最大回撤;講者視之為最重要指標,加過濾後達 2.9。
- 最大回撤 Drawdown:淨值由高位回落的最大幅度;講者以 -30% 為個人上限,據此決定倉位可乘大的空間。
- 過度擬合 Overfitting:策略過度遷就回測數據的噪音;本片所有閾值均為看著回測結果調校,屬高風險案例。
常見問題
一目均衡表的預設參數 9/26/52 可以改嗎?
可以,但要有依據。這組數字源自日本市場每週六個交易日的日曆(9 約等於一週半、26 約等於一個月、52 約等於兩個月),套在 24 小時交易的加密貨幣或其他市場上並無特殊地位。本片講者直接使用預設值,理由是「懶得改」,讀者若要調整,應以樣本外測試驗證,而非在回測中反覆試出最好看的數字。
為甚麼講者用限價單而非市價單入場?
因為他觀察到訊號成立的一刻(轉換線升越基準線、雲圖轉綠),價格多數會先小幅回落。用市價單等於在短期高位追入,掛限價單在現價減 1 倍 ATR 的位置,成交價與止蝕距離都較有利。代價是部分訊號因價格不回落而錯過成交,這是入場價與成交率之間的取捨。
257% 回測報酬可以在實盤重現嗎?
沒有任何證據支持。這個數字是 2022 至 2024 年 BTC-USDT 永續合約的回測結果,且經過倉位放大四倍;片中所有閾值(ATR 倍數、ADX 50、CHOP 50)都是看著回測結果調校的,沒有樣本外驗證,屬典型的過度擬合案例。實盤還要面對滑點、資金費率與掛單成交率等回測未必如實反映的因素。
ADX 與 Choppiness Index 有甚麼分別?
兩者都量度市況是否適合趨勢策略,但方向相反:ADX 數值越高代表趨勢越強(本片要求高於 50);Choppiness Index 數值越高代表走勢越雜亂(本片要求低於 50)。講者同時使用兩者,等於從「趨勢強度夠」與「隨機噪音少」兩個角度雙重確認,屬保守做法,代價是進一步減少交易次數。
原影片
本文整理自以下影片,版權屬原創作者所有,建議配合原片觀看: