Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    nicepkg

    shioaji

    nicepkg/shioaji
    Business
    23
    1 installs

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Shioaji Taiwan financial trading API guide...

    SKILL.md

    Shioaji Trading API

    Shioaji is SinoPac's Python API for trading Taiwan financial markets (stocks, futures, options). Shioaji 是永豐金證券提供的 Python 交易 API,支援台灣股票、期貨、選擇權市場。

    Official Docs 官方文檔: https://sinotrade.github.io/ LLM Reference: https://sinotrade.github.io/llms-full.txt


    Navigation 功能導覽

    Topic 主題 File 檔案 Description 說明
    Preparation 準備 PREPARE.md Account setup, API keys, testing 開戶/金鑰申請/測試
    Contracts 合約 CONTRACTS.md Stocks, Futures, Options contracts 股票/期貨/選擇權合約
    Orders 下單 ORDERS.md Place, modify, cancel, combo orders 下單/改單/刪單/組合單
    Reserve 預收 RESERVE.md Reserve orders for disposition stocks 處置股預收券款
    Streaming 行情 STREAMING.md Real-time tick & bidask data 即時 Tick/BidAsk 資料
    Market Data 市場資料 MARKET_DATA.md Historical, snapshot, credit, scanners 歷史資料/快照/資券/掃描器
    Accounting 帳務 ACCOUNTING.md Balance, margin, P&L, trading limits 餘額/保證金/損益/額度
    Advanced 進階 ADVANCED.md Quote binding, non-blocking, stop orders 報價綁定/非阻塞/觸價
    Troubleshooting 問題排解 TROUBLESHOOTING.md Common issues and solutions 常見問題與解決

    Quick Start 快速入門

    Installation 安裝

    # pip
    pip install shioaji
    
    # uv (recommended 推薦)
    uv add shioaji
    
    # with speed optimization 速度優化版
    uv add shioaji --extra speed
    
    # Docker
    docker run -it sinotrade/shioaji:latest
    

    Login & Activate CA 登入與憑證啟用

    import shioaji as sj
    
    api = sj.Shioaji()
    
    # Login with API Key 使用 API Key 登入
    accounts = api.login(
        api_key="YOUR_API_KEY",
        secret_key="YOUR_SECRET_KEY"
    )
    
    # Activate CA certificate 啟用憑證 (required for placing orders 下單必須)
    api.activate_ca(
        ca_path="/path/to/Sinopac.pfx",
        ca_passwd="YOUR_CA_PASSWORD",
    )
    

    Simulation Mode 模擬模式

    Test API without real money. 使用模擬環境測試 API。

    import shioaji as sj
    
    api = sj.Shioaji(simulation=True)
    api.login(api_key="YOUR_KEY", secret_key="YOUR_SECRET")
    

    Available in simulation 模擬模式可用功能:

    • Quote: subscribe, unsubscribe, ticks, kbars, snapshots
    • Order: place_order, update_order, cancel_order, update_status, list_trades
    • Account: list_positions, list_profit_loss
    • Data: short_stock_sources, credit_enquires, scanners

    Simple Order Example 簡單下單範例

    # Get contract 取得合約
    contract = api.Contracts.Stocks["2330"]  # TSMC 台積電
    
    # Create order 建立訂單
    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,
    )
    
    # Place order 下單
    trade = api.place_order(contract, order)
    

    Common Constants 常用常數

    Action 買賣方向

    sj.constant.Action.Buy   # 買進
    sj.constant.Action.Sell  # 賣出
    

    Stock Price Type 股票價格類型

    sj.constant.StockPriceType.LMT  # Limit 限價
    sj.constant.StockPriceType.MKT  # Market 市價
    sj.constant.StockPriceType.MKP  # Range Market 範圍市價
    

    Futures Price Type 期貨價格類型

    sj.constant.FuturesPriceType.LMT  # Limit 限價
    sj.constant.FuturesPriceType.MKT  # Market 市價
    sj.constant.FuturesPriceType.MKP  # Range Market 範圍市價
    

    Order Type 委託條件

    sj.constant.OrderType.ROD  # Rest of Day 當日有效
    sj.constant.OrderType.IOC  # Immediate or Cancel 立即成交否則取消
    sj.constant.OrderType.FOK  # Fill or Kill 全部成交否則取消
    

    Stock Order Lot 股票交易單位

    sj.constant.StockOrderLot.Common      # Regular 整股 (1000 shares)
    sj.constant.StockOrderLot.Odd         # After-hours odd lot 盤後零股
    sj.constant.StockOrderLot.IntradayOdd # Intraday odd lot 盤中零股
    sj.constant.StockOrderLot.Fixing      # Fixing 定盤
    

    Order Condition 信用交易條件

    sj.constant.StockOrderCond.Cash          # Cash 現股
    sj.constant.StockOrderCond.MarginTrading # Margin 融資
    sj.constant.StockOrderCond.ShortSelling  # Short 融券
    

    Quote Type 報價類型

    sj.constant.QuoteType.Tick    # Tick data 逐筆成交
    sj.constant.QuoteType.BidAsk  # Bid/Ask data 五檔報價
    

    Account Objects 帳戶物件

    # Stock account 股票帳戶
    api.stock_account
    
    # Futures account 期貨帳戶
    api.futopt_account
    
    # List all accounts 列出所有帳戶
    api.list_accounts()
    

    Rate Limits 流量限制

    Category 類別 Limit 限制
    Daily Traffic 每日流量 500MB - 10GB (based on trading volume 依交易量)
    Quote Query 行情查詢 50 requests / 5 sec
    Accounting Query 帳務查詢 25 requests / 5 sec
    Connections 連線數 5 per person ID
    Daily Logins 每日登入 1000 times

    Common Patterns 常用模式

    Subscribe Market Data 訂閱行情

    # Subscribe tick data 訂閱逐筆成交
    api.quote.subscribe(
        api.Contracts.Stocks["2330"],
        quote_type=sj.constant.QuoteType.Tick
    )
    
    # Subscribe bidask 訂閱五檔
    api.quote.subscribe(
        api.Contracts.Stocks["2330"],
        quote_type=sj.constant.QuoteType.BidAsk
    )
    
    # Set callback 設定回調
    @api.quote.on_quote
    def quote_callback(topic, quote):
        print(f"Topic: {topic}, Quote: {quote}")
    

    Query Positions 查詢持倉

    # Stock positions 股票持倉
    positions = api.list_positions(api.stock_account)
    
    # Futures positions 期貨持倉
    positions = api.list_positions(api.futopt_account)
    

    Cancel Order 刪單

    api.cancel_order(trade)
    

    Update Order 改單

    # Change price 改價
    api.update_order(trade=trade, price=590)
    
    # Reduce quantity 減量 (can only reduce 只能減少)
    api.update_order(trade=trade, qty=1)
    

    Error Handling 錯誤處理

    try:
        trade = api.place_order(contract, order)
    except Exception as e:
        print(f"Order failed: {e}")
    
    # Check order status 檢查訂單狀態
    api.update_status(api.stock_account)
    for trade in api.list_trades():
        print(trade.status)
    

    Logout 登出

    api.logout()
    
    Recommended Servers
    Crypto.com
    Crypto.com
    Paradex MCP Server
    Paradex MCP Server
    Polymarket
    Polymarket
    Repository
    nicepkg/ai-workflow
    Files