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

0Shares
Image

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

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

風控閘門:讓程式替你說「不」

停損停利和張數都算好了,但在送出之前還有最後一道關卡:風控。這一篇記錄台股版的風控加了哪些檢查、各種被擋下的實際畫面,以及為什麼我刻意讓新手第一次執行時「一定會被擋下」。

  • 適合:常常「再做一筆就好」的人
  • 工具:Claude 桌面版
  • 範例:2026-11-13 真實漲跌停與處置股資料

1. 為什麼需要一道閘門

當沖最常見的失控,不是不知道規則,而是盤中「再做一筆就好」「這次停損放寬一點」「已經虧了,加碼攤平」。這些決定都發生在情緒最差的時候。

原版 day-trader-skill 的做法,是在下單前放一道風控閘門:每一筆委託都要先通過你事先設定的規則。結果只有兩種:

PASS

通過

符合你的所有規則,可以進入下一步。注意:通過只代表「符合你的規則」,不是建議你買。下單前仍要你親自確認。

BLOCK

擋下

違反任何一條規則就擋下,而且不會再問你「要不要硬做」。想做,只能回頭修改計畫,重新檢查。

這一篇的位置:

  1. 停損停利第 4 篇
  2. 計算張數第 4 篇
  3. 風控本篇
  4. 你確認逐筆說 yes
  5. 下單之後的階段

小辭典

擋下 vs 注意
「擋下」是違反規則,這筆不能做;「注意」是提醒,不影響通過,但你應該看一下。
進場 vs 出場
進場是買進建立部位;出場是賣出手上已有的股票。兩者的檢查標準不同。
處置股
股價波動異常、被交易所限制交易方式的股票,處置期間改成每隔幾分鐘撮合一次。

2. 原版有什麼、台股版加了什麼

原版的風控已經有 16 項檢查,例如每筆最大虧損、每日虧損上限、每天交易筆數、進場時間窗。我請 Claude 逐項對照台股規則:

逐項看原版風控的每一個檢查:哪些可以沿用、哪些要依台股規則修改、還缺哪些台股才有的檢查?
列成表格,說明理由。

對照的結果如下(表中的數字是範例設定):

檢查擋下的情況和原版比
當沖資格還沒確認自己有現股當沖資格新增(取代美股的 PDT 規則)
處置股股票在處置期間(分盤撮合,開盤突破失效)新增
漲跌停進場價不在今日漲跌停之間;停利超過漲停價新增
格式代號不是台股格式、超過 1 張卻不是整張、零股沒開啟、限價不在合法檔位修改(原版是美股代號與整數股)
交易日與時間非交易日、09:00 前或 13:30 後、早於 09:15、晚於 13:00、已過 13:20 平倉時間修改(台北時間、台股行事曆)
每筆虧損停損出場虧損(含手續費與證交稅)超過每筆上限 1,500 元修改(原版沒算成本)
報酬風險比扣成本後低於 1.0修改(原版沒算成本)
每日風險今天已進場的最大虧損加總+這筆,超過每日上限 4,500 元沿用
每日筆數今天已進場 3 筆沿用
停損必填沒有停損;停損不低於進場價沿用
金額、部位、現金單筆超過 20 萬、單一股票超過資金 75%、會用到保留現金沿用(改成新台幣)
重複下單同一檔今天已經買過,或同一批提案重複沿用
禁止清單代號在你的「永遠不做」清單沿用
放空賣出超過持股(先賣後買)修改:第一階段一律擋下

每一個數字(每筆上限、每日上限、時間窗)都在設定檔裡,可以依自己的情況調整。

3. 第一次執行,一定會被擋

接續第 4 篇的範例:2409 買 3 張,限價 29.75、停損 29.35、停利 30.55。用預設設定檢查,結果是:

BLOCK #1 買進 2409 3 張,進場
        進場 29.75(限價)、停損 29.35、停利 30.55:每股風險 0.4
        停損出場虧 1,483 元(含成本 283 元,上限 1,500 元),扣成本後報酬風險比 1.42(下限 1.0)
        今天在這筆之前:0 / 3 筆進場,已用風險 0 元 / 4,500 元
        擋下:設定 daytrade_eligible 不是 true:尚未確認你有現股當沖資格(需簽當沖契約並符合券商條件)
        注意:停損只存在計畫裡,沒有掛在券商:記得設定條件單或開提醒

虧損在上限內、報酬風險比也夠,卻被擋下了。原因是設定裡「我已確認有當沖資格」這個開關預設是關閉的。

為什麼故意這樣設計?

現股當沖需要開戶滿 3 個月、最近一年成交 10 筆以上(已開信用帳戶者不受限),並向券商申請、簽署同意書(詳見第 3 篇)。沒有資格卻下了當沖單,當天賣不掉就得全額交割。與其讓新手在不知情的情況下踩雷,不如第一次就擋下來,逼你先去確認。

向券商確認有資格後,把設定裡的開關打開(可以請 Claude 幫你改:「把設定檔的 daytrade_eligible 改成 true」),再檢查一次:

PASS  #1 買進 2409 3 張,進場
        進場 29.75(限價)、停損 29.35、停利 30.55:每股風險 0.4
        停損出場虧 1,483 元(含成本 283 元,上限 1,500 元),扣成本後報酬風險比 1.42(下限 1.0)
        今天在這筆之前:0 / 3 筆進場,已用風險 0 元 / 4,500 元
        注意:停損只存在計畫裡,沒有掛在券商:記得設定條件單或開提醒
1 筆通過、0 筆擋下(台北時間 2026-11-13 09:20)。通過後的可用現金 210,674 元。
通過只代表符合你的規則,不是建議。下單前仍要你逐筆確認。

注意那一行「注意」:台股交易所沒有停損停利一起掛的單,這筆的停損只存在計畫裡。通過之後,你仍然要自己用券商的條件單設好停損,或開提醒手動出場。

4. 各種被擋下的實際畫面

以下都是用 2026 年 11 月 13 日的真實資料跑出來的結果,每一個都是開發時寫成自動測試的情境。

處置股

2455 在 11 月 11 日到 17 日是處置期間:

BLOCK #1 買進 2455 1 張,進場
        擋下:2455 處置中(2026-11-11 ~ 2026-11-17,第一次處置):分盤撮合,開盤區間突破的規則不適用

這筆的虧損、報酬風險比其實都合格,但處置期間每 5 分鐘以上才撮合一次,「開盤 15 分鐘突破高點」的邏輯完全不成立。

停利超過漲停

2409 當天的漲停價是 32.1,計畫在 31.5 進場、停利 32.5:

BLOCK #1 買進 2409 3 張,進場
        擋下:停利 32.5 超過漲停價 32.1,不可能成交
        擋下:停損出場虧 1,798 元 超過每筆上限 1,500 元

一筆單可能同時違反好幾條,工具會全部列出來,讓你一次修正,而不是改一條、再被另一條擋。

張數與價格格式

BLOCK #1 買進 2409 1500 股
        擋下:1500 股不是整張:整股與零股要分開下單
BLOCK #2 買進 2603 500 股(零股)
        擋下:500 股是零股,但設定沒有開啟零股(allow_odd_lot)
BLOCK #3 買進 2884 1 張
        擋下:限價 47.33 不在升降單位上

時間與交易日

擋下:現在 09:10 早於最早進場時間 09:15
擋下:2026-10-09 不是交易日

09:15 之前開盤區間還沒形成;10 月 9 日是國慶連假。時間一律用台北時間計算,不受電腦時區設定影響。

今天已經虧不起了

假設今天已經進場兩筆,最大虧損各 1,600 元:

BLOCK #1 買進 2409 3 張,進場
        今天在這筆之前:2 / 3 筆進場,已用風險 3,200 元 / 4,500 元
        擋下:今天累計風險 3,200 元 + 這筆 1,483 元 會超過每日上限 4,500 元

這裡算的是「如果每筆都停損出場,今天最多會虧多少」,不管前兩筆最後是賺是賠。這是最保守、也最能防止失控的算法。

一次送好幾筆,合起來超標

把每日上限設成 2,500 元,一次送出三筆提案。工具會依序檢查,前一筆通過就當作已成交:

PASS  #1 買進 2409 3 張,進場
        停損出場虧 1,483 元(含成本 283 元,上限 1,500 元)
BLOCK #2 買進 2884 1 張,進場
        停損出場虧 1,348 元(含成本 148 元,上限 1,500 元)
        擋下:今天累計風險 1,483 元 + 這筆 1,348 元 會超過每日上限 2,500 元
BLOCK #3 買進 2409 1 張,進場
        擋下:2409 今天已經買過,或這批提案裡重複

第二筆單獨看完全合格,但和第一筆加起來就超過每日上限。第三筆則是重複下單。「每一筆都沒問題、合起來出問題」,正是人最容易忽略的情況。

先賣後買

BLOCK #1 賣出 2409 3 張,放空
        擋下:賣出 3000 股超過持有的 0 股:先賣後買(放空性質)第一階段不支援

5. 出場永遠不會被擋

風控有一條很重要的原則:買進可以擋,賣出持股不能擋。想像一下:13:22 已經過了平倉時間,手上還有 3 張,這時如果風控說「已過平倉時間,擋下」,你反而出不了場,當沖變成留倉、甚至要交割。

所以賣出手上已有的股票,只檢查格式,其他規則一律只提醒。即使設定裡沒確認當沖資格、時間已過 13:20:

PASS  #1 賣出 2409 3 張,出場
        出場:賣出持有的 3000 股(持有 3000 股)。出場不受每日上限限制

設計規則時,先想「怎麼出得去」

這是原版就有的設計,我覺得是整套風控最值得學的地方。任何限制都只該用來阻止「進去」,不能阻止「出來」。

6. 拿不到資料時怎麼辦

處置股資料需要 FinMind 的 Backer 方案(第 3 篇),用免費方案就查不到。這時有兩種做法:

做法結果適合
預設:警告照樣檢查其他項目,並顯示「注意:無法確認是否為處置股」免費方案、願意自己留意的人
嚴格:擋下只要有任何資料拿不到,就擋下想讓程式全權把關的人

以漲跌停資料為例(模擬查不到 11 月 16 日的資料),預設模式:

PASS  #1 買進 2409 3 張,進場
        注意:無法確認漲跌停:查不到 2409 2026-11-16 的漲跌停價

切換成嚴格模式(設定 require_market_data 為 true)後,同一筆變成:

BLOCK #1 買進 2409 3 張,進場
        擋下:無法確認漲跌停:查不到 2409 2026-11-16 的漲跌停價

我選擇預設「警告」,原因是不想讓免費方案的讀者完全不能用;但工具一定會誠實說出它沒檢查到什麼,而不是假裝都檢查過了。另外要記得:交易日曆無法事先知道颱風假。

7. 改一個數字,就要重新檢查

風控檢查完會留下紀錄,每一筆委託都會算出一個指紋(由股票、張數、價格等內容算出的一串代碼)。原版的下單 skill 只接受「今天檢查過、指紋完全相同」的委託,台股版之後開發下單階段時也會照這個設計。

  • 3 張改成 2 張?指紋不同,要重新檢查。
  • 限價 29.75 改成 29.80?指紋不同,要重新檢查。
  • 昨天檢查過的委託?日期不同,不算數。

這是為了防止「檢查通過之後,偷偷把張數加大」這種事。不管是人還是 AI 改的,都一樣要重新過關。

8. 這一步學到的事

01

規則要在冷靜時寫好

盤中情緒最差的時候,交給事先寫好的規則判斷。

02

擋下就是擋下

不提供「硬做」的選項。想做,就回頭修改計畫。

03

只擋進場,不擋出場

任何限制都不該讓你出不了場。

04

誠實說出沒檢查到什麼

資料拿不到時,警告比假裝通過更重要。

你可以照著說的話

不需要任何現成工具,也能請 Claude 幫你建立自己的風控:

幫我建立一份台股當沖的個人風控規則,逐項問我:每筆最多虧多少(含成本)、每天最多虧多少、每天最多幾筆、幾點後不進場、幾點前一定平倉、單一股票最多占資金幾成。最後整理成一張清單。
用我的風控清單檢查這筆單:2409 買 3 張,限價 29.75,停損 29.35,停利 30.55,手續費 6 折,現股當沖。用 FinMind 資料確認今天的漲跌停和是否為處置股。每一條都告訴我通過或擋下,以及原因。
今天我已經進場兩筆,停損出場最多各虧 1,600 元。如果再做這一筆,今天的總風險會不會超過我的每日上限?
幫我寫一個台股風控檢查程式:照我的清單檢查每一筆委託,結果只有通過或擋下;賣出持股一律不擋;拿不到資料時要明確警告。寫好自動測試,每一條規則至少一個擋下的例子。

常見問題

可以把某些檢查關掉嗎?

大部分限制都在設定檔裡,可以調整數字,時間窗也可以關閉。但建議只在冷靜的時候改,而且不要在盤中為了做某一筆而改規則,那正是風控要防止的事。

怎麼確認自己有沒有當沖資格?

直接問你的券商,或在券商 App 查看是否已簽署現股當沖相關文件。條件以券商與證交所規定為準。

看到「注意」需要理會嗎?

需要看,但不影響通過。最常見的是「停損只存在計畫裡」,提醒你自己去券商設條件單或開提醒;以及「無法確認某項資料」,提醒你要自己查。

每日風險為什麼不看實際賺賠?

因為盤中你不知道前幾筆最後會怎樣。用「每筆都停損出場」的最壞情況計算,才能確保今天最多只虧到你設定的金額。

通過了就代表可以買嗎?

不是。通過只代表符合你自己設定的規則,不是任何建議。下單前仍要你逐筆確認,最後的決定在你。

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

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

進階:給習慣終端機的讀者

風控相關的設定欄位與檢查指令:

python "$R/tw-risk/check.py" --now "2026-11-13 09:20"          # 讀 trader/orders.json,寫 trader/state/risk.json
python "$R/tw-risk/check.py" --no-write --json                  # 只看,不記錄
# trader/config.json 相關欄位
daytrade_eligible            # 已確認有當沖資格(預設 false)
max_loss_per_trade_twd       # 每筆最大虧損(含成本)
max_daily_loss_twd           # 每日最大風險
max_trades_per_day / max_orders_per_day
min_reward_risk_after_cost   # 扣成本後報酬風險比下限
no_entries_before / no_entries_after / flat_by
block_disposition_stocks     # 擋下處置股(預設 true)
require_market_data          # 拿不到資料就擋下(預設 false)
allow_odd_lot / blocked / max_position_pct / cash_buffer_pct

結束碼 0 代表全部通過、1 代表至少一筆擋下。今天已送出的委託從 trader/state/broker.json 讀取;指紋為委託內容(不含說明欄)的 SHA-256。

下一篇預告

到這裡,台股版第一階段(停損停利、計算張數、風控)全部完成,而且只用免費資料。接下來進入第二階段:盤前準備。美國國會議員交易追蹤在台股沒有對應資料,我打算改成三大法人與券商分點的籌碼追蹤,再加上台股特有的月營收。開發完成後,再繼續寫下一篇。

本文僅為軟體工具教學與開發經驗分享,不構成任何投資建議。範例僅用於說明風控檢查,不代表任何個股的買賣建議。當沖風險極高,請自行評估並為自己的交易決策負責。法規與資格條件以撰文時為準,請以證交所與券商最新規定為依據。

0Shares


0 Comments
Oldest
Newest Most Voted

相關文章

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

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

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

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

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

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

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

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

最近發文

加入我們

Categories

最新留言

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