跳轉到

前置檢查

進入風控核心路徑(保證金試算、部位比較)之前,系統先對每一筆委託執行六項前置檢查。任何一項未通過,委託即立刻被拒,不再繼續後續的計算。

這六項檢查的共同特點是代價極低——多數只需查對一個狀態或比較一個數字,幾乎不消耗計算時間。愈早攔下不合規的委託,後段愈昂貴的計算就愈少被浪費。


一、連線登入與速率上限

登入狀態

客戶端必須在連線上先完成登入,才能送出委託。未登入的連線送出委託請求會直接被拒,系統不記錄任何風控狀態。

速率上限

速率限制適用於客戶端送往 Tapio 的所有請求,包含下單、改價、減量、刪單,以防止單一使用者的大量請求影響伺服器穩定。每條連線各自維護一個獨立的速率限制器,採 Token Bucket 演算法:

  • 每秒以固定速率補充令牌
  • 每筆請求(無論類型)消耗一枚令牌
  • 桶內令牌耗盡後,下一筆請求立刻被拒;不會等待,也不會排隊

速率上限以連線為單位計算,不同帳號、不同客戶端各自獨立,互不影響。

速率參數可在部署設定中調整:

參數 預設值 說明
每秒穩態速率 3 每秒補充的令牌數,有效範圍 1–256
瞬間突發上限 5 桶的容量,即允許的最大積累令牌數

二、帳號旗標

系統在此確認帳號層級的交易許可。例如:帳號是否被凍結、是否禁止市價單、是否禁止新開倉。

詳細的旗標定義、設定方式與盤中生效機制,請參閱「帳號層級控管」。


三、系統總開關

系統設有一個全域開關,預設為開啟。管理員可透過管理介面即時切換,影響範圍如下:

操作 受影響
新委託(下單)
改價 / 減量
刪單(取消)
客戶端登入

開關關閉時,所有在途委託不受影響——已送往交易所的有效委託單照常維持,只是不再接受新的操作請求。

狀態持久化

每次切換都會先確認落盤後才生效。若前一交易日關閉前已將開關設為關閉,重啟後依然保持關閉,不會自動開啟。


四、欄位合法性與商品支援

系統對委託中的每個欄位進行基本合法性檢查,任一項不合法即拒絕整筆:

欄位 檢查內容
價格 數值合法(正數);市價單不帶價格
口數 正整數,且不超過單筆上限(見下節)
商品代碼 系統能識別,且已完成盤前資料載入
委託方向 買 / 賣
開平倉碼 自動、開倉、平倉 三者之一;當日沖銷目前不支援
委託類型 限價單、市價單、範圍市價單

當日沖銷目前不支援

送出開平倉碼為當日沖銷的委託會在此階段被直接拒絕。

商品支援範圍:目前 Tapio 僅支援期貨。選擇權、價差單等商品在此階段即被拒絕,不會進入後續的風控核心路徑。


五、單筆口數上限

台灣期交所對單筆委託的口數設有上限,Tapio 依期交所現行規定執行。

以下為台灣期交所現行規定(108 年 5 月 27 日起生效):

商品類別 一般交易時段
限價單/範圍市價單
一般交易時段
市價單
盤後交易時段
限價單/範圍市價單
盤後交易時段
市價單
股票期貨及選擇權 499 口 10 口 499 口 5 口
期貨商品(不含股票期貨) 100 口 10 口 100 口 5 口
選擇權商品(不含股票選擇權) 200 口 10 口 200 口 5 口

部分商品限制目前不適用

不支援的商品類別在欄位合法性階段(上節)即被拒絕,不會進入此項口數檢查。上表依期交所完整規定呈現,適用範圍以當前支援的商品為準。

上限為單筆,不含累計

此檢查只看本筆委託的口數,與帳號已送出的有效委託單總量無關。累計部位、委託中口數的上限由「部位限制」另行管控。


六、行情資料可用

保證金試算需要以當前行情為基礎計算所需保證金(見「保證金檢查」)。若系統尚未收到該商品的行情資料,無法進行試算,委託會在此被拒。

正常交易日開盤後,行情資料通常已完整就緒。此項檢查觸發的典型情境是:

  • 開盤初期行情尚未推送完畢,某商品的第一筆委託提前送達
  • 連線剛建立,行情快照尚未完成同步

行情就緒後,同一商品的後續委託不再受此項限制。