回測軟體:如何挑選、使用並值得信賴
回測是連接你所相信的想法與你願意投入資金的策略之間的橋樑。選錯軟體,你得到的是一條漂亮的資金曲線,卻在實盤第一週就崩塌。本指南涵蓋了真正重要的標準、會膨脹表觀表現的陷阱,以及把研究轉化為可部署程式碼(或無程式碼)的工作流。

回測是連接你所相信的想法與你願意投入資金的策略之間的橋樑。選錯軟體,你得到的是一條漂亮的資金曲線,卻在實盤第一週就崩塌。本指南涵蓋了真正重要的標準、會膨脹表觀表現的陷阱,以及把研究轉化為可部署程式碼(或無程式碼)的工作流。
回測軟體實際做什麼
回測器在歷史資料上模擬你的規則,並回報原本會發生什麼。給定進場條件、出場條件、部位大小和停損,它會輸出交易清單、資金曲線以及統計指標:CAGR、最大回撤、夏普、索提諾、勝率、獲利因子、曝險。
高品質工具不只是畫曲線。它們匯入精確的市場資料,對滑價和點差進行成交建模,處理組合規則與風險控制,並讓你檢視交易與不同行情階段的行為。玩具與嚴肅回測器之間的差別在於真實感 — 模擬與你實盤實際面對的條件的貼合程度。
選擇合適工具的八條標準
| 標準 | 需要核實的內容 | 警示訊號 |
|---|---|---|
| 資料品質 | 無倖存者偏差的股票資料,外匯/加密的逐筆或精確的日內資料,股息調整 | 資料來源無文件 |
| 成交真實感 | 可設定的滑價、點差、訂單類型、部分成交、延遲 | 僅假設按收盤價成交 |
| 速度 | 回測以秒級而非小時級完成 | 簡單規則也要跑一個小時 |
| 表達力 | 能結合價格、指標、基本面、新聞、另類資料 | 鎖定在一小組指標內 |
| 研究到實盤 | 同一邏輯無需重寫即可部署 | 在工具A回測,在工具B實盤 |
| 診斷能力 | 交易清單、熱力圖、參數敏感性 | 僅有彙總統計,無交易級細節 |
| 易用性 | 面向非工程師的無程式碼或低程式碼,面向工程師的SDK | 在產出結果前學習曲線陡峭 |
| 成本與生態 | 價格與你的規模匹配,有範本社群 | 按測試收費扼殺迭代 |
選擇能縮短你的迭代循環的工具。最好的回測器是你每週真正用來評估新想法的那一個。
現代工作流
專業的研究大致遵循下面的順序。跳過步驟,就意味著發布一個會向你撒謊的回測。
- 提出一個可證偽的假設。 「當2小時RSI升至50以上,且2小時和8小時的Supertrend為多頭時,EURUSD的多頭在扣除費用後具有正期望值。」
- 定義資產範圍與時間框架。 具體的資產、具體的K線、具體的日期。至少保留30%的歷史資料用於驗證。
- 將規則與風險控制程式化。 進場、出場、停損、停利、部位大小、組合上限。
- 執行基線測試。 現實的滑價、佣金、延遲。記錄表現與失敗模式。
- 進行樣本外驗證。 凍結規則並在預留的歷史資料上執行。表現的衰退應少於三分之一。
- 檢驗穩健性。 前向滾動、參數掃描、對交易序列的蒙地卡羅。
- 模擬交易。 用即時資料和模擬訂單進行兩到四週。捕捉靜態回測會漏掉的維運問題。
- 小規模部署。 第一個月按目標規模的25%執行。監控滑價與成交品質與回測假設的差距。
讓真金白銀歸零的陷阱
資料窺探
你在同一份資料上反覆調參,直到曲線看起來完美。你捕捉到的是雜訊。保持參數的粗粒度,做樣本外驗證並前向滾動。
前視偏誤
你的訊號使用了決策時無法獲得的資訊。常見原因:用K線的收盤價在開盤時進場,或使用修訂後的財報資料而非原始資料。讓訊號與執行按現實的時滯對齊。
倖存者偏差
你的股票樣本剔除了下市或破產的公司。失敗者消失了,所以回測結果看起來比現實更好。使用時點指數成分。
不真實的成交
零滑價的收盤對收盤成交。對任何高週轉策略都是幻想。建模隨流動性變化的點差,以及在波動期擴大的滑價。
過度最佳化
最佳化網格上的尖峰通常意味著過擬合。目標是寬闊的參數高原,在適度的參數變化下仍能取得可接受的表現。
回測是你的想法在既定條件下經受過去考驗的證據。它不是對未來的保證。為穩健性而建構,而不是為最高的歷史夏普。
三個示例策略以及好軟體揭示的內容
技術動量
進場:1小時圖上50週期SMA上穿200週期SMA,RSI低於70。出場:2 ATR停損,3 ATR目標。優質軟體回報的不只是總收益。它顯示平均交易持續時間、隨時間變化的資金曲線、最差的交易中回撤、對ATR乘數的敏感性,以及跨波動率階段的行為。
事件驅動
進場:當可信的颶風訊號出現,且WTI在確認成交量下突破95時買入原油。持倉三天,除非WTI漲破某個閾值。該工具必須匯入帶有精確時間戳的事件資料,並與市場資料對齊。現實的成交建模很重要,因為新聞會擴大點差。
組合再平衡
配置:BTC/ETH/USDC 為 50/25/25,以5%的漂移帶每週再平衡。優質軟體在組合層面計入交易成本,精確建模漂移帶,並同時回報組合級回撤與相關性影響 — 而不僅是各資產的收益。
你今天就能跑的30分鐘首次回測
| 步驟 | 操作 |
|---|---|
| 1 | 用一段話陳述規則 |
| 2 | 設定現實成本:5 bps滑價,1 bp佣金,保守點差 |
| 3 | 實作進場、出場,以及一條安全規則(若波動率較20根K線基線擴大三倍則平倉) |
| 4 | 保留30%的歷史資料用於驗證 |
| 5 | 執行基線。記錄CAGR、回撤、夏普、獲利因子、勝率 |
| 6 | 對停損與目標比的敏感性檢查 |
| 7 | 在3到5折上做前向滾動 |
| 8 | 對交易序列做蒙地卡羅以估計最差情境回撤 |
| 9 | 進行兩週模擬交易 |
| 10 | 以目標規模的25%部署 |
Obside的定位
如果你的目標是從想法到實盤的速度,Obside把整個循環壓縮到一次對話裡。你用簡單英語描述規則,引擎在數秒內回傳一次回測,同一邏輯無需重寫程式碼即可部署到你連接的券商。
端到端可工作的範例:
- 「當2小時Supertrend轉多且2小時RSI低於70時,以5 ATR移動停損買入。Supertrend反轉時平倉。」
- 「每週一上午10點買入50個比特幣。」
- 「當EUR/USD的RSI上穿70且MACD轉空時提醒我。」
- 「若標普500日內下跌10%,賣出所有部位。」
- 「保持50% BTC、25% ETH、25% USDC,每週再平衡。」
該平台在2024年巴黎交易博覽會上榮獲創新獎,並由 Microsoft for Startups 支持。
誠實的考量
回測是模型,不是現實。市場會變,流動性會消失,相關性會跳躍。過擬合是常在的風險,尤其在參數眾多且驗證薄弱時。對短期系統而言,成本如同重力。
對營運能力誠實。如果你的優勢需要亞秒級執行而你在實盤做不到,結果就不可行。許多「漂亮回測」的策略在生產中陣亡,原因在於搭建機器人的工程師並不是真正執行帳戶的交易員。
準備好在幾分鐘內從想法到上線了嗎?
挑一條你相信的規則。跑30分鐘回測。如果通過驗證,就小規模部署。Obside Copilot 接受簡單英語,在數秒內回傳回測,並透過你的券商路由訂單 — 無需程式碼。
建立你的免費Obside帳戶,今天就發布你的第一條經回測驗證的規則。
僅供教育用途。此非投資建議。交易涉及風險,包括可能的本金損失。
常見問題
最精確的回測軟體是哪一款?
精確度取決於策略與假設。日內或事件驅動系統需要高品質的日內資料、現實的滑價和事件對齊。波段或組合策略需要精確的公司行動與組合模擬。最好的工具是最貼近你實盤執行條件的那一款。
我需要多少歷史資料?
對於日線策略,五到十年,涵蓋多頭、空頭與盤整市。對於日內,跨多個波動率階段的深度比日曆長度更重要。始終保留至少30%用於樣本外驗證。
我可以回測基於新聞或總體事件的策略嗎?
可以 — 前提是軟體匯入與價格序列對齊的帶時間戳事件資料。執行建模至關重要,因為新聞時點差擴大、滑價飆升。把資料、邏輯與執行結合的平台在這方面有優勢。
樣本內與樣本外測試有何區別?
樣本內資料用於建構與調校策略。樣本外資料在驗證前保持不動。僅在樣本內表現良好的策略是過擬合的。前向滾動測試在時間上交替使用兩者。
無程式碼回測對嚴肅交易夠用嗎?
可以。關鍵問題不在於你是否寫程式碼,而在於工具能否讓你清晰表達邏輯、真實建模執行,並在不重寫的情況下走向實盤。如今許多無程式碼平台已經追平甚至超越大多數零售級Python設定的能力。
CAGR之外還有哪些指標重要?
最大回撤與水下時間(你能承受嗎?)、夏普與索提諾(收益是否乾淨地獲得?)、獲利因子(以絕對值計的贏者對輸者)、曝險(你在市場中的時間佔比)、以及交易分布在子週期上的穩定性。
我怎麼知道我的回測是否過擬合?
三個徵兆:微小參數變化引起巨大的表現波動、樣本外結果劣化超過一半、規則在相關資產上不奏效。穩健策略能承受適度擾動。