DEV Community

力智栩
力智栩

Posted on

把 AI 操盤手搬下 Windows:換一套能跨平台的券商 API

這套自動交易實驗有個一直沒細講的難處:券商官方的 Python 下單套件只出 Windows 版。

台股券商的程式交易 API,多半是包了一層 DLL 的 wheel,綁死在 win_amd64。我要讓一個跑在 Linux 容器裡的 AI agent 下單,中間就硬生生卡了一台 Windows。

前一版的架構長這樣:Linux 容器把下單請求用 HTTP 打到一台常開的 Windows 機器,那台機器上跑券商套件、憑證裝在 Windows 憑證庫裡,再由它去連券商主機。憑證這關特別磨人,私鑰用 DPAPI 綁在特定 Windows 使用者底下,換個帳號登入就解不開,光是把它從一個使用者搬到另一個,就耗掉大半天。

那台 Windows 機器不做別的,就為了跑一個只有 Windows 版的套件而存在。

轉機是券商併購之後推出的新 API。它用 Fugle 的技術重寫,一口氣出了 Windows、macOS、Linux 三種 wheel,包含 Apple Silicon 的原生版本。憑證不再是憑證庫裡的一個項目,就是一個檔案路徑加一組密碼。零股也從「要自己切對交易時段」變成一個內建的市場別參數,指定就好。

換完之後,架構少了一整台機器:SDK 直接跑在 Mac 上,憑證是一個 .pfx 檔,容器要下單就近打本機的橋接程序。

實際遷移比想像順。用原本的帳號、原本那張憑證,第一次登入就通了,回傳了名下的證券帳戶。踩到的坑只有一個:名下有兩張憑證,一張證券、一張期貨,API 綁的是其中一張,拿另一張登入會被擋。帳戶那邊要先線上簽一份新 API 的聲明書、跑一次程式開通,之後查詢跟下單就都通了。

真正的教訓不在「新 API 比較好用」。那個 Windows-only 的相依,悄悄逼我多養了一整台機器在架構裡,而我一開始根本沒把它當成一個「相依」在看。把它拔掉,那台機器就跟著消失了。

(本文是「AI 拿真錢操盤」系列的技術側記。)


本系列文章

這個實驗跑在開源 AI agent 平台 DuDuClaw 上,操盤、下單、盯盤、每日觀察都由平台上的 agent 自主執行。
原始碼:https://github.com/zhixuli0406/DuDuClaw

Top comments (0)