迷因幣沽空策略實戰:Python 回測特朗普幣短倉 86% 的完整拆解
第 17 課・共 18 課
目錄
迷因幣波動極端、長期走勢偏向下行,恰好是沽空 Short Selling 策略的試驗場。本課筆記整理自 Algo-trading with Saleh 的教學影片,講者 Saleh 用三個經典指標組成一套只做短倉的趨勢策略,沽空特朗普迷因幣(TRUMP),並用 GPT 把規則轉成 Python 代碼實測。先說清楚:標題的「86%」是講者在特定標的、特定時段(2025 年 3 月至 9 月)的回測教學案例,不是可複製的承諾,下文會逐層拆解這個數字的構成。
學習重點
- 策略本質是順勢沽空:EMA 快慢線死亡交叉確認跌勢,RSI 高於 55 確認反彈力度,ADX 高於 20 濾走橫行市,三個條件同時成立才開空倉。
- 出場全交給 ATR:止蝕設於入場價加 1.5 倍 ATR,止賺設於入場價減 2.5 倍 ATR,盈虧比約 1.67,勝率五成已有正期望值。
- 每宗交易風險 1.5%:用 Jesse 的
risk_to_qty由可用保證金、止蝕距離與手續費反推倉位數量,止蝕觸發即虧 1.5% 本金。 - 回測 86% 的構成要細看:單一標的、單一時段、先後調整過倉位倍數與費率假設——屬樣本內結果。
- 蒙地卡羅模擬揭露運氣成分:原始回測最大回撤 -7%,但模擬中位數回撤達 -33%,原始 Sharpe 也低於模擬最佳 5% 水平。
詳細筆記
為甚麼選迷因幣沽空
講者開宗明義:他對政治沒有立場,但從交易角度,特朗普迷因幣是「很好的沽空機會」。他的理由有兩層。第一,迷因幣本身沒有實際用途,他認為這類幣在牛市過後價格會持續陰跌;第二,這隻幣因話題性被各大交易所上架,流動性充足——只要有流動性、有可捕捉的模式,方向是升是跌並不重要。他同時承認策略的明顯盲點:回測期內幣價幾乎一直下跌,策略賺錢可能只是「剛好坐在一條向下的電梯上」,若幣價進入大升浪,這套只做短倉的邏輯必須停用。
三條進場規則
講者先在 TradingView 圖表上示範規則,再交給 GPT 寫碼。進場條件全部成立才開倉:
一、EMA 死亡交叉。 快線 指數移動平均 EMA 12 必須在慢線 EMA 26 之下,代表短期走勢弱於中期走勢。這是方向過濾器,確保只在跌勢中找機會。
二、RSI 高於 55。 這條值得留意:一般短倉策略會等 RSI 超買(70 以上)才沽,講者卻只要求 RSI(14 期)高於 55 的中性偏強水平。他的邏輯是等價格反彈出現力度、但反彈尚未透支時介入,沽在反彈中而不是沽在恐慌低位。
三、ADX 高於 20。 ADX 量度趨勢強度。這是趨勢跟隨策略,橫行市中 EMA 會反覆交叉製造假訊號,所以 ADX 低於 20 的無方向市況一律不開倉。

出場與倉位管理
出場不用指標訊號,改用 ATR(平均真實波幅)量度當前波動:止蝕 = 入場價 + 1.5 × ATR,止賺 = 入場價 − 2.5 × ATR。以講者示範為例,當時 ATR 約 0.069,止蝕距離約 0.10、止賺距離約 0.17。波動大時止蝕自動拉寬、波動小時收窄,避免固定點數止蝕被正常波幅掃走。盈虧比固定約 1.67,所以即使勝率只有五成,期望值仍為正。
倉位方面,每宗交易固定風險本金的 1.5%——以一萬美元本金計,止蝕觸發即虧 150 美元,倉位數量由止蝕距離反推得出。
用 GPT 生成 Jesse 策略代碼
講者把整套規則寫成一段英文指令(只做短倉、EMA 12 低於 26、RSI 高於 55、ADX 高於 20、市價進場、風險 1.5%、ATR 止賺止蝕),交給他自己訓練的 JesseGPT 生成 Jesse 框架的策略類。生成的代碼結構清晰:指標各自定義為 property,預設 RSI 週期 14:
@property
def ema_fast(self):
return ta.ema(self.candles, 12)
@property
def ema_slow(self):
return ta.ema(self.candles, 26)
@property
def rsi(self):
return ta.rsi(self.candles)
(以上代碼摘錄自原片教學)
進場判斷與落盤邏輯濃縮在兩個方法內。should_short 回傳三條件是否同時成立;go_short 用 risk_to_qty 計算數量後以市價賣出:
def should_short(self) -> bool:
return (self.ema_fast < self.ema_slow) and (self.rsi > 55) and (self.adx > 20)
def go_short(self) -> None:
entry = self.price # market order
stop = entry + (self.atr * 1.5)
qty = utils.risk_to_qty(self.available_margin, 1.5, entry, stop, fee_rate=self.fee_rate)
self.sell = qty, entry
(以上代碼摘錄自原片教學)
開倉成功後,在 on_open_position 掛上止蝕與止賺單:
def on_open_position(self, order) -> None:
sl = self.position.entry_price + (self.atr * 1.5)
tp = self.position.entry_price - (self.atr * 2.5)
self.stop_loss = self.position.qty, sl
self.take_profit = self.position.qty, tp
(以上代碼摘錄自原片教學)

講者提醒兩個實務細節:Jesse 要求 go_long 方法必須存在,即使策略不做長倉也要留一個 pass 的空方法,否則回測會報「策略無效」;生成的代碼附帶的數量為零檢查他選擇刪除,因為數量算出零代表計算有錯,他寧願程式報錯讓自己察覺,也不要靜靜跳過。
回測結果的三次迭代
回測設定:TRUMP-USDT 永續合約、一小時圖、2025 年 3 月(該幣上市後不久)至 9 月。過程本身就是很好的風險教育:
- 初版:不計費、1.5% 風險。回報 +22%,最大回撤 -4%,勝率約 51%,Sharpe ratio 2.55。
- 倉位乘四:講者見回撤極低,把每宗交易倉位放大四倍,回報升至 +107%,回撤僅 -6%,Sharpe 不變——倉位縮放不改變策略的風險調整後表現,只同比例放大盈虧。
- 補回手續費:他發現自己誤設為零手續費,改回貼近 Binance 的水平並預留滑點後重跑,回報降至約 +86%(即影片標題數字),最大回撤約 -7%,Sharpe 仍高於 2,平均持倉約 16 小時。

之後他用 Jesse 的互動圖表逐宗交易覆核,並叫 GPT 為策略加上 EMA 與指標疊線,直接在圖上驗證每宗進場時三個條件是否真實成立——這一步是除錯與找改進方向的關鍵,但他同時警告:邊看圖邊加濾網,很容易不知不覺把策略過度擬合 Overfitting 到歷史數據上。
蒙地卡羅模擬:數字以外的真相
講者最後跑了 蒙地卡羅模擬 Monte Carlo Simulation,兩種做法都揭示了原始回測的局限:
- 打亂交易次序(200 次模擬、136 次成功執行):原始回測最大回撤 -7%,但模擬路徑的中位數回撤是 -33%。意思是同樣一批交易,只是先後次序不同,回撤可以惡劣四倍。講者坦言若自己只能承受 -15% 回撤,就不會用四倍倉位上實盤,而是改用兩倍。
- 打亂 K 線加噪音:原始回測 Sharpe 2.21,模擬中位數只有 0.61(仍為正),而模擬最佳 5% 達 2.92——原始結果反而低於最佳 5%,講者視之為「不異常」的訊號。

講者的結論是他個人認為「足以實盤」,並把策略上載到他的策略索引頁。他也坦白利益關係:影片中段推廣了他有佣金回贈的去中心化交易所註冊連結,其策略頁與 JesseGPT 亦是他的產品。另有一點要留意:講者明言這策略只為沽空迷因幣而設,對 BTC、ETH 的回測「肯定不會好」,不應把邏輯當成通用策略。
🙏 覺得內容有用?本站所有內容免費提供,使用推薦碼開戶就是支持我們繼續營運的最大鼓勵:
ZA Bank 邀請碼 P20923
—— 你享 HKD 2,000 迎新獎賞,本站獲得營運支持。
立即開戶 →
(聯盟連結|投資涉及風險,受條款及細則約束,此資料僅可於香港境內分發)
MT5 可行性速評
| 項目 | 評估 |
|---|---|
| 邏輯可移植性 | 極高。EMA、RSI、ADX、ATR 全部有 MQL5 內建函數(iMA 配合 MODE_EMA、iRSI、iADX、iATR),三條進場條件只是數值比較,ATR 止賺止蝕與固定百分比風險倉位計算亦是標準 EA 寫法,無需自寫統計元件。 |
| 平台限制 | 最大障礙是標的:MT5 券商極少提供迷因幣 CFD,TRUMP 幣幾乎找不到;主流加密貨幣 CFD 雖可雙向交易,但持倉過夜收隔夜利息(Swap),成本結構與永續合約的資金費率不同,回測假設要重訂。淨額(Netting)帳戶下同一品種只能單向持倉,多策略並行時要留意。 |
| 評級 | ⚠️ 邏輯易移植、標的難尋——指標與倉位邏輯數十行 MQL5 即可完成,但原策略的「迷因幣」前提在 MT5 生態基本不成立;搬到主流幣 CFD 又等於換了標的,原回測結果完全不能作準。 |
| MQL5 寫法提示 | 見下方示意。 |
// 示意:三條進場條件(非完整 EA)
double emaFast = iMA(_Symbol, PERIOD_H1, 12, 0, MODE_EMA, PRICE_CLOSE);
double emaSlow = iMA(_Symbol, PERIOD_H1, 26, 0, MODE_EMA, PRICE_CLOSE);
double rsi = iRSI(_Symbol, PERIOD_H1, 14, PRICE_CLOSE);
double adx = iADX(_Symbol, PERIOD_H1, 14);
// 取指標數值後:emaFast<emaSlow && rsi>55 && adx>20 即開空
// 止蝕 = 入場價 + 1.5*iATR(...),倉位 = 本金*1.5% / 止蝕距離
注意:MT5 回測同樣會過度擬合,加密貨幣 CFD 的 tick 數據質素與 Swap 模型對結果影響極大,回測曲線亮麗不代表實盤可行。
欣利克的看法
- 防坑檢查:86% 的構成要逐項問。 數字來自單一標的(TRUMP-USDT)、單一時段(2025 年 3 月至 9 月)的樣本內回測,倉位與費率假設中途手調過兩次;手續費有補計,但未計永續合約的資金費率 Funding Rate——平均持倉 16 小時,幾乎每宗交易都跨過資金費結算。加上期內幣價近乎單邊下跌,策略只是順着最順的風而行。
- 迷因幣的風險結構與一般標的不同。 極端波動令 ATR 止蝕距離拉得很闊,熱度退去後流動性又可急速乾涸,實盤滑點遠超回測假設。講者選 TRUMP 幣正因其上了大交易所,但這前提會隨時間失效。
- 沽空加密幣的執行現實比回測殘酷。 迷因幣可於幾分鐘內挾倉抽升兩三成,跳空與流動性真空中止蝕價會大幅偏離,高槓桿下更有爆倉風險。「倉位乘四」正是回撤由 -4% 經蒙地卡羅放大至中位數 -33% 的來源,倉位倍數是整套策略最敏感的旋鈕。
- 值得學的是流程而非策略。 圖表手動確認、逐行覆讀代碼、計入成本、逐宗覆核、蒙地卡羅檢視運氣——這條驗證鏈搬到任何策略都適用;12、26、55、20 這組門檻只是一輪嘗試的結果,參數敏感度原片沒有展示。
- 所有績效數字請加時間濾鏡。 +86%、-7% 回撤、Sharpe 2.2 以上等數據,全是 2025 年 3 月至 9 月單一迷因幣的回測,屬截至影片發布(2025 年 10 月)的歷史窗口示範,不應外推。
名詞解釋
- 迷因幣 Meme Coin:以網絡梗或名人話題為賣點、缺乏實際用途的加密貨幣,本策略的沽空對象。
- 沽空 Short Selling:先賣出後買回、從價格下跌獲利的操作,本策略只做這個方向。
- 永續合約 Perpetual Futures:沒有到期日的加密貨幣期貨,支援直接開空倉,本回測的交易工具。
- 資金費率 Funding Rate:永續合約錨定現貨價的定期收付機制,沽空持倉的隱藏成本或收入。
- 指數移動平均 EMA:對近期價格加權較高的均線,本策略用 12 與 26 期的交叉判斷跌勢。
- 相對強弱指數 RSI:量度價格動能的震盪指標,本策略要求 14 期 RSI 高於 55 才沽空。
- 平均趨向指數 ADX:量度趨勢強度的指標,高於 20 代表市場有方向,低於則視為橫行不開倉。
- 平均真實波幅 ATR:量度市場波動幅度的指標,本策略以 1.5 倍及 2.5 倍 ATR 設止蝕止賺。
- 蒙地卡羅模擬 Monte Carlo Simulation:隨機重組交易或數據以壓力測試回測結果穩健度的方法。
- 夏普比率 Sharpe Ratio:量度每單位風險換取多少回報的指標,本回測約 2.2 至 2.5。
- 最大回撤 Drawdown:權益由高位回落的最大幅度,原始回測 -7%、蒙地卡羅中位數 -33%。
- 過度擬合 Overfitting:策略參數過度遷就歷史數據,令回測好、實盤差的常見陷阱。
- 倉位管理 Position Sizing:決定每宗交易投入多少資金的規則,本策略固定風險 1.5%。
- 滑點 Slippage:預期成交價與實際成交價的落差,講者把費率預鬆以涵蓋此成本。
- MT5 MetaTrader 5:MetaQuotes 開發的多資產交易平台,支援 EA 自動交易與策略回測。
常見問題 FAQ
沽空策略為甚麼要求 RSI 高於 55 而不是等超買?
這是順勢反彈沽空的思路:跌勢確認後(EMA 死亡交叉),等價格反彈出現一定力度才進場,避免沽在已經急跌的低位、一進場就遇上技術反彈被掃止蝕。RSI 55 只是中性偏強的門檻,比傳統 70 超買線更早介入,代價是部分訊號會在反彈初段已觸發。門檻高低沒有標準答案,屬需要自行回測的參數。
為甚麼講者看到回撤只有 -4% 就把倉位放大四倍?
因為在固定百分比風險的框架下,倉位縮放會同比例放大回報與回撤,而 Sharpe ratio 等風險調整後指標不變。他判斷 -7% 左右的回撤在自己承受範圍內,於是放大倉位把回報由 22% 推至 86%。但蒙地卡羅模擬顯示同樣的交易序列,回撤中位數可達 -33%——倉位放大的決定是否穩妥,取決於你信原始回測還是信模擬分佈。
這套策略可以直接搬去沽空比特幣嗎?
原片講者明確表示不可以,他預期對 BTC、ETH 的回測「肯定不會好」。策略的盈利前提是標的長期陰跌而中間有規律反彈,這是迷因幣在特定階段的價格行為,主流幣的走勢結構不同,同一組門檻完全不適用。任何策略換標的都必須重新回測與驗證。
蒙地卡羅模擬的中位數回撤 -33%,是否代表策略不能用?
不一定,它提供的是決策依據而非判決。模擬顯示原始回測的 -7% 回撤帶有運氣成分——同樣的勝率與盈虧比,交易次序重排後回撤可以深得多。務實的用法是反推倉位:若你只能承受 -15% 回撤,就按模擬分佈把倉位縮至相應水平,而不是相信原始回測的單一數字。講者本人亦是用這個邏輯決定倉位倍數。
原影片
本文整理自以下影片,版權屬原創作者所有,建議配合原片觀看: