「100% 勝率」策略拆解:馬丁格爾的數學原理、Python 實現與三大疑問|Quant Strategies Ep 11 筆記
第 11 課・共 18 課
目錄
這是本課程系列的「防坑示範課」。Algo-trading with Saleh 的 Saleh 在片中展示一個回測勝率 100% 的 Python 策略,但他同時坦白交代:這策略本質是源自賭場的馬丁格爾 Martingale 加注法,他自己 2018 年實盤操作了 48 小時,結局是整個帳戶強制平倉。這篇筆記既整理他的教學內容(數學原理、Jesse 框架寫法、回測設定),也分析「100% 勝率」這個數字為何應該存疑。
學習重點
- 「100% 勝率」的來源是馬丁格爾加注:價格每逆向一段距離就把倉位加倍,拉低平均成本,等小幅反彈便整體獲利離場——贏的次數可以極多,但一次失敗就是爆倉。
- 策略用 Jesse 框架實現:布林帶下軌掛限價買單,止盈設在平均成本加兩倍標準差,加註單設在現價減兩倍標準差,全部掛單、不設止蝕。
- 講者回測(2025 年首四個月 SOL-USDT 小時圖等設定)錄得勝率 100%、淨盈利 186%,但最大回撤達 -43%,且需用盡 100 倍槓桿。
- 講者自爆 2018 年在 BitMEX 的實盤紀錄:連贏 48 小時後被強制平倉,全倉蒸發——「你會一直贏,直到你輸的那一次」。
- 原片沒有討論過度擬合、樣本外驗證與滑點;把回測期延長一個月,策略便因保證金不足而無法繼續,這比任何績效數字都值得學。
詳細筆記
策略的數學原理:馬丁格爾加注
Saleh 開宗明義:這策略原本是賭博技巧,風險極高,「至少理論上行得通」。他用一個簡化例子解釋數學。假設一枚 BTC 價格 100 美元,買入一枚,成本 100 美元。若價格升至 110 美元賣出,賺 10 美元,沒有特別之處。
關鍵在價格逆向時的處理。若價格跌至 80 美元,不止蝕,反而加買一枚——倉位變成兩枚,總成本 180 美元,平均成本拉低至 90 美元。此時價格只需回升至 90 美元便打和,回升至 100 美元(當初的入場價)已賺 20 美元。若價格繼續跌至 60 美元,再加買兩枚,倉位變四枚,總成本 300 美元,平均成本 75 美元——價格反彈至 85 美元已賺 40 美元,連當初入場價都不用回到。
Saleh 稱這是策略的「美妙之處」:不需要價格完全順著你走,甚至價格越逆向、加註越多,最終反彈時賺得越多。但這說法有一個隱藏前提——價格最終要有「至少一點」反彈,而且你要有無限資金承接每一次加註。這兩個前提在現實都不成立,正是全片的伏筆。
手續費的處理:掛單回贈
馬丁格爾要頻繁掛單加註,手續費本應是重大成本。Saleh 交代他 2018 年實盤時用的是 BitMEX,當年該交易所向掛單方(Maker)提供手續費回贈;由於策略全部使用限價單,他不但不用付費,反而每單收取回贈——即使在成本價原價平倉,計及回贈仍有微利。這是該策略在當年環境下能運作的重要條件,亦提示讀者:回測中的手續費模型(費率、Maker/Taker 之別)可以直接改變策略的生死,不同交易所、不同時期的費率結構差異極大。
Python 實現(Jesse 框架)
策略在 Jesse(開源 Python 加密貨幣交易框架)上編寫,只做長倉。入場規則刻意簡化到極致——should_long 直接回傳 True,即策略一啟動就嘗試開倉;入場價掛在布林帶下軌,首單只動用可用保證金的一成,因為要預留資金給後續加註單(摘錄自原片教學):
def should_long(self) -> bool:
return True
def go_long(self):
entry = self.bb.lowerband
qty = utils.size_to_qty(self.available_margin * 0.10,
entry, fee_rate=self.fee_rate)
self.buy = qty, entry
開倉後同時掛出兩張單:止盈單設在「當前倉位平均成本 + 兩倍標準差」,平掉整個倉位;加註單設在「現價 − 兩倍標準差」,數量等於現有倉位——成交後倉位正好加倍,這就是馬丁格爾的核心一行(摘錄自原片教學):
def _submit_exit_orders(self):
# 止盈:平均成本 + 2 倍標準差
tp_price = self.position.entry_price + self.std * 2
self.take_profit = self.position.qty, tp_price
# 加註單:現價 − 2 倍標準差,數量 = 現有倉位(即加倍)
next_entry_price = self.price - self.std * 2
next_entry_qty = self.position.qty
self.buy = next_entry_qty, next_entry_price

截圖出自原片(Algo-trading with Saleh):on_open_position 內的止盈與加註單邏輯。
由於加註可能發生多次,Saleh 把上述邏輯抽成 _submit_exit_orders(),除了在 on_open_position 執行,也在 on_increased_position(倉位增加時)再執行一次,確保每次加註後止盈價與下一張加註單都按新的平均成本重新計算。另外,因為入場是限價單而布林帶下軌會移動,他把 should_cancel_entry 設為恒真:未成交的掛單每根 K 線取消重掛,讓入場價永遠貼著最新的下軌。
回測結果:100% 勝率的由來
回測設定:Binance 永續合約、SOL-USDT、槓桿開盡 100 倍(Saleh 明言這策略「資金越多越好」,所以槓桿用到交易所上限)。小時圖、2025 年首四個月:淨盈利 186%,最大回撤 -43%,勝率 100%,夏普比率 2.66。兩小時圖:勝率仍 100%,夏普 2.54。五分鐘圖(縮短至 9 日):19 單全贏,盈利逾 5%,夏普 7.74。換標的到 ETH-USDT 小時圖一個月:盈利 90%,回撤 -10%,勝率又是 100%。互動圖表顯示部分交易連續加註六、七次才反彈離場,而這些「越跌越買」的單恰恰獲利最豐。

截圖出自原片(Algo-trading with Saleh):五分鐘圖回測績效,勝率 100%、夏普比率 7.74、連贏 19 單。
請注意這些數字的共同特徵:勝率 100% 但回撤動輒 -10% 至 -43%,而且回測期最長只有四個月、最短只有九日。勝率之所以是 100%,是因為策略根本沒有止蝕——不認輸的單不會記作敗仗,只會以浮虧形式躺在回撤欄裏,等待反彈;反彈不來的那一次,就是帳戶的終點。
所謂 live results:48 小時連贏,然後爆倉
Saleh 隨後展示他 2018 年在 BitMEX 的真實交易紀錄(標的 XBTUSD,全部經 API 以限價單執行)。交易明細清楚可見馬丁格爾的指紋:25、50、100、200、400、800、1600、3200——每次加註手數翻倍,方向一致,直至整體反彈平倉;手續費一欄是負數(-0.025%),即交易所倒貼回贈。

截圖出自原片(Algo-trading with Saleh):2018 年 6 月 BitMEX 成交明細,可見手數不斷翻倍、手續費為負值(回贈)。
這樣的操作持續了 48 小時——然後紀錄最後一行寫著「Liquidation」。整個帳戶被強制平倉,全數蒸發。Saleh 的總結一針見血:這策略「你會一直贏,直到你不再贏;而你不贏的那一次,不是輸少許,是直接爆倉,遊戲結束。」

截圖出自原片(Algo-trading with Saleh):成交紀錄末段,最後一筆為強制平倉(Liquidation)。
為何注定失敗:資金需求的幾何級數
Saleh 用一張資金表解釋死穴。假設本金 500 美元、100 倍槓桿,購買力 50,000 美元;BTC 價格 500 美元,首單買一枚。之後價格每跌 20 美元加註一次、手數翻倍:第二步累計投入 980 美元,第三步 1,900 美元……到第七步,累計投入已達 48,620 美元,幾乎用盡 50,000 美元購買力;第八步需要累計約 92,000 美元——資金鏈到此斷裂。換言之,區區 500 美元本金,價格單向跌約 160 美元(每步 20 美元、共八步)就足以令策略無法執行。加註策略的資金需求以幾何級數增長,而沒有人擁有無限資金。
更有說服力的是他即場做的實驗:把五分鐘圖那個「19 單全贏、夏普 7.74」的回測,結束日期僅僅延長一個月,回測直接報錯——加註單的價值超出可用保證金。他解釋,實盤中等同情況是加註單無法送出,只能抱著越跌越深的重倉,直至強制平倉。同一策略、同一參數,只是把觀察窗拉長少許,「完美」便立即現形。
加止蝕可行嗎?講者的結論
有觀眾自然會問:加個止蝕、輸了就認賠重來,不就行了?Saleh 明確勸退。理由有二。第一,這策略利潤最豐的恰恰是逆向加註最多的單,若一早止蝕離場,那些亮麗數字根本不會出現——止蝕與馬丁格爾在邏輯上互斥,加了止蝕,它就不再是那個「100% 勝率」的策略。第二,不設止蝕的系統在實盤有無數死因:斷網、交易所故障、程式錯誤,任何一項發生時,你輸的不是一單,而是整個帳戶。他的原則是虧損要短、盈利要長,這策略恰恰相反,「違背我對風險管理的所有價值觀」。他最後表示,這始終是一個有趣的均值回歸實驗,當中概念或可作為日後開發正經均值回歸策略的素材。
🙏 覺得內容有用?本站所有內容免費提供,使用推薦碼開戶就是支持我們繼續營運的最大鼓勵:
ZA Bank 邀請碼 P20923
—— 你享 HKD 2,000 迎新獎賞,本站獲得營運支持。
立即開戶 →
(聯盟連結|投資涉及風險,受條款及細則約束,此資料僅可於香港境內分發)
MT5 可行性速評
| 項目 | 評估 |
|---|---|
| 邏輯可移植性 | 高。布林帶、標準差均有內建函數(iBands、iStdDev),限價單用 Buy Limit,加註與整體止盈屬簡單倉位管理邏輯,無 Python 特有依賴。 |
| 平台限制 | MT5 淨額帳戶(Netting)下同方向加註會自動合併倉位,平均成本計算要自行維護;對沖帳戶(Hedging)則須確保平倉單正確對應。加密貨幣 100 倍槓桿在一般外匯券商不適用,保證金與強平規則因券商而異。 |
| 評級 | ⚠️ 程式邏輯可完整移植,但策略本身的爆倉風險不會因更換平台而消失;淨額帳戶的倉位合併增加實作出錯空間。只宜當回測練習,不應實盤。 |
| MQL5 寫法提示 | 見下 |
double lower[];
int bb = iBands(_Symbol, PERIOD_CURRENT, 20, 0, 2.0, PRICE_CLOSE);
CopyBuffer(bb, LOWER_BAND, 0, 1, lower);
// 以 Buy Limit 掛於下軌;成交後在 OnTradeTransaction 內
// 按新平均成本重設整體 TakeProfit,並掛出下一張手數加倍的 Buy Limit
// (須自行記錄加註層數,防止資金鏈斷裂時無止損持有重倉)
注意:即使移植成功,MT5 策略測試器跑出的回測同樣會過度擬合——換平台不解決方法論問題,樣本外驗證與壓力測試一項都不能少。
欣利克的看法
- 概念釐清——勝率與期望值是兩回事:100% 勝率只代表「認輸的單從不記帳」,不代表賺錢。本策略的期望值結構是「贏無數次小錢、輸一次全部」,一次強制平倉便抹走 48 小時的全部盈利兼本金。評估任何策略,先看期望值與最大回撤,勝率放最後。
- 常見誤區——「無敗績」不等於「無風險」:不設止蝕的系統,敗仗不會出現在勝率欄,而是藏在回撤欄與爆倉風險裏。看到 100% 勝率,第一個問題應是「止蝕在哪裏」,第二個是「樣本有幾多單、覆蓋幾耐」——本片最長回測四個月、最短九日、實盤 48 小時,全部屬小樣本。
- 原片缺失的方法論:全片沒有提及過度擬合、樣本外驗證或滑點。回測期只是 2025 年特定數月、特定標的,無從得知同一參數在其他年份是否成立;唯一一次「延長觀察窗」的實驗(五分鐘圖多跑一個月)立即失效,恰恰示範了為何樣本外驗證不可省略。
- 觀點比較:值得肯定的是 Saleh 的誠實——他公開自己的爆倉紀錄、明言勸退,比坊間只展示盈利截圖的「策略賣家」負責得多。但影片附帶交易所註冊連結與抽獎推廣,存在利益關係,相關內容本筆記不轉載。
- 時效提醒:回測數據截至 2025 年上半年,實盤紀錄為 2018 年 BitMEX 的 Maker 回贈環境,兩者均有時效性;截至 2026 年中,各交易所費率與槓桿上限已多番調整,任何歷史數字都不代表當前條件。本文僅為學習記錄,不構成任何買賣建議。
名詞解釋
- 馬丁格爾 Martingale:源自賭博的加注方法,每次虧損後注碼翻倍,博一次反彈收復全部損失;資金需求以幾何級數增長,是本課策略的核心。
- 布林帶 Bollinger Bands:由移動平均線加減兩倍標準差組成的三軌指標,本策略以其下軌作限價入場參考。
- 勝率 Win Rate:盈利交易佔總交易次數的百分比;不設止蝕的系統可以做出 100% 勝率,卻不代表有利可圖。
- 期望值 Expectancy:平均每單交易的預期盈虧,由勝率與平均盈虧比共同決定;「贏小蝕大」的系統即使勝率極高,期望值仍可能為負。
- 回測 Backtesting:以歷史數據檢驗交易規則的過程;本課示範了回測期稍為延長便令策略失效的經典案例。
- 過度擬合 Overfitting:策略過度遷就回測數據的噪音,績效無法在未來重現;單一標的、單一時段的亮麗回測是高危訊號。
- 樣本外驗證 Out-of-Sample Testing:預留一段開發期間不碰的數據,策略定稿後才用來檢驗,是防範過度擬合的基本紀律。
- 最大回撤 Drawdown:帳戶淨值由高位回落的最大幅度;本策略回測勝率 100% 之餘,回撤卻達 -43%。
- 強制平倉 Liquidation:槓桿倉位虧損觸及維持保證金下限時被交易所強行平倉;講者 2018 年實盤的最終結局。
- 槓桿 Leverage:以保證金放大購買力的機制;本策略開盡 100 倍,令價格小幅逆向已足以耗盡資金。
- 樣本數 Sample Size:統計結論所需的觀察數量;九日至四個月的回測、48 小時的實盤,均不足以斷定策略長期有效。
- 滑點 Slippage:預期成交價與實際成交價的差異;極端行情下的強制平倉滑點可以極大,原片未有討論。
常見問題 FAQ
100% 勝率的策略可信嗎?
數字本身可以是真的,但幾乎必定有隱藏條件:不設止蝕(虧損的單不平倉就不算輸)、樣本太小、或把浮虧藏在回撤裏。本課的策略三者皆中——回測 100% 勝率的同時,回撤達 -43%,講者實盤 48 小時後更整倉爆倉。判斷策略優劣應看期望值、回撤與樣本規模,而非單看勝率。
馬丁格爾策略在數學上為何注定失敗?
因為資金需求以幾何級數增長而資金永遠有限。以片中例子計,500 美元本金配 100 倍槓桿,加註到第七步已用盡購買力,第八步便無以為繼。只要「連續逆向的步數」超過資金能承受的層數——這件事只要時間夠長必然發生——結局就是強制平倉,一次虧損抹走之前全部盈利。
既然講者自己爆過倉,這條影片還有甚麼學習價值?
價值正在於它是一個完整的反面教材:數學原理講得清楚(加註如何拉低成本)、程式寫法可觀摩(Jesse 的掛單與倉位管理)、而「回測期僅延長一個月便無法完成」的實驗更是樣本外驗證的最佳示範。學的是回測技術與風險思維,不是策略本身。
布林帶下軌買入不是均值回歸嗎,為何會出事?
觸及下軌只代表價格相對近期均值偏低,並不保證反彈——單邊跌市中價格可以沿下軌不斷下行。均值回歸策略本身並非不可行,問題在於本策略用「不斷加倍、不設止蝕」去執行它,把正常的策略失效風險放大成帳戶清零風險。Saleh 本人亦表示,會考慮把當中的均值回歸概念改良成有止蝕的正經策略。
原影片
本文整理自以下影片,版權屬原創作者所有,建議配合原片觀看: