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

免費蒙地卡羅模擬器:3 種工具類型、3 項輸出

免費的蒙地卡羅計算器有三種形式:試算表、簡短腳本,或回測平台內建的功能。它們都會把你已平倉的交易明細重新抽樣數千次,並回報回撤的分布;品質取決於你餵入的交易明細,以及工具是否顯示百分位數、破產比例,還有你的回測回撤落在分布的哪個位置。

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

目錄
  1. 哪裡可以找到交易策略的免費蒙地卡羅計算器?
  2. 試算表就夠了嗎,還是需要腳本或平台工具?
  3. 蒙地卡羅計算器要輸入什麼?
  4. 蒙地卡羅模擬器必須顯示哪些輸出?
  5. 哪些設定錯誤會讓結果失去意義?
  6. 常見問題
  7. References

哪裡可以找到交易策略的免費蒙地卡羅計算器?

搜尋「免費蒙地卡羅模擬計算器」,會找到三種工具:試算表、簡短腳本,或回測平台內建的重新抽樣功能。它們都會取用你已平倉的交易明細,把順序重新洗牌或重新抽樣數千次,並回報回撤的分布。品質取決於輸入與輸出,而不是價格。

蒙地卡羅模擬是一種檢驗方式:用策略自己的交易,以新的順序或新的抽樣重建權益曲線許多次,讓你看到同樣的優勢可能產生的回撤範圍。把它想成一副牌,每張牌就是一筆交易。整副牌的總和從不改變,但每次洗牌後,最長的一段壞牌連續出現的情況都不一樣。一次回測,就是這副牌的一次發牌。

同樣 8 筆假設交易的三種順序:總損益每次都是 +2R,但最大回撤在回測順序為 1R,另外兩種順序分別為 2R 和 3R 同樣的交易,新的回撤 假設:8 筆交易,3 種順序 順序 總計 最大回撤 回測 順序 2 順序 3 + − + − + + − + + + − − + + − + + + + − − − + + +2R +2R +2R −1R −2R −3R 總損益相同,回撤不同。 所以:不要只靠單筆交易決定部位大小。
蒙地卡羅模擬用新的順序發同一批交易。最終總和永遠不變;最大回撤則每次發牌都不同,而回測只是其中一次。

三種免費來源,依設定難度排序:

  1. 試算表。一欄交易、一個亂數函數、一個累計總和與一條回撤公式。逐步建置方式請見用 Excel 做蒙地卡羅模擬。
  2. 簡短腳本。在任何有亂數函數的語言中寫二十到四十行。它能處理數千次模擬,以及每筆交易的部位大小,而且不會變慢。
  3. 平台功能。部分回測與看盤平台會在策略報表旁附上蒙地卡羅報表。不需要設定,但抽樣方式是固定的,也不一定有文件說明。

蒙地卡羅模擬器與練習用模擬器是不同的工具。免費當沖模擬器是重播行情,讓你練習下單。蒙地卡羅模擬器完全不看價格,只是重新排列你已完成的交易明細。這個方法能告訴你什麼、不能告訴你什麼,請見蒙地卡羅回測:能顯示什麼、不能顯示什麼。本文談的是如何選擇工具並設定好,讓結果有意義。

試算表就夠了嗎,還是需要腳本或平台工具?

幾百筆交易、一千次模擬,試算表就夠了;若想跑 5,000 次以上,或部位大小會隨權益變動,腳本是比較好的選擇;平台功能省去設定時間,但看不到它如何抽樣。選擇取決於三個數字:你有多少筆交易、想跑幾次模擬,以及你需要看清方法內部到什麼程度。

有兩個名詞決定「看清內部」這一點。抽樣方式是每次模擬如何挑選交易的規則:要不是把同一批交易重新洗牌,就是以放回方式重新抽取交易。種子(seed)是亂數產生器的起始數字;相同的種子會產生相同的抽樣序列,因此模擬可以完全重現,兩個人也能檢查同一個結果。

試算表腳本平台工具
設定時間第一次需一到兩小時會寫程式約一小時,不會則更久幾分鐘
實際可用的交易筆數最多幾百筆不限不限
實際可用的模擬次數約一千次,超過會變慢數萬次由工具固定
每筆交易的部位大小可用 R 欄位,但不方便可以有時可以
抽樣方式是否可見可見,是你自己寫的可見,是你自己寫的僅在有文件說明時
同一種子能否重現很少(試算表的亂數函數每次重算都會變)可以有時可以
三種免費蒙地卡羅工具比較:平台函數只需幾分鐘但隱藏其方法,試算表需數小時且僅能處理少量運算,腳本需要寫程式但可完全掌控 設定越多,控制越強 三種免費蒙地卡羅工具 設定 控制 平台 幾分鐘 方法隱藏 試算表 數小時 運算次數少 腳本 寫程式 完全掌控 控制越強,設定越費時。 因此:5,000 次以上運算請用腳本。
三種免費工具類型,在設定難度與對抽樣方式、模擬次數的掌控之間各有取捨。

交易筆數決定了試算表的上限,因為每次模擬都要走過每一筆交易。幾百筆交易加一千次模擬,就已是很大的工作表;跑 5,000 次會讓每次重算都很慢,而且亂數函數每次都會重新抽取,所以無法重現結果。腳本沒有這兩個問題,要加入每筆交易的風險百分比也只需多寫一行。

如果你使用平台功能,請在文件中查兩件事:它是重新洗牌還是重新抽樣?你能否設定種子或模擬次數?如果都沒有說明,就跑兩次。若兩次之間第 95 百分位回撤差很多,代表工具的模擬次數太少,讀不準尾端,你應該改用試算表或腳本重建這項檢驗。

蒙地卡羅計算器要輸入什麼?

有三項輸入決定結果:扣除手續費與滑價後的已平倉交易明細、你實際會交易的每筆風險或口數,以及模擬次數。模擬器回報的一切,都是這三者的重新排列,所以花一小時處理輸入,比花一小時挑工具更有價值。

  1. 已平倉交易明細。已平倉交易明細是列出每筆已完成交易淨結果的表格,一筆一列,依交易發生的順序排列。每筆結果以金額或 R 輸入。R 是單筆交易所冒的風險金額,因此報酬為風險兩倍的交易是 +2R,全額虧損則是 −1R。請使用淨結果。扣除成本之前的明細,會產生一個你根本無法交易的策略的回撤範圍。
  2. 每筆風險或口數。固定口數時,每筆交易保留其金額結果,回撤以金額表示。採用權益百分比時,每筆交易的 R 結果會依該筆交易前的權益縮放,因此路徑會複利。請使用你實單交易會用的部位大小;部位大小計算器可以把帳戶風險與停損距離換算成口數,再填入這裡。
  3. 模擬次數。初步檢視用一千次。想讀第 95 或第 99 百分位時,用 5,000 次以上。每次模擬建立一條權益路徑,所有輸出都是從這些路徑的集合讀出來的。
蒙地卡羅流程:淨交易與部位大小為輸入,5,000 次模擬產生新的權益路徑,輸出回撤範圍 交易進,範圍出 由左至右閱讀 淨交易 + 部位大小 5,000 次模擬 新路徑 回撤 呈範圍 輸出品質取決於輸入。 所以:輸入淨交易與實際部位大小。
蒙地卡羅是一條流程:輸入交易明細與部位大小,產生數千條重新抽樣的權益路徑,輸出回撤的分布。

下方的方框展示可用的輸入長什麼樣子。這次檢驗的是自動搜尋在大約一千個嘗試中留下的那一個候選策略(方框中有確切數字),依報酬相對回撤挑選,標的為 NQ 日 K 棒,期間 2019-01-02 至 2025-06-30,多空皆做,一口,每筆交易都計入 $20 手續費與 $10 滑價。這條規則只是個替身:以 RSI 規則作為唯一的進場與出場,沒有停損、沒有停利、沒有濾網,選它是因為它能產生單純的交易明細,而不是因為它是本文的主題。這 328 筆交易來自 AlphaPrime(Valynox)績效報表的交易表,它列出每筆已平倉交易的淨結果,也就是模擬器所需的那一欄。

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

項目結果
淨利(已平倉)$174,845
最大回撤$75,475
交易筆數328
勝率57.93%
獲利因子1.31
平均每筆$533.06
在場時間36.32%

請把方框當作輸入來讀,而不是當作定論。因為這個候選策略是事後從大約一千個中挑出最好的,它的回測讓它顯得過於漂亮:在同一份資料上測試許多變體時,看起來最好的那一個,會比它真實的優勢更好看(Bailey, Borwein, López de Prado and Zhu, 2014)。這正是為什麼 $75,475 的回撤應該放進模擬器,而不是用來決定帳戶規模。這 328 列的大小很適合這項工作:交易筆數足夠,重新抽樣時不會只是重複少數幾筆大賺的交易,而且每一列都已扣除 $30 的成本。這些數字描述的是一個替身規則的一次回測,不代表該規則或任何讀者會賺到的結果。

蒙地卡羅模擬器必須顯示哪些輸出?

有用的模擬器會顯示三件事:以百分位數表示的回撤分布(中位數、第 95 百分位與最差情況)、達到你破產水準的模擬比例,以及你單一回測回撤落在該分布中的位置。回測回撤是從寬廣範圍中抽出的一個點,不是用來決定帳戶規模的數字。

本節靠三個名詞支撐。最大回撤是權益從高點下跌到下一個新高之前的最低點之間的最大跌幅;回撤計算器可以從任何權益序列算出它。百分位數是指某個比例的模擬都低於的那個值:第 95 百分位回撤,就是每 100 次模擬中有 95 次沒有超過的回撤。破產水準是你必須停止交易該策略的虧損程度,例如帳戶再也無法繳足保證金的那一點,或你事先決定太深而無法繼續交易下去的回撤。

  • 回撤百分位數。至少回報中位數、第 95 百分位與最差的一次模擬。中位數告訴你典型路徑的樣子。第 95 百分位告訴你一條不好但算正常的路徑有多深。決定部位時請用第 95 百分位,不要用最差情況,因為每多加模擬次數,最差的那一次就會變得更差。
  • 破產比例。計算回撤達到破產水準的模擬次數,再除以總模擬次數。這會把整個分布濃縮成一個你可以和自己討論的數字:五十次裡有一次可以接受,還是五百次裡有一次才可以接受?
  • 回測百分位。標出單一回測回撤所落的位置。落在第 20 百分位附近的回測,交易順序相當友善;同樣的交易換個順序,會傷得更重。落在第 90 百分位附近的回測,則是順序不友善。
假設性的 5,000 次重抽樣回測中最大回撤分布:回測回撤 1.8 萬美元位於分布低端,而第 95 百分位的 3.6 萬美元則是用來決定帳戶部位大小的水準 依第 95 百分位決定部位大小 假設性:5,000 次,最大回撤 回測 $18k 第 95 百分位 $36k 回測結果算是幸運。 所以:依第 95 百分位決定部位大小。
單一回測回撤只是分布中的一個點。帳戶規模要從高百分位讀取,而不是從那個點讀取。

假設範例

某策略有 300 筆淨交易,平均每筆損益為 $400,回測最大回撤為 $18,000。你以一口對交易明細放回抽樣 5,000 次。最大回撤的中位數為 $22,000,第 95 百分位為 $36,000,最差的一次為 $61,000。破產水準設為 $45,000 時,5,000 次中有 100 次達到,破產比例為 2%。$18,000 的回測回撤落在第 30 百分位附近,所以歷史順序比大多數情況友善。依 $18,000 加保證金規劃的帳戶,在大約十條重新抽樣路徑中會有七條太小;依 $36,000 加保證金規劃,則涵蓋二十條中的十九條。

預期回撤範圍會隨交易明細變長而擴大:即使每筆交易的優勢不變,一個序列預期的最差高點到低點跌幅仍會隨其長度增加(Magdon-Ismail and Atiya, 2004)。這是對較長的明細重新抽樣、而不是只看短明細回撤的第二個理由。若你在同一個帳戶交易多個策略,請對多策略組合回測得到的合併交易明細做模擬,因為整體的回撤並不等於各部分回撤的總和。

哪些設定錯誤會讓結果失去意義?

多數不好的蒙地卡羅結果來自五種設定錯誤:使用未扣成本的毛損益交易、把洗牌當成已檢驗了交易組合而過度信任、對很短的交易明細重新抽樣、實單交易用百分比卻以固定金額風險跑模擬,以及模擬次數太少而讀不準尾端。每一個都能在幾分鐘內修正。

  1. 未扣成本的毛損益交易。成本會改變每一列,對於有許多小額交易的策略,它們甚至會改變平均每筆損益的正負號。這樣的模擬描述的是一個不存在的策略。修正:輸入淨損益交易,或在第一次模擬前,從每一列扣掉一買一賣(來回)的成本。
  2. 洗牌後過度信任結果。洗牌是不放回抽樣:每筆交易恰好出現一次,只是順序不同,所以每次模擬的最終權益都相同,只有路徑不同。放回抽樣則是隨機抽取交易,因此一筆交易可能出現兩次或完全不出現;這就是自助法(bootstrap)的概念(Efron, 1979)。洗牌只回答一個問題,也就是順序可能造成多大傷害,而且它產生不出比你原本更糟的交易組合。請把它的第 95 百分位視為下限。想連交易組合一起檢驗時,請用放回抽樣。
  3. 對很短的交易明細重新抽樣。只有幾十筆交易時,每次重新抽樣都是由同樣那幾筆大賺與大賠組成,所以分布呈現的是那幾筆交易,而不是策略本身。修正:先累積更多交易,從更長的歷史,或在相關市場上用同一條規則取得,再去讀百分位數。
  4. 實單交易用百分比,卻以固定金額風險模擬。兩種部位大小方法會產生不同的回撤路徑:百分比部位會在連續虧損時縮小部位、連續獲利時放大部位,所以金額回撤與百分比回撤的走勢不同。修正:用你實際會交易的部位大小來跑,若部位會複利,就以權益百分比讀取回撤。
  5. 模擬次數太少。只跑 200 次時,第 95 百分位由最差的十次決定,每次按重算都會跳動。跑 5,000 次時,它建立在 250 次模擬上,就會穩定下來。修正:讀第 95 百分位用 5,000 次以上,讀第 99 百分位用 10,000 次,最差的那一次只當作參考,因為隨著模擬次數增加它會持續變差。
假設六筆交易:四勝兩負;重排保留相同的四勝兩負,只改變順序;有放回重抽樣則可能抽出三筆虧損,因此同時檢驗組合與順序 重排檢驗僅測順序 同樣六筆交易,兩種方法 原始 重排 重抽樣 + + − + − + − + + − + + − − + + − + 組合相同 組合改變 重排保留相同組合。 因此:採有放回重抽樣。
洗牌只檢驗同一批交易的順序;放回抽樣則連交易組合也一併檢驗。過短的交易明細會讓兩者都被放大。

下一步是一個一小時的工作。匯出扣除成本後的已平倉交易明細,確認筆數有幾百筆,並以你會交易的口數放回抽樣 5,000 次。然後寫下兩個數字:第 95 百分位回撤,以及你的回測回撤所在的百分位。如果回測低於中位數,代表你原本設想的帳戶是按一次幸運的發牌來規劃的;請依第 95 百分位重新調整規模,並把滑價加倍後再跑一次檢驗。

常見問題

蒙地卡羅模擬器需要跑幾次?

初步檢視用一千次,讀第 95 百分位回撤時用 5,000 次以上。200 次模擬得出的第 95 百分位只靠十條路徑,每次重算都會變動。第 99 百分位出於同樣原因需要 10,000 次。更多次數並不會改善輸入,只是讓尾端變得可讀。

應該把交易順序洗牌,還是放回抽樣?

洗牌讓每筆交易恰好出現一次,所以只檢驗順序可能造成多大傷害,它的回撤範圍是下限。放回抽樣讓交易可以重複或消失,因此也檢驗同類交易的更糟組合是否會讓帳戶撐不住。兩種都跑:兩者之間的差距,會告訴你有多少風險存在於組合,而不是順序。

蒙地卡羅模擬能告訴我策略會不會賺錢嗎?

不能。它只是重新排列你已有的交易,所以找不出回測中沒有的優勢,也會承襲事後挑選最佳候選策略所帶來的灌水。它回答的是範圍較窄的問題:給定這些交易,在一般的倒楣順序下,回撤可以有多深。優勢的問題請用推進分析與樣本外(OOS)檢驗,帳戶規模的問題才用模擬。

什麼是好的蒙地卡羅結果?

是你能據以行動的結果,而不是好看的結果。第 95 百分位回撤能放進你打算交易的帳戶並留有保證金餘裕,你所選水準的破產比例是你能接受的,而且回測回撤不在分布中偏友善的一端。如果回測回撤落在很低的百分位,代表歷史順序是幸運的,帳戶應改依模擬結果來規劃。

References

  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
  • 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.