Day 11 把 settings、skills、rules、agents 各自的內容處理好,有關 CLAUDE 加目錄設定就告一段落了。接下來要進實際的專案來測試看看,而排在最後面的專案是總體經濟與股票相關的,並要嘗試接上 GitHub Pages 的自動更新。
而這個專案需要串接外部 API,其中有些需事先申請,而且其中申請證券戶要花上幾天,不是當天想到當天就有。
所以今天不寫程式。今天只做一件事:把該辦的帳號辦一辦,該申請的金鑰申請下來,約十天後會用到(想要跟著做的話,現在就得動手)。
先給結論,約十天後的範例會用到:永豐金 Shioaji(台股)+ yfinance(美股與跨市場)+ FRED(總體經濟)。另外還需要一個 GitHub 個人帳號。
| 要辦的 | 前提 | 要等多久 | 費用 |
|---|---|---|---|
| 永豐金 Shioaji API | 必須先有永豐金證券帳戶 | 開戶需幾個工作天,API Key 當下就給 | 免費 |
| FRED API Key | 一個 email | 註冊完當下就給 | 免費 |
| yfinance | 無 | 不用申請 | 免費 |
| GitHub 個人帳號 | 一個 email | 當下 | 免費 |
順序上唯一有卡點的是第一項。沒有永豐金證券的戶頭,就拿不到 Shioaji 的 API Key,而開戶審核不是即時的。打算跟著後面幾天做的話,這一項要先去辦。
Shioaji 是永豐金證券提供給自家客戶的程式交易 API,不是公開資料服務。要用它,必須是永豐金證券的客戶。
沒有戶頭的話,永豐金有線上開戶:備妥雙證件(身分證 + 健保卡或駕照)、本人名下的銀行帳戶資料,在手機或電腦上完成身分驗證與問卷,送出後等審核,開戶本身不收費。
開戶完成後會拿到帳號與密碼,這兩個是接下來每一步的基礎。
有戶頭之後,剩下的都在網頁上點:
第 5 步有一個不能忘記的地方:Secret Key 只在建立當下顯示一次,關掉頁面就再也看不到,只能刪掉重辦。當場複製起來。
至於權限,如果只是要抓資料做評分、暫時不打算下單,第 4 步可以先不勾「下單」。少一項權限就少一個出事的面向。
官方建議寫進 .env,用 python-dotenv 讀進來:
SJ_API_KEY=...
SJ_SEC_KEY=...
SJ_CA_PATH=...
SJ_CA_PASSWD=...
這裡要提醒的是 Day 11 講過同一件事:.env 和 .pfx 都要進 .gitignore,而且要在第一次 commit 之前就進去。金鑰一旦被推上 GitHub,就算馬上刪 commit 也要當作已經外洩,回頭重辦一組比較安全。
Shioaji 有明確的用量上限,而且級距是綁交易量的:
| 近 30 日成交金額(證券/現貨整股) | 每日流量 |
|---|---|
| 0 元 | 500 MB |
| 1 元 – 1 億元 | 2 GB |
| > 1 億元 | 10 GB |
期貨那邊一樣是這三階,級距換成近 30 日成交口數(0 口/大台 1,000 或小台 4,000 口以內/超過)。流量在開盤日早上 8:00 重置。
其他幾條限制:同一身分證字號最多 5 個連線、行情查詢 10 秒 50 次、帳務查詢 5 秒 25 次、委託操作 10 秒 250 次、訂閱上限 200 個、登入一天上限 1,000 次。超過流量時行情查詢會回空值,超過次數則暫停服務一分鐘,屢次違規會被停掉 IP 與 ID 的使用權。
對只是每天抓一次盤後資料的用途來說,500 MB 綽綽有餘。會撞到牆的通常不是資料量太大,而是迴圈寫錯、斷線重連沒退避、或是錯誤重試沒有上限,這幾種寫法會在幾分鐘內把一天的額度燒光。
想當初我就是因為想知道自己燒掉多少,順手寫了一個查用量的小工具。 這個工具我放在 shioaji-usage。
FRED 是聖路易聯準銀行的經濟資料庫。總經那一整層的資料,包括利差、CPI、失業率、高收益債利差、聯準會資產負債表、OECD 各國出口,都從這裡拿。
申請流程比 Shioaji 短很多,不需要任何帳戶或身分證明:
額度方面:帶 API Key 的請求速率上限是每分鐘 120 次,沒帶金鑰只有 30 次。官方沒有公布每日總量。對每天更新一次、一次抓十幾條序列的用法,這個額度完全不是問題。
存放方式跟上一節一樣,環境變數 FRED_API_KEY 或一個被 gitignore 的檔案,二選一。
yfinance 完全不需要申請,pip install yfinance 就能用。它拿的是 Yahoo Finance 公開端點上的資料,涵蓋美股、ETF、指數、外匯、部分台股代號,而且有很長的歷史資料,回測要拉十幾年的價格,這是最省事的來源。
有個部分要講清楚:yfinance 不是 Yahoo 的官方 API,也沒有得到 Yahoo 的背書。 它是社群套件,靠著呼叫 Yahoo 前端在用的端點運作,官方定位是研究與教學用途、個人使用。這代表三件事:
所以用法預計是:yfinance 負責「長歷史 + 廣度」,不負責「準確 + 即時」。真的要精確到單一台股的當日資料,要靠 Shioaji。
會選永豐是因為它的 Python 套件最單純,pip install shioaji 之後就是一般的 Python 物件,不用裝 COM 元件、不用綁 Windows。但台灣提供程式交易 API 的券商不只一家,有些的語言生態跟永豐差很多,開戶之前值得先看一眼。
以下是 CLAUDE 整理的
| 券商 | API 名稱 | 主要語言 | 作業系統 | 功能範圍 | 申請門檻 | 額度/限制 |
|---|---|---|---|---|---|---|
| 永豐金 | Shioaji | Python | Windows/macOS/Linux | 行情、歷史 K 線、下單、帳務、期權 | 永豐金證券戶 → 網頁自助申請 API Key + 憑證,免營業員 | 每日流量 500 MB/2 GB/10 GB(依近 30 日成交金額三階);5 連線;行情 10 秒 50 次;訂閱 200 個 |
| 富邦 | Neo API | Python、C#、Node.js | Windows/macOS/Linux | 行情、下單、帳務 | 富邦證券戶 → 簽署 API 協議 + 連線測試 + 憑證 | 未公開 |
| 元大 | SPARK API | Python、C#(另有舊的 COM/Delphi/WPF 元件) | Windows/macOS/Linux | 行情、下單(含雲端條件單)、帳務、庫存損益 | 元大證券戶,無財力或交易量門檻;簽風險預告書 + API 測試 | 未公開 |
| 凱基 | SUPER PY | Python 3.9–3.13(64 位元) | Windows(需 VC++ 2015–2022 Redistributable) | 台股、美股行情與下單 | 凱基證券戶 + 數位憑證 + 簽署風險預告書 + 測試軟體驗證 | 未公開 |
| 群益 | 策略王 API | C#、Python(以 COM 元件為底) | Windows | 國內外證期選行情、下單、回報 | 群益戶 → 需向營業員申請並簽約 | 未公開 |
| 元富 | MasterTradePy(下單)+ SolPYAPI(行情) | Python | Windows | 行情與下單分成兩個元件 | 元富戶 + 數位憑證 + 線上簽署風險預告書 + 線上驗證 | 未公開 |
| 統一期貨 | 統一 API | Python、C#、Excel VBA | Windows | 期貨為主 | 統一期貨戶 → 洽營業員,免費 | 未公開 |
| 玉山(富果) | Fugle 行情 API/交易 API | Python、Node.js(REST + WebSocket) | 跨平台 | 日內行情、歷史行情、技術指標、盤後籌碼、下單 | 行情 API 註冊富果會員即可;交易 API 需玉山證券富果帳戶,開戶次日可申請 token | 分級收費,見 5.2 |
第一,「跨平台」在這裡差很多。 群益和元富是以 Windows COM 元件為基礎的,套件裝好之後仍然綁在 Windows,Linux 上的排程機器跑不了。永豐、富邦、元大、富果是真的跨平台。
第二,自助 vs. 找營業員。 永豐、元大、凱基、元富都是網頁上自己走完流程;群益要向營業員申請並簽約,統一期貨也是洽營業員。
第三,富果是唯一把「行情」和「券商戶」拆開賣的。 沒有玉山證券帳戶也可以註冊富果會員拿免費行情 token,甚至有 demo token 可以先試,是唯一一個能在完全不開戶的情況下先玩玩看的選項。它的行情方案是這樣分的:
| 方案 | 價格 | 台股日內行情 | 歷史行情 | 技術指標/盤後籌碼 | WebSocket |
|---|---|---|---|---|---|
| 基本用戶 | 免費 | 60 次/分 | 60 次/分 | 不支援 | 5 訂閱/1 連線 |
| 開發者 | NT$1,499/月 | 600 次/分 | 60 次/分 | 60、30 次/分 | 300 訂閱/2 連線 |
| 進階用戶 | NT$2,999/月 | 2,000 次/分 | 60 次/分 | 60、30 次/分 | 2,000 訂閱/2 連線 |
免費那一層的「不支援技術指標」值得注意:打算讓別人幫忙算指標的話,免費方案不夠;打算自己從 K 線算,免費方案夠用。
三個理由,按重要性排:
反過來說,本來就是元大或富邦的客戶的話,那兩家的 API 也都跨平台、也都免費,沒有必要為了跟這個系列而多開一個戶。後面幾天的重點是資料怎麼流、評分怎麼設計,換一家券商要改的只有取資料那一層。
但依照我目前查詢到的內容,套件 Shioaji 的 document 是真的很完整,推推。
約十天後的那個專案要把結果推上 GitHub Pages,並且用排程做定期更新,所以需要一個 GitHub 個人帳號。
這裡先提需求就好:免費帳號足夠,到 https://github.com/ 用 email 註冊,順手把兩步驟驗證打開。
今天沒寫半行程式,但這是整個系列裡「不做完就沒辦法往下走」的一天。
三個來源的分工大概是:FRED 管總體經濟、yfinance 管長歷史與廣度、Shioaji 管台股的準確與即時。 三個都免費,兩個要申請,一個要先開證券戶。
開戶審核那幾天,不管手上的程式寫得多好都沒有辦法縮短。而這種前置作業在專案裡通常不會被排進時程,因為它看起來不像工作,直到某個週六下午想開始動手,才發現什麼都做不了。
約十天後才會真正用到,但審核時間不會等人,所以先辦起來放著。
券商官方文件
資料源官方文件
註一:本文所有申請流程、額度數字與方案價格以各家官方頁面為準。券商 API 的規格、收費與限制改動頻繁,實際申請前請以官方公告為準。
註二:第 5.1 節對照表中標示「未公開」的欄位,代表該券商的公開文件未揭露流量或呼叫額度,不代表沒有限制;實際上限請洽該券商。表中富邦、元大、凱基、群益、元富、統一期貨六家的資訊來自官方頁面與公開技術文章的整理,我本人只實際申請並使用過永豐金 Shioaji,其餘六家屬文件引述而非實測,細節(特別是群益的 Python 支援程度、元富行情與下單元件的實際相依性)待確認。
註三:本文為個人學習與工具建置紀錄,所有提及的券商、資料源與方案均非業配,也不代表推薦。本文不構成任何投資建議,亦不構成開立特定券商帳戶之建議。投資有風險,任何投資決策請自行評估並自負盈虧。