
Strategy Discovery Lab — Honest Backtest Search
你最漂亮的那個回測,多半在騙你
試夠多策略組合,總有一個看起來很神 —— 純粹是運氣。一個 Sharpe 1.8,如果是你試的 500 個裡最好的一個,意義非常小;那是隨機雲的尾巴,不是 edge。市面上大多數「策略發現器」把這件事藏起來、只把最花俏的曲線塞給你。這一個不會。
Strategy Discovery Lab 掃描你的價格資料、找出候選策略、排成 leaderboard,然後對每一個講真話:Deflated Sharpe(照你試的個數打折)、這 edge 有沒有撐過樣本外、以及整件事過擬合的機率。漂亮的曲線一律當成待驗證的假設 —— 絕不是能拿去交易的策略。
跑在你自己的 CSV 上。什麼都不上傳,輸出是一份你本地打開的自包含 HTML 報告。
你會得到
一張 leaderboard —— 「你找到策略了!」的爽點
它在你的資料上回測上百個經典組合、共 10 個家族 —— 均線交叉 MA/EMA、MACD、動能、Donchian 突破、RSI / Stochastic / 布林反轉、趨勢過濾,以及一個波動狀態過濾(只在你選的波動狀態下才交易趨勢)—— 每個都掃一整片參數。最好的浮到頂端、附權益曲線。
誠實的解讀 —— hype 工具都跳過的部分
- Deflated Sharpe —— 照你試了幾個打折。500 個裡最好的那個是被灌水的,這個把運氣扣掉。
- 樣本外切分 —— 這 edge 在它沒被排名過的資料上還剩多少。
- 過擬合機率 —— PBO 式估計:樣本內贏家有多常在樣本外掉到中位數以下。
- 運氣雲 —— 把你試過的每個 Sharpe 畫成直方圖,標出「你的最佳」和「純運氣期望最大值」,讓你親眼看到贏家只是隨機分佈的尾巴。
- 保守的白話裁決:🎲 多半噪音 / ⚠️ 偏弱 / 🤔 值得驗證。
通宵模式 —— 掃越久、對你越懷疑
睡前設好、讓它整夜掃。它持續抽隨機策略、把每一次試驗累積進持久 ledger、定時刷新報告。因為誠實修正用的是累積試驗數,「純運氣線」會隨數量往上爬 —— 通宵掃四萬個策略不會讓找到 edge 變容易,只會把漂亮曲線要跨過的門檻墊高。隨時 Ctrl+C 停;之後續跑、累積數不歸零。
python3 scripts/lab.py --prices my_prices.csv --watch --minutes 480 --out report.html
這裡挖礦、那裡檢定
這工具的工作是找候選、給一個輕量的誠實 reality check —— 剛好足夠不騙你。它刻意不做完整統計火力測試(bar-permutation MCPT、PBO/CSCV、SPA/StepM、stationary bootstrap)—— 那是另一個更重的活。把存活者匯出、交給專門的檢定工具:
python3 scripts/lab.py --prices my_prices.csv --export survivors.csv
# survivors.csv 是每根 K 棒的報酬矩陣,可直接餵候選矩陣檢定
快速上手
# 掃你自己的資料(CSV 要有日期欄 + close 欄)
python3 scripts/lab.py --prices my_prices.csv --n 500 --out report.html
# 用內附樣本資料試、報告用中文
python3 scripts/lab.py --demo --lang zh
# 只做多(不能做空的市場)、自訂成本
python3 scripts/lab.py --prices my_prices.csv --long-only --cost-bps 2
需要:python3 + numpy + pandas。誠實數學純標準庫、不用 scipy。
內含
- 10 個策略家族 × 參數網格,加上通宵掃描用的連續隨機空間。
- 向量化、防偷看未來的回測器(訊號下一根才進場)+ 每轉手成本 +
--long-only。 - 誠實層:Deflated Sharpe、樣本外切分、過擬合機率、運氣雲直方圖、保守裁決。
- 自包含雙語(English / 中文) HTML 報告 —— leaderboard、權益曲線、DSR 量表,全噪音時還有「什麼都沒過」的誠實 banner。
- 通宵
--watch模式(可續跑 ledger)+--export把存活者交給檢定工具。 - 合成樣本資料、範例、通過的測試。
這不是什麼
不是訊號服務、也不是策略 —— 它對任何市場沒有立場、不做任何績效保證,只回報 pattern 在你的資料上做了什麼。不是檢定工具 —— 它挖礦、輕量 reality check、然後交棒。不是獲利保證 —— 多數誠實的掃描什麼可交易的都找不到,而報告會照實講。
常見問題
我的資料會離開我的電腦嗎? 不會。全部本地跑、報告是你打開的檔案,什麼都不上傳。
它會幫我找到會賺的策略嗎? 通常不會 —— 而這正是重點。在固定的經典 pattern 集 + 單一價格序列上,多數搜尋撈到的是噪音。這工具的價值是照實告訴你,並標出那個罕見、值得拿去完整檢定的候選。
哪個 Python? 3.8+、numpy + pandas。pytest 只有跑測試才需要。

