VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 回測與檢驗

蒙地卡羅模擬跑幾次才夠:一千次與 10,000 次

約一千次可讓中位數回撤穩定,約 10,000 次可讓第 95 與第 99 百分位的尾端穩定,而交易明細太短、不足以洗牌時,再多次數也補不回來。交易筆數決定了不確定性的下限,增加次數降不下來。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 蒙地卡羅模擬要跑幾次才夠?
  2. 為什麼答案取決於你讀的統計量?
  3. 一千次夠嗎?還是需要 10,000 次?
  4. 交易筆數比模擬次數更重要嗎?
  5. 為什麼蒙地卡羅每次跑的結果都不一樣?
  6. 常見問題
  7. 參考文獻

蒙地卡羅模擬要跑幾次才夠?

蒙地卡羅模擬跑幾次才夠,要看你讀的是哪個數字:約一千次可讓中位數回撤穩定,約 10,000 次可讓第 95 與第 99 百分位的尾端穩定,而交易明細太短、不足以洗牌時,再多次數也補不回來。決定下限的是交易筆數,不是跑的次數。

交易策略的蒙地卡羅模擬,是把回測產生的交易,用新的隨機順序重排多次,並記錄每種新順序的最大回撤。結果是一個回撤分布,而不是回測顯示的單一數字。這個方法從頭說明,見蒙地卡羅模擬與期貨交易範例;你也可以用免費的交易用蒙地卡羅模擬器,跑自己的交易明細。本文要論證的主張只有一個:跑的次數是問題中便宜的一半,交易筆數才是昂貴的一半。

為什麼答案取決於你讀的統計量?

最大回撤的中位數在跑了幾百次後就不再變動,尾端百分位則要等到稀有的最糟情況累積到足夠的數量,才會穩定。百分位是指某個比例的結果落在其下的值:第 95 百分位回撤,是 95% 的洗牌順序都停留在其下的水準。中位數就是第 50 百分位。

想像量一個小鎮上居民的身高。量過幾百人之後,平均身高就穩定了。最高的百分之一,要量到樣本裡有少數幾個特別高的人,才會穩定。中位數回撤由每一次模擬構成,所以每多跑一次,都會增加一點資訊。第 99 百分位只由最糟的百分之一構成,所以跑一千次時,它只靠十個順序,單一個不尋常的順序就能把它拉到相當遠的位置。這就是蒙地卡羅回測常顯示,你真正的最大回撤多半比單次回測的數字更深:尾端是資訊所在,也是最慢穩定的部分。

假設性的回撤估計值對模擬次數,橫軸為對數刻度:中位數線在約一千次時趨平,第 95 百分位在約 10,000 次附近趨平,第 99 百分位在 10,000 次時仍有起伏,要到約 100,000 次才趨平 尾端最晚穩定 示意:回撤估計值對模擬次數 第 99 第 95 中位數 100 1k 10k 100k 越深入尾端,需要越多次數。 所以:次數要配合統計量。
各百分位估計值穩定的速度不同。讀得越深入尾端,線條要停止晃動,需要的次數越多。

一千次夠嗎?還是需要 10,000 次?

讀中位數或第 75 百分位時,一千次就夠;估計第 95 或第 99 百分位回撤,10,000 次是實務上的下限;再往上提高,多半只是多買幾位小數。值得記住的公式只有一條,算出真正決定尾端的次數:

決定尾端的次數 = 總次數 × (1 − 以小數表示的百分位)

其中總次數是你產生的洗牌順序數量,以小數表示的百分位在第 95 百分位是 0.95,在第 99 百分位是 0.99。跑一千次時,第 95 百分位只靠 50 個順序,第 99 百分位只靠 10 個。跑 10,000 次時,分別變成 500 與 100。五十個資料點只能給出粗略的估計;五百個才給出穩定的估計。例行檢查時,跑一千次、讀中位數與第 75 百分位,是時間與資訊之間的合理交換。要決定帳戶規模、需要第 95 百分位時,用 10,000 次。

回撤統計量對模擬次數的格狀圖:中位數與第 75 百分位從一千次起就已穩定,第 95 百分位在一千次時只靠 50 個順序、到一萬次才穩定,第 99 百分位要到十萬次才不再變動 跑幾次才夠? 已穩定 仍在變動 1k 次 10k 次 100k 次 中位數 第 75 第 95 第 99 500 5k 50k 250 2.5k 25k 50 500 5k 10 100 1k 1k 次時,尾端只靠少數順序。 所以:看第 95 用 10k 次。
哪個次數對哪個統計量才夠。每格的數字,是該估計值實際依據的洗牌順序數量。

若要自己建立這個檢驗,用 Excel 做蒙地卡羅模擬的逐步教學會標出模擬次數在哪一步輸入;免費蒙地卡羅模擬器的整理文章,則比較三種工具各產出什麼。

交易筆數比模擬次數更重要嗎?

是。模擬重排的是回測產生的交易,所以一份只有 109 筆交易的明細,會讓回撤估計帶著 100,000 次也降不下來的不確定性,因為每一次都在重複使用同樣的 109 筆結果。對樣本重新抽樣,說的只是這個樣本;Efron(1979)正是以這個想法建立自助重抽法(bootstrap),它的限制也一樣。同樣的交易換個新順序,變不出交易本身容不下的更大連續虧損,也看不出策略在它從未交易過的行情年份會有什麼表現。

以下這次回測來自 AlphaPrime(Valynox):在 ES 日線上,從 2019-01-02 到 2025-06-30 做搜尋,多空雙向、一口,每筆交易都收手續費與滑價。它是搜尋從試過的一千多個裡留下來的一個候選策略,依報酬相對於回撤選出,事後挑出留下來的那一個,會讓它顯得好看。規則是以標準的成交量(Volume)指標做成的替代規則,不是本文的主題。

來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。ES 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $25。

項目結果
淨利(已平倉)$108,520
最大回撤$33,032.5
交易筆數109
勝率61.47%
獲利因子1.659
平均每筆$995.6
在市場中的時間59.08%

這裡重要的數字是 109 筆交易。洗牌一千次或 100,000 次,中位數回撤都會收斂,但收斂到的是這 109 筆結果各種順序的中位數,這是一個小而偏好看的樣本。這次回測裡沒有任何內容說明規則賺到了那個結果,也沒有說明讀者應該預期同樣的結果;它只是一個留下來的候選策略,用來示範太短的交易明細會對分布造成什麼影響。

由這次回測的 109 筆交易建立的最大回撤蒙地卡羅分布。請看這個分布與單次回測回撤相比有多寬,以及這個寬度有多少來自過短的交易明細,而不是模擬次數太少。
由這次回測的 109 筆交易建立的最大回撤蒙地卡羅分布。請看這個分布與單次回測回撤相比有多寬,以及這個寬度有多少來自過短的交易明細,而不是模擬次數太少。 ES · 日線 · 2019-01-02 至 2025-06-30 · CPU 引擎回測

兩種不確定性疊在一起。模擬雜訊是只產生有限數量的隨機順序所帶來的晃動;次數越多,它越小。交易樣本不確定性,是你手上的 109 筆交易,與策略在更長歷史上會產生的交易之間的差距;只有更多交易才能縮小它,來源可以是更長的歷史,或是增加樣本外交易的推進分析視窗。策略檢驗裡的推進分析,是 AlphaPrime 在候選策略進入回撤檢驗前,補上這些樣本外交易的步驟,方法詳見推進分析一文。

同一份交易明細的兩種疊加回撤不確定性示意圖:模擬雜訊的部分,從一千次到 10,000 次再到 100,000 次逐步縮小,交易樣本的部分寬度不變;只有更多交易才能縮小它 增加次數無法增加交易 示意:同一份交易明細 交易樣本 模擬雜訊 1k 次 10k 次 100k 次 次數只縮小模擬雜訊。 所以:用推進分析增加交易。
兩種不確定性,增加次數只能縮小其中一種。

為什麼蒙地卡羅每次跑的結果都不一樣?

每次模擬抽出的交易順序都不同,所以除非固定隨機種子,各百分位每次都會略有變動;而這個變動幅度本身,就是你有沒有跑夠次數的徵兆。隨機種子是電腦產生隨機選擇序列的起始數字;同一個種子產生同一個序列,同一個序列產生同樣的洗牌順序。Metropolis 與 Ulam(1949)因此用賭場為這個方法命名:答案由機率構成,而機率每次抽出的結果都不同。

這一點可以善加利用。用不同種子把檢驗跑兩、三次,比較你在意的百分位。如果第 95 百分位回撤在不同種子之間只差百分之幾,這個統計量的次數就夠了。如果差到其數值的四分之一,就提高次數,直到差距縮小。然後固定種子,讓同事或一個月後的你,能重現完全相同的數字。

假設性範例

用不同種子跑三次、每次洗牌一千次,得到的第 95 百分位回撤是 $14,100、$16,800 與 $13,400,差距約四分之一。跑三次、每次洗牌 10,000 次,得到 $15,200、$15,500 與 $15,300,差距約百分之二。第二組已穩定;第一組還沒有。

示意圖:同樣六筆交易,用不同種子洗牌,會得到兩個不同的第 95 百分位回撤;同一個種子則得到同樣的順序與同樣的數字;種子之間的差距,就是檢查是否收斂的依據 同種子,同數字 第 95 百分位回撤,示意 不同種子 相同種子 $14.1k $16.8k $15.3k $15.3k 數字不同 數字相同 種子之間的差距就是檢驗。 所以:先檢查,再固定種子。
種子決定兩次模擬是否完全相同。種子之間的差距,就是檢查是否收斂的依據。

實際可做的下一步:拿你自己的交易明細,用兩個不同種子各洗牌一千次,再用同樣兩個種子各洗牌 10,000 次,每次都記下第 95 百分位回撤。兩個種子的結果相差在百分之幾以內的那個次數,就是該策略該用的次數。接著數一數明細裡的交易筆數,因為這個數字決定了你到底能信任這個分布到什麼程度。

常見問題

蒙地卡羅要跑幾次,結果才穩定?

看你讀的是哪個數字。中位數回撤通常在約一千次後穩定,第 95 百分位在約 10,000 次後,第 99 百分位則需要更多。檢驗是否穩定的方法,是換一個隨機種子重跑模擬,看統計量變動多少;變動只有百分之幾時,次數就夠了。

蒙地卡羅模擬要固定隨機種子嗎?

先檢查收斂,再固定,不要反過來。先用兩、三個不同種子跑模擬,看各百分位變動多少;這個差距會告訴你次數夠不夠。然後設定固定種子,讓之後能重現完全一樣的數字,並在不同策略之間比較。

只有 30 筆交易的策略,可以跑蒙地卡羅嗎?

可以跑,也會產生一個分布,但這個分布只描述這 30 筆交易的新順序。它無法呈現樣本從未包含的連續虧損,也無法呈現策略從未交易過的行情期間。把結果當成線索,並在依賴回撤百分位之前,設法增加交易,例如用更長的歷史,或推進分析的樣本外視窗。

交易筆數與模擬次數,哪個更重要?

交易筆數。更多模擬次數縮小的是估計分布時的雜訊,但分布本身是由你手上的交易構成,再多洗牌也改變不了。一個有幾百筆交易、跑一千次的策略,得到的回撤範圍,比一個只有一百筆交易、跑 100,000 次的策略更可信。

參考文獻

  • Metropolis, N., & Ulam, S. (1949). The Monte Carlo Method. Journal of the American Statistical Association, 44(247), 335–341.
  • Efron, B. (1979). Bootstrap Methods: Another Look at the Jackknife. The Annals of Statistics, 7(1), 1–26.
  • Magdon-Ismail, M., & Atiya, A. F. (2004). Maximum Drawdown. Risk, 17(10), 99–102.