本文目錄
最後更新日期:2026-09-27
前言:券商 API 串接到底在解決什麼問題?
如果你也曾經每天早上盯著盤勢手動下單、錯過關鍵進場點,那你一定能理解「券商 API 串接」這件事有多重要。所謂券商 API 串接,簡單說就是透過程式碼直接跟券商的下單系統溝通,讓你可以用 Python 或其他程式語言自動化下單、查詢庫存、抓取即時報價,不用再開著看盤軟體手動點按鈕。
這篇文章會從申請開通、券商比較、Python 範例程式,一路講到常見的串接地雷。內容以公開文件與官方套件為主,並在需要說明風險時,用「情境示例」的方式呈現,而不是假裝我幫你實測過每一家券商。所有技術規格(下單頻率、延遲等)請以各券商最新官方公告為準,本文僅供程式教學與研究參考。
券商 API 申請開通完整流程(以元大、富邦、群益為例)
先講結論:每家券商的申請流程大同小異,但審核時間跟資格門檻差異蠻大。以下流程是根據各券商公開資訊整理的通用步驟,實際細節請以券商官網或營業員說明為準。
元大證券 API(Shioaji)教學重點
Shioaji 是目前台灣散戶社群討論度相對高的券商 API,主要原因是官方文件與範例相對完整、社群資源多。申請流程大致如下:
1. 開立元大證券帳戶(已有帳戶可跳過)
2. 向分點或透過官方管道申請 API 使用權限
3. 簽署電子交易相關約定書
4. 安裝 Shioaji Python 套件:pip install shioaji
5. 依官方說明取得 API Key 與 Secret Key
審核時間依券商公告與個案而異,常見落在數個工作天。部分券商會要求帳戶具備一定交易紀錄或資產條件,建議申請前先向營業員確認清楚,避免白跑一趟。
富邦新一代 API(Fugle API)申請流程
富邦的新一代 API(Fugle API)介面相對現代化,支援 WebSocket 即時報價,對需要即時行情的策略較友善。申請時通常需要:
- 富邦證券帳戶(複委託帳戶一般不適用)
- 線上簽署 API 服務條款
- 等待後台開通
關於延遲數字:網路上常流傳各家券商的「報價延遲毫秒數」,但這類數字高度取決於你的網路環境、伺服器節點、當下盤況與測試方法。本文不提供未經公開驗證的延遲實測數字,如果你對延遲敏感,建議自行在目標環境用官方 API 做 round-trip 量測,並記錄測試時間與方法。
群益證券 API 與永豐金 API 串接教學
群益(PSC API)與永豐金等券商的申請邏輯類似,通常需要臨櫃或線上簽約,開通後會拿到憑證檔案。憑證要妥善保存,遺失重新申請往往需要數個工作天。實際流程與所需文件,請直接參考各券商官方說明。
券商 API 選擇比較:程式交易券商怎麼挑最適合?
這是最常被問到的問題:「到底該選哪家券商的 API?」沒有標準答案,要看你的策略類型跟交易頻率。下表整理各券商的公開資訊面向供參考,星等為社群常見的主觀評價,非官方評分:
| 項目 | 元大證券 | 富邦新一代 | 群益證券 | 永豐金 |
|---|---|---|---|---|
| API 名稱 | Shioaji | Fugle API | PSC API | 依官方公告為準 |
| 官方文件完整度(社群主觀) | 較完整 | 中等 | 較少 | 中等 |
| 開通時間 | 依官方公告 | 依官方公告 | 依官方公告 | 依官方公告 |
| 報價延遲 | 請自行量測 | 請自行量測 | 請自行量測 | 請自行量測 |
| 社群資源 | 豐富 | 中等 | 較少 | 中等 |
| 適合策略類型 | 中低頻 | 中高頻/當沖 | 中低頻 | 波段/當沖 |
提醒:手續費折扣、下單頻率限制、API 規格等都會變動,下單前務必查閱各券商最新官方公告。
如果你做的是當沖或較高頻的策略,即時行情與下單延遲會是重點;如果你比較在意文件與社群支援,選擇資源較多的券商會比較好上手。
Python 自動下單實戰:從報價抓取到委託送出
以下以元大 Shioaji 為例,示範一個含模擬環境切換、錯誤處理與委託回報監聽的最小範例。請注意:套件 API 可能隨版本更新,實際參數請以官方文件為準。
import time
import shioaji as sj
用醒目的常數標示目前環境,避免誤觸正式帳戶
IS_LIVE = False # True = 正式環境, False = 模擬環境
api = sj.Shioaji(simulation=not IS_LIVE)
try:
api.login(api_key="你的API_KEY", secret_key="你的SECRET_KEY")
except Exception as e:
print(f"登入失敗:{e}")
raise
委託回報(Order Callback)監聽
def on_order_event(stat):
print(f"[Order Callback] {stat}")
api.set_order_callback(on_order_event)
抓取即時報價
contract = api.Contracts.Stocks["2330"]
snapshot = api.snapshots([contract])
print(snapshot)
建立委託單(僅為教學範例,價格與數量請自行調整)
order = api.Order(
price=580,
quantity=1,
action=sj.constant.Action.Buy,
price_type=sj.constant.StockPriceType.LMT,
order_type=sj.constant.OrderType.ROD,
account=api.stock_account,
)
try:
trade = api.place_order(contract, order)
print(trade)
except Exception as e:
print(f"下單失敗:{e}")
每次呼叫 API 之間加延遲,避免觸發頻率限制
time.sleep(0.5)
真實上線時,真正困難的通常不是「怎麼下單」,而是「怎麼處理斷線重連、委託回報、部位管理」這些細節。常見的錯誤是:第一版程式沒處理好斷線重連,盤中程式異常結束後,部位就掛在那邊沒人管。建議一開始就把重連與例外處理寫進架構。
如果你不想從零開始寫策略回測跟盤中監控,可以搭配 TradingView 來做技術分析跟策略視覺化,抓到訊號後再讓 API 自動送單,省下重複開發圖表工具的時間。
避雷防坑指南:券商 API 串接最容易踩的 5 個地雷
以下情境為教學示例,非實際發生於特定個人,目的是讓你理解風險點。
地雷一:憑證過期沒察覺,程式默默失效
券商 API 的憑證通常有有效期限。常見的錯誤是:憑證過期後程式沒有跳出明確錯誤,而是靜靜地下單失敗,等發現時已經錯過好幾個交易日。
防範建議:在程式裡加入憑證到期日提醒,提前一個月開始每天檢查。
地雷二:模擬環境跟正式環境參數搞混
Shioaji 等 API 通常有模擬與正式環境之分。常見的錯誤是:忘記切換 simulation 參數,讓測試單直接打到正式帳戶。
防範建議:在程式最上方用醒目常數標示環境(例如 IS_LIVE = False),並在登入後印出目前環境,每次上線前人工確認。
地雷三:忽略下單頻率限制被鎖 API
券商為了系統穩定,通常會限制每秒請求次數。具體上限請查閱各券商官方文件(各家規定不同,且會調整)。常見的錯誤是:寫了迴圈測試策略卻沒加 time.sleep(),短時間內狂發請求,導致 API 被暫時封鎖。
防範建議:每次呼叫 API 之間加上延遲,並用 try-except 包住呼叫,避免無限迴圈瞬間打爆額度。
import time
def safe_call(func, args, retry=3, delay=0.5, *kwargs):
for i in range(retry):
try:
return func(args, *kwargs)
except Exception as e:
print(f"第 {i+1} 次失敗:{e}")
time.sleep(delay * (i + 1))
raise RuntimeError("重試多次仍失敗")
地雷四:委託回報處理不當,重複下單
API 多為非同步架構,委託回報(Order Callback)可能延遲送達。常見的錯誤是:程式邏輯寫成「送出委託後立刻檢查是否成交,沒成交就再送一次」,造成同一訊號重複下單。
防範建議:用委託單的唯一識別碼(Order ID)追蹤狀態,而不是用時間或訊號判斷。
地雷五:忽略盤中系統維護時間,程式在錯誤時段運行
盤中可能會有系統維護或公告時段,此時 API 可能回傳異常資料。常見的錯誤是:程式沒有判斷交易時段,在非交易時間誤觸發下單邏輯。
防範建議:在程式最外層加上交易時段判斷(例如 09:00–13:30),非交易時間直接跳過下單邏輯。
FAQ 常見問題
券商 API 串接需要收費嗎?
大部分券商的 API 使用本身不收費,但通常要求你在該券商開戶並維持一定交易量或資產門檻。實際規則各券商每年都可能調整,建議直接查官方公告或詢問營業員。
沒有寫程式基礎可以學會券商 API 串接嗎?
有基礎會學得快很多。若完全零基礎,建議先花 1–2 週學 Python 基本語法(迴圈、函式、字典),再搭配官方範例與社群教學練習,大約 1 個月可以做出簡單的自動查詢報價功能。
券商 API 串接後可以做全自動交易嗎?
技術上可行,但強烈建議先在模擬帳戶跑一段時間,確認策略邏輯與風控機制穩定後,再小資金上線正式帳戶。全自動交易最怕的往往不是策略不準,而是程式本身出現未預期的錯誤(網路斷線、API 回傳格式異常等),這些都需要時間測試才能發現。
結論:從教學到實戰,你準備好開始了嗎?
券商 API 串接這條路,說難不難,說簡單也絕對不簡單——尤其是那些「踩過才知道」的細節地雷,往往才是決定你能不能穩定運行程式交易的關鍵。這篇文章把申請流程、券商比較、Python 範例與常見地雷整理給你,希望能幫你少走一些彎路。
如果你已經準備好要開始串接 API,建議先從模擬帳戶開始練習,搭配 TradingView 做好策略視覺化與技術分析,把邏輯想清楚後再進入正式環境。程式交易不是一蹴可幾的事,穩紮穩打,才能走得長久。
免責聲明:本文僅供程式教學與研究參考,不構成任何投資建議。文中所有技術規格、費用、延遲數字與申請流程,請以各券商最新官方公告為準。範例情境僅為教學示例,非實際測試數據。
有任何串接過程遇到的問題,歡迎在下方留言分享你的經驗,我們一起討論、一起少踩雷!
延伸閱讀(官方資源,建議優先查閱):
- 元大 Shioaji 官方文件與 GitHub 範例
- 富邦 Fugle API 官方文件
- 群益 PSC API 官方說明
(官方連結請依各券商官網最新網址為準,本文不代為背書任何特定版本。)