Skip to content

服務條款

受限於台灣金融法規,新用戶首次使用需簽署相關文件並在測試模式完成測試報告才能進行正式環境的使用。

開戶

在開始之前必須先擁有永豐金帳戶

簽署文件

  請參見簽署中心並在簽署前仔細閱讀文件
signature

API測試

注意

目前測試報告沒有 C# 版本,只能使用 python,如有任何問題請洽Shioaji管理員進行協助。

  確保您完全理解如何使用,需在模擬模式完成測試報告,內容包含以下功能:

  • 登入測試 login
  • 下單測試 place_order

Attention

可測試時間:

  • 因應公司資訊安全規定,測試報告服務為星期一至五 08:00 ~ 20:00
  • 18:00 ~ 20:00: 只允許台灣IP
  • 08:00 ~ 18:00: 沒有限制

版本限制:

  • 版本 < 1.0: 必須使用版本>=0.5.0.dev2
    安裝指令: pip install shioaji==0.5.0.dev2
  • 版本 >= 1.0: 無限制
    安裝指令: pip install -U shioaji

其他:

  • API下單簽署時間須早於API測試的時間,以利審核通過
  • 證券、期貨戶須各別測試
  • 證券/期貨下單測試,需間隔1秒以上,以利系統留存測試紀錄

查詢使用版本

版本

import shioaji as sj

print(sj.__version__)
# 1.0.0
  • 請注意版本限制

登入測試

登入

api = sj.Shioaji(simulation=True) # 模擬模式
api.login(
    api_key="金鑰",     # 請修改此處
    secret_key="密鑰"   # 請修改此處
)
api = sj.Shioaji(simulation=True) # 模擬模式
api.login(
    person_id="身分證字號", # 請修改此處
    passwd="密碼",          # 請修改此處
)
  • 版本 >= 1.0: 使用 API Key 進行登入,若您尚未申請 API Key,可參考 Token
  • 版本 < 1.0: 使用身分證字號進行登入

證券下單測試

證券

# 商品檔 - 請修改此處
contract = api.Contracts.Stocks.TSE["2890"]

# 證券委託單 - 請修改此處
order = api.Order(
    price=18,                                       # 價格
    quantity=1,                                     # 數量
    action=sj.constant.Action.Buy,                  # 買賣別
    price_type=sj.constant.StockPriceType.LMT,      # 委託價格類別
    order_type=sj.constant.OrderType.ROD,           # 委託條件
    account=api.stock_account                       # 下單帳號
)

# 下單
trade = api.place_order(contract, order)
# 商品檔 - 請修改此處
contract = api.Contracts.Stocks.TSE["2890"]

# 證券委託單 - 請修改此處
order = api.Order(
    price=18,                                       # 價格
    quantity=1,                                     # 數量
    action=sj.constant.Action.Buy,                  # 買賣別
    price_type=sj.constant.TFTStockPriceType.LMT,   # 委託價格類別
    order_type=sj.constant.TFTOrderType.ROD,        # 委託條件
    account=api.stock_account                       # 下單帳號
)

# 下單
trade = api.place_order(contract, order)

期貨下單測試

期貨

# 商品檔 - 近月台指期貨, 請修改此處
contract = min(
    [
        x for x in api.Contracts.Futures.TXF 
        if x.code[-2:] not in ["R1", "R2"]
    ],
    key=lambda x: x.delivery_date
)

# 期貨委託單 - 請修改此處
order = api.Order(
    action=sj.constant.Action.Buy,                   # 買賣別
    price=15000,                                     # 價格
    quantity=1,                                      # 數量
    price_type=sj.constant.FuturesPriceType.LMT,     # 委託價格類別
    order_type=sj.constant.OrderType.ROD,            # 委託條件
    octype=sj.constant.FuturesOCType.Auto,           # 倉別
    account=api.futopt_account                       # 下單帳號
)

# 下單
trade = api.place_order(contract, order)
# 商品檔 - 近月台指期貨, 請修改此處
contract = min(
    [
        x for x in api.Contracts.Futures.TXF 
        if x.code[-2:] not in ["R1", "R2"]
    ],
    key=lambda x: x.delivery_date
)

# 期貨委託單 - 請修改此處
order = api.Order(
    action=sj.constant.Action.Buy,                  # 買賣別
    price=15000,                                    # 價格
    quantity=1,                                     # 數量
    price_type=sj.constant.FuturesPriceType.LMT,    # 委託價格類別
    order_type=sj.constant.FuturesOrderType.ROD,    # 委託條件
    octype=sj.constant.FuturesOCType.Auto,          # 倉別
    account=api.futopt_account                      # 下單帳號
)

# 下單
trade = api.place_order(contract, order)

憑證

  下單前必須申請啟用憑證

申請憑證

  1. 理財網下載 eleader
    eleader_download

  2. 登入 eleader
    login eleader

  3. 從上方帳戶資料選取(3303)帳號資料設定
    eleader_account

  4. 點選"步驟說明"
    CA_step

  5. 憑證操作步驟說明
    CA_info

啟用憑證

  • 若是使用測試帳號無需啟用憑證
  • 如果您使用macOS,可能會遇到版本上的問題。我們建議您使用 docker 去運行shioaji。

In

result = api.activate_ca(
    ca_path="/c/your/ca/path/Sinopac.pfx",
    ca_passwd="YOUR_CA_PASSWORD",
    person_id="Person of this Ca",
)

print(result)
# True

憑證路徑

在 Windows 系統中,如果文件路徑使用 \ 來分隔文件,您需要將它替換為 /。