Day Trader Skill改台股版8-台股回測測試

0Shares
Image

原版最有特色的工具,是在下單前把同一筆交易模擬一萬次。台股版加上了一件原版沒做的事:扣掉手續費和證交稅。結果很直接:一個不算成本時「接近擲銅板」的計畫,扣掉成本就變成偏向虧錢。

跟著 Claude 把美股當沖 skill 改成台股版・第 8 篇

Time Machine 台股版:把交易成本算進去之後,勝率還剩多少?

原版最有特色的工具,是在下單前把同一筆交易模擬一萬次。台股版加上了一件原版沒做的事:扣掉手續費和證交稅。結果很直接:一個不算成本時「接近擲銅板」的計畫,扣掉成本就變成偏向虧錢。

  • 適合:想在下單前知道「這筆有沒有搞頭」的人
  • 工具:Claude 桌面版、FinMind(Sponsor 方案)
  • 範例:2409 在 2026-11-12,抽樣 60 個交易日

1. 這一篇會做什麼

第 7 篇的例子剛好碰到停利,但一天的結果說明不了什麼。這一篇要回答的問題是:同樣的計畫重複做很多次,平均起來會怎樣?

  1. 進場判斷第 7 篇
  2. 停損停利第 4 篇
  3. Time Machine本篇
  4. 張數+風控第 4、5 篇

小辭典

模擬
用過去的資料拼湊出很多種「今天剩下的時間可能怎麼走」,看結果的分布。不是預測。
R
以「1 張停損出場會虧多少」當作 1 個單位。+1R 代表賺到和停損一樣多,−1R 代表停損出場。
損益兩平勝率
要贏幾成才不賠錢。報酬風險比 1:1 要贏 50%,2:1 只要贏 33.3%。
seed(隨機種子)
讓隨機抽樣可以重現的數字。同樣的 seed,任何人跑都得到同樣的結果。

2. 原版的 Time Machine 怎麼運作

原版的想法很巧妙,分成兩部分:

方法 1

一萬次模擬

從進場那一刻開始,接下來的每一根 5 分 K,都從這檔股票過去 60 天「同一個時段」隨機抽一根,依漲跌比例接上去。重複一萬次,統計先碰到停利、先碰到停損、都沒碰到的比例。

方法 2

真實歷史

把同一套規則(開盤區間、停損放哪、停利幾倍)在過去 60 天每一天重跑一次,看實際發生了什麼。這不是模擬,是真的發生過的結果。

「同一個時段」很重要:台股開盤後半小時和中午的波動完全不同,從同時段抽,模擬出來的走勢才像真的。

原版的範例是 2026 年 10 月 19 日的特斯拉,1R 停利、不算成本:先停利 29.4%、先停損 25.5%、都沒碰到 45.1%,結論是「接近擲銅板」。這是原版很誠實的地方。

3. 台股版改了什麼

我對 Claude 說:

開始開發第四階段:Time Machine 台股版。用 FinMind 的 1 分 K,抽樣過去 60 個交易日,模擬 10,000 次並重跑歷史。
這次一定要把手續費和證交稅算進去,而且把「扣成本」和「不算成本」兩個結果並列,讓人看到差別。
項目原版(美股)台股版
資料Yahoo 60 天 5 分 KFinMind 1 分 K 合成 5 分 K(每天一次請求,存起來不再重抓)
完整交易日78 根 5 分 K53 根連續交易 5 分 K 都在;停牌、處置分盤的日子不算
價格範圍不限限制在當日漲跌停之間
模擬到幾點收盤 16:00平倉時間 13:20(台股 13:25 起是收盤集合競價)
R 怎麼算只看價差1R = 1 張停損出場的總虧損(含手續費、證交稅)
判斷一個扣成本、不算成本兩個並列

保留原版的保守規則:同一根 K 棒同時碰到停損和停利,算停損;跳空跌破停損仍算 −1R(實際成交可能更差)。

4. 跑一次:2409 的 2R 計畫

用第 7 篇的那筆交易:2409 在 11 月 12 日 09:20 以 29.0 進場,停損 28.45(開盤區間中點),停利 30.1(2R),手續費 6 折、現股當沖。

2409 做多,2026-11-12:進場 29(09:20)、停損 28.45、停利 30.1。
10,000 次模擬剩下的時段(09:20 到 13:20,48 根 5 分 K),seed 19。
每一根都從過去 60 個完整交易日(2026-08-13 ~ 2026-11-11)同一時段前後 2 根中隨機抽取;價格限制在漲跌停之間。
  先停利      14.0 %
  先停損      53.6 %
  都沒碰到    32.4 %   到 13:20 仍未出場
  扣成本後賺錢 33.8 %
  都沒碰到的模擬,13:20 的價格:中位數 29.21,90% 落在 28.66 ~ 29.83。
  平均 R:扣成本 -0.250,不算成本 -0.125(1R = 1 張停損出場虧 640 元,含成本)
真實歷史:同一套規則在這 60 個交易日中觸發 29 次:停利 5、停損 8、都沒碰到 16。平均 R:扣成本 -0.076,不算成本 +0.086。
扣掉成本:明顯偏向停損(碰到一邊的模擬中,先停利占 20.7%;扣成本後要 38.9% 才能打平)。
不算成本:偏向停損(要 33.3% 才能打平)。

一萬次模擬只花了約 2 秒。第一次執行要下載 60 天的分鐘資料(約 16 秒),之後都存在電腦裡,每次約 1 秒。

5. 怎麼讀這些數字

不要只看「先停利 14%」

停利 2R 的計畫,本來就不需要贏一半。賺的時候賺 2 倍,所以只要碰到一邊的情況中,有 1/3(33.3%)是先停利,不算成本就能打平。這就是「損益兩平勝率」:

損益兩平勝率 = 1 ÷(1 + 報酬風險比)

1:1 要 50%;2:1 要 33.3%;3:1 要 25%。扣掉成本後,報酬風險比會變小(2R 變成 1.57),所以要求的勝率會變高(33.3% 變成 38.9%)。

這次的判斷

需要的先停利比例模擬實際得到判斷
不算成本33.3%20.7%
(14.0 ÷ (14.0+53.6))
偏向停損
扣成本38.9%明顯偏向停損

差距小於 5 個百分點算「接近損益兩平」,5~15 是「偏向」,15 以上是「明顯偏向」。

都沒碰到的 32.4%

將近三分之一的模擬,到 13:20 停利停損都沒碰到,最後以平倉時的價格出場(中位數 29.21,略高於進場價)。這些交易的結果,會反映在「平均 R」裡。

平均 R 是最終的總結

平均 R = 把所有結果平均。扣成本 −0.250R,代表平均每做一次,虧掉停損金額的四分之一(以 1 張計約 160 元)。

6. 成本把擲銅板變成虧錢

把停利改成 1R(停利距離和停損一樣),再跑一次:

2R 計畫1R 計畫
先停利/先停損/都沒碰到14.0%/53.6%/32.4%41.3%/48.8%/9.9%
真實歷史(29 次觸發)停利 5、停損 8、沒碰到 16停利 9、停損 8、沒碰到 12
平均 R(模擬)不算成本/扣成本−0.125/−0.250−0.079/−0.210
不算成本的判斷偏向停損接近損益兩平
扣成本的判斷明顯偏向停損偏向停損(要贏 58.3%)

1R 計畫的那一欄,就是這整個系列最想讓你看到的事:

  • 不算成本:接近擲銅板。這也是原版範例的結論,看起來好像「不賺不賠」。
  • 扣掉成本:偏向虧損。每次來回的手續費和證交稅,讓 1:1 的計畫要贏到 58.3% 才能打平。

真實歷史也一樣:2R 計畫在過去 60 天實際觸發 29 次,平均 R 不算成本是 +0.086(看起來小賺),扣成本後是 −0.076(其實小賠)。正負號直接翻過來。

如果只用原版,你會看到什麼?

原版不算成本,所以你會看到「接近擲銅板」或「歷史平均小賺」,然後覺得可以試試看。台股版把成本放進來,才看得出這個策略在台股可能是一個長期穩定虧小錢的方法。這不是原作者的錯,而是美國券商幾乎零手續費、也沒有證交稅;規則不同,結論就不同。

7. 那天其實賺錢了

有趣的是,第 7 篇回放的那一天(11 月 12 日),這筆交易在 09:29 就碰到停利,2 張淨賺約 2,000 元。

如果只看那一天,你會覺得「這方法有效」。但 Time Machine 告訴你:那天是 14% 的那一種情況。重複做很多次,更常見的是先碰到停損。

這是我覺得 Time Machine 最有價值的地方:它把「我記得某次賺很多」這種印象,換成「平均起來會怎樣」的數字。人很容易記住賺錢的那一次,卻忘記其他七、八次的停損。

8. 模擬的限制

工具每次都會提醒「這是模擬,不是預測」,具體來說有這些限制:

  • 只看過去 60 天。財報、重大消息、處置、鎖漲跌停,都可能做出這 60 天沒有過的事。
  • 每根 K 棒獨立抽樣。真實的走勢有慣性(漲了容易再漲),波動也會聚集(大波動常接著大波動),這種隨機抽樣都忽略了。
  • 跳空跌破停損仍算 −1R。真實成交可能更差。
  • 歷史樣本不多。29 次觸發不算多,結果會受少數幾天影響。
  • 只模擬這一檔、這一種計畫。換一檔股票、換一種停損,結論可能完全不同,要各自重跑。

所以正確的用法是當成一道檢查:如果連模擬和歷史都偏向停損,就沒有理由覺得真的做會比較好。反過來,模擬看起來不錯,也不代表一定會賺。

開發小記

這一階段 Claude 寫的 7 個測試第一次就全部通過(前幾個階段常常是 Claude 自己手算的預期值錯了)。另外,用實際連線的資料和離線測試資料各跑一次,數字完全一樣,證明同樣的 seed 真的可以重現結果。

9. 這一步學到的事

01

看平均,不看單日

那天賺錢,是 14% 的那一種。重複做才看得出真相。

02

勝率要和報酬風險比一起看

2R 只要贏 33.3%,1R 要贏 50%;扣成本後都會更高。

03

成本會翻轉結論

擲銅板變偏向虧損,小賺變小賠。看策略一定要看扣成本的數字。

04

模擬是檢查,不是保證

連模擬都不好看就別做;好看也不代表會賺。

你可以照著說的話

有 FinMind Sponsor 方案,就能請 Claude 自己寫一個簡易版(記得要求它扣成本、固定 seed):

用 FinMind 的 1 分 K,抓 2409 在 2026-11-12 之前 60 個交易日的資料,合成 5 分 K。
模擬 10,000 次:從 09:20 以 29.0 進場開始,之後每一根 5 分 K 都從過去同一時段前後 2 根隨機抽一根,按漲跌比例接上去,價格限制在漲跌停之間。
停損 28.45、停利 30.1,同一根碰到兩邊算停損,到 13:20 為止。統計先停利、先停損、都沒碰到的比例。用固定的 seed 19。
同一個模擬,把手續費(0.1425%、6 折、最低 20 元)和當沖證交稅 0.15% 算進去,以 1 張停損出場的總虧損當 1R,列出扣成本和不算成本的平均 R。
停利 2R、扣掉成本後的報酬風險比變多少?損益兩平勝率是多少?
把「開盤 15 分鐘區間突破、停損放區間中點、停利 2R」這套規則,在 2409 過去 60 個交易日每一天重跑,告訴我觸發幾次、停利幾次、停損幾次,以及扣成本後的平均 R。

常見問題

結果偏向停損,就代表這檔股票不能做嗎?

代表「這個計畫」在「過去 60 天的走勢」下不划算。換停損位置、停利倍數、進場時間,結果會不同。但不要為了讓結果好看,一直調參數直到符合為止,那只是在配合過去的資料。

為什麼要用固定的 seed?

讓結果可以重現。你、我、任何人用同樣的計畫、資料和 seed,都會得到同樣的數字,方便檢查和比較。

60 天夠嗎?可以用更久嗎?

可以調整天數,但越久以前的走勢,可能越不像現在。60 天是原版的預設,算是「夠近也夠多」的折衷。

沒有 Sponsor 方案怎麼辦?

沒有分鐘資料就無法做這種模擬。不過第 4 篇的「扣成本報酬風險比」和損益兩平勝率,用免費資料就能算,也能先排除一大半不划算的計畫。

台股版的程式可以下載嗎?

台股版還在開發中,暫不提供下載。等整個系列完成後,我會整理好放上 GitHub,並詳細說明安裝與使用方式。在那之前,可以用上面「照著說的話」請 Claude 寫一個簡易版。

進階:給習慣終端機的讀者
python "$R/tw-timemachine/timemachine.py" run                    # trader/plan.json,10,000 次,seed 19
python "$R/tw-timemachine/timemachine.py" run --write            # -> trader/timemachine.json
python "$R/tw-timemachine/timemachine.py" run --replays 20000 --seed 7 --sessions 60 --window 2
python "$R/tw-timemachine/timemachine.py" run --until 13:00 --json

抽樣池:計畫日前 N 個交易日中 53 根連續交易 5 分 K 都完整的日子,每根換算成相對前一根收盤的比例(開、高、低、收)。1R = 1 張停損出場的價差+買賣手續費+證交稅;先停利 = 淨賺 ÷ 淨虧;都沒碰到 = 平倉價出場的淨損益 ÷ 淨虧。判斷門檻:碰到一邊的模擬中先停利比例與 1 ÷(1+報酬風險比)相差 5、15 個百分點。1 分 K 快取在 trader/state/tw_cache/kbar/。

下一篇預告

到這裡,從盤前選股、盤中進場、停損停利、張數、風控到模擬,整條流程都有了,只差最後一步:下單。下一篇會談原版「三道閘門」的設計、台股沒有交易所停損停利單的影響,以及我為什麼決定先只產生委託單、由人親手下單。

本文僅為軟體工具教學與開發經驗分享,不構成任何投資建議。模擬與歷史回測是用過去資料做的計算,不代表未來結果;文中個股僅為示範。當沖風險極高,請自行評估並為自己的交易決策負責。費率與方案以撰文時為準。

0Shares


0 Comments
Oldest
Newest Most Voted

相關文章

Day Trader Skill改台股版7-盤中進場判斷與通知

盤前選好股票之後,開盤才是真正的考驗:什麼時候才算突破?這一篇記錄第三階段做的進場判斷與價格提醒工具,用台股真實的 1 分鐘 K 線回放一整天,看一筆交易從觸發、漲停、到回落的過程。

Day Trader Skill改台股版6-台股盤前掃描測試

開盤前要看哪些股票?這一篇記錄 Claude 做出的四個盤前工具、用真實資料跑出的早報

Day Trader Skill改台股版5-風控閘門

這一篇記錄台股版的風控加了哪些檢查、各種被擋下的實際畫面,以及為什麼我刻意讓新手第一次執行時「一定會被擋下」。

Day Trader Skill改台股版4-程式碼重寫

原版保持不動,另開一個台股版資料夾,計算的核心重寫;原版好的設計(流程分工、檔案接力、用歷史資料回放、不准吹噓的說話規範)全部保留。
(adsbygoogle = window.adsbygoogle || []).push({});

最近發文

加入我們

Categories

最新留言

(adsbygoogle = window.adsbygoogle || []).push({});
0
本文有想法或疑問嗎?歡迎討論x
()
x