添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Skip to main content

開始使用

富邦行情 WebSocket API 提供台股即時行情服務。透過 WebSocket API 可以滿足您想要接收即時行情的需求。

使用 SDK

富邦行情 WebSocket API 提供 Python 、 Node.js 與 C# SDK。您可以透過以下方式存取 WebSocket API、並透過行情Mode模式切換要訂閱的行情:

訂閱WebSocket Callback 方法獲得下方Callback訊息。

info

行情Mode提供Low Latency Speed Mode 以及完整資訊的 Normal Mode

from fubon_neo.sdk import FubonSDK,Mode

def handle_message(message):
print(message)

sdk = FubonSDK()
accounts = sdk.login("Your ID", "Your password", "Your cert path", "Your cert password") # 需登入後,才能取得行情權限

sdk.init_realtime() # 建立行情連線
# 可指定行情連線的Mode , Default 為Speed
# sdk.init_realtime(Mode.Speed) or sdk.init_realtime(Mode.Normal)
stock = sdk.marketdata.websocket_client.stock
stock.on('message', handle_message)
stock.connect()

身份驗證

當驗證成功後,會收到以下訊息:

{
"event": "authenticated",
"data": {
"message": "Authenticated successfully"
}
}

若驗證失敗,則收到以下訊息:

{
"event": "error",
"data": {
"message": "Invalid authentication credentials"
}
}

Heartbeat

每隔 30 秒 WebSocket server 會送出一個 heartbeat 訊息:

{
"event": "heartbeat",
"data": {
"time": "<Timestamp>"
}
}

Ping/Pong

SDK每五秒,將自動發送ping到server中, 也可自行發送ping ,另外額外自訂 state (state 為optioanal參數) :

stock.ping({
'state' : '<ANY>'
})

WebSocket Server 會回應以下訊息 (若 ping 未送 state 則不會有該欄位):

{
"event": "pong",
"data": {
"time": "<TIMESTAMP>",
"state": "<ANY>"
}
}

Channels

富邦行情 WebSocket API 目前提供以下可訂閱頻道:

  • trades - 接收訂閱股票最新成交資訊
  • books - 接收訂閱股票最新最佳五檔委買委賣資訊
  • indices - 接收訂閱股票最新指數行情資料
  • 訂閱頻道

    要訂閱一個頻道可用下方範例進行訂閱:

    stock.subscribe({
    "channel" : "<CHANNEL_NAME>",
    "symbol" : "<SYMBOL_ID>"
    #"intradayOddLot": True 若要訂閱盤中零股,可再額外加入此參數
    })

    訂閱成功後,會收到以下事件回應:

    {
    "event": "subscribed",
    "data": {
    "id": "<CHANNEL_ID>",
    "channel": "<CHANNEL_NAME>",
    "symbol": "<SYMBOL_ID>"
    }
    }

    支援訂閱同頻道的多檔股票:

    stock
    
    
    
    
        
    .subscribe({
    "channel" : "<CHANNEL_NAME>",
    "symbols" : ["<SYMBOL_ID>","<SYMBOL_ID>"]
    #"intradayOddLot": True 若要訂閱盤中零股,可再額外加入此參數
    })

    訂閱成功後,會收到以下事件回應:

    {
    "event": "subscribed",
    "data": [
    {
    "id": "<CHANNEL_ID>",
    "channel": "<CHANNEL_NAME>",
    "symbol": "<SYMBOL_ID_1>"
    },
    {
    "id": "<CHANNEL_ID>",
    "channel": "<CHANNEL_NAME>",
    "symbol": "<SYMBOL_ID_2>"
    }
    ]
    }

    取消訂閱

    要取消頻道可用下方範例進行取消:

    stock.unsubscribe({
    'id':'<CHANNEL_ID>'
    })

    取消訂閱成功後,會收到以下事件回應: