Skip to main content

事前準備

caution

使用正式交易之前,您必須完成以下步驟

  1. 申請使用交易 API 服務
    • 申請憑證
    • 簽署同意書
    • 等待審核
  2. 進行模擬測試
    • 申請模擬環境金鑰
    • 修改模擬環境設定檔
    • 安裝套件
    • 完成模擬下單

申請使用交易 API 服務

進入 交易 API 金鑰網站 點選 登入 按鈕 (如下圖)

金鑰申請頁面

使用您的證券帳號登入系統 (如下圖)

金鑰申請頁面

有富果帳戶卻無法登入怎麼辦?

因 富果交易 API 屬於玉山證券富果帳戶的專屬服務,所以您必須使用 「8840 經紀本部」或「884M 數位分公司」進行登入,詳情可參考 更換分公司說明

申請憑證

依照頁面顯示步驟申請憑證 (如下圖)

金鑰申請頁面

簽署 API 服務申請同意書

請勾選同意書內容 (如下圖)

金鑰申請頁面

等待審核

送出申請後,您會同時收到一封標題為「【玉山證券富果帳戶】已收到您的交易 API 申請資料」的信件,審核過程約 1 至 3 個工作天。如未收到信件或審核超過 3 個工作天(不含假日),請聯絡 技術客服 反應。

caution

審核通過後,您會收到一封標題為「【玉山證券富果帳戶】交易 API 申請完成通知」的信件。

進行模擬測試

申請模擬環境金鑰

審核通過後,請您再次登入 交易 API 金鑰網站,即可看到模擬金鑰申請畫面 (如下圖)

金鑰申請頁面

  1. 取得憑證檔案 - 請點擊左下角「匯出憑證」並輸入憑證密碼,下載 ID_DATE.p12 憑證檔案 (檔名為身份證字號 + 憑證過期日)。

    什麼是憑證密碼?

    憑證密碼是指您之前申請憑證時所設置的密碼,示意圖如下:

    憑證密碼申請頁面

  2. 取得模擬環境設定檔 - 點擊右上角「新增模擬金鑰」->「下載金鑰」,下載 config.simulation.ini.example 模擬環境設定檔。

  3. 增加白名單 - 頁面會顯示已建立的金鑰內容,請一併將您稍後會執行程式的 IP 位址加入「模擬 IP 白名單」,以便模擬環境能夠允許您的連線。(如下圖)

金鑰申請頁面

caution

若您屬於非固定 IP 的使用者 ex. Colab, 非固定 IP 的公司/家用網路,您可以暫時將 IP 白名單設定為 0.0.0.0/0(允許全部來源 IP),以便進行開發測試。

您的資料夾結構應該會像是這樣

.
├── config.simulation.ini
└── ID_DATE.p12

如果您首次執行,您的模擬 API 金鑰管理頁面將會出現一筆模擬金鑰(如下圖)

金鑰申請頁面

修改模擬環境設定檔

模擬環境 範例的設定檔改名成 config.simulation.ini,並在設定檔 [CERT] -> Path 刪除 ;Your Cert File Path Ex: ./python/cert.p12 範例後,填入您的憑證檔 (ID_DATE.p12) 路徑 (如何取得正確路徑)

# config.simulation.ini

[Core]
Entry = https://fugletradingapi-simulation.esunsec.com.tw/api/v1
Environment = SIMULATION
[Cert]
Path = ;Your Cert File Path Ex: ./python/cert.p12
[Api]
Key = XXXXXXXXXXXXXXXX
Secret = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[User]
Account = 884XXXXXXXX

安裝套件

pip install fugle-trade -U

目前支援 Python 3.7, 3.8, 3.9, 3.10 等版本。

完成模擬下單

您可以在與憑證及設定檔相同的資料夾內新增 index.py,使用以下內容進行連線測試

from configparser import ConfigParser
from fugle_trade.sdk import SDK
from fugle_trade.order import OrderObject
from fugle_trade.constant import (APCode, Trade, PriceFlag, BSFlag, Action)
# 讀取設定檔
config = ConfigParser()
config.read('./config.simulation.ini')
# 登入
sdk = SDK(config)
sdk.login()
# 建立委託物件
order = OrderObject(
buy_sell = Action.Buy,
price_flag = PriceFlag.LimitDown,
price = None,
stock_no = "2884",
quantity = 1,
)
sdk.place_order(order)
print("Your order has been placed successfully.")

程式會跳出提示,請您輸入玉山證券富果帳戶的登入密碼以及憑證密碼:

# 執行程式
$ python index.py
Enter esun account password: # 請輸入您玉山證券富果帳戶的登入密碼
Enter cert password: # 請輸入您的憑證密碼
Your order has been placed successfully.
不小心輸入錯誤密碼怎麼辦?

您可以執行 sdk.reset_password(),重新輸入玉山證券富果帳戶的登入密碼及憑證密碼再重新登入,範例如下:

from configparser import ConfigParser
from fugle_trade.sdk import SDK
from fugle_trade.order import OrderObject
from fugle_trade.constant import (APCode, Trade, PriceFlag, BSFlag, Action)

config = ConfigParser()
config.read('./config.simulation.ini') # 請換上您正在使用的 config 檔案
sdk = SDK(config)
sdk.reset_password() # 此函數用來重設密碼
sdk = SDK(config)
sdk.login()

若想了解更多可參考 相關文件 !

caution

您可以透過模擬環境測試您的下單、查詢委託等指令,唯目前模擬環境在接單後不會有模擬成交之行為,其帳務及交易商品等資訊亦不保證與正式環境相同。

info

若程式執行成功,稍後您會收到一封標題為「【玉山證券】交易 API 正式金鑰申請通知」的信件,代表您已完成模擬環境的連線測試,可以申請正式金鑰了!

恭喜您已完成開通!立刻開始使用交易 API 來撰寫策略,進行實單交易吧!

請您再次登入 交易 API 金鑰網站,即可看到頁面左側選單有新增 API 金鑰管理 的功能 (如下圖),您可依照之前建立模擬金鑰的操作方式,下載正式環境的金鑰及設定檔。

金鑰申請頁面