Skip to content

即時報價

如下程式說明如何在盤中獲得即時報價,主要透過 DataSubscriber 來進行訂閱和退訂。

DataSubscriber 主要有分測試模式跟正式模式,透過 testing 變數來做切換。

- testing=True: 測試模式
- testing=False: 正式模式

正式模式中,只有在開盤的情況下才有辦法提供資料。

在範例程式中,前部分主要說明訂閱,後部分主要說明退訂的方式。

Demo code

訂閱範例

from FinMind.data import DataSubscriber
from FinMind.data import Stock
from FinMind.data import FutureAndOption


ds = DataSubscriber(testing=True)

# 訂閱 2330 股票 Tick 資料
ds.subscribe("2330", Stock.Tick)

# 訂閱 2330 股票五檔報價資料
ds.subscribe("2330", Stock.BidAsk)

# 訂閱 TXFF1 期權報價
ds.subscribe("TXFF1", FutureAndOption.Tick)

訂閱範例 + 自定 callback

# 自定回調函數
def cb(message):
    stock_id = message.get("stock_id","")
    deal_price =  message.get("deal_price","")
    volume =  message.get("volume","")
    time = message.get("Time","")
    tick_type = message.get("TickType","")

    print(f"stock_id:{stock_id}, deal_price:{deal_price}, volume:{volume}, time:{time}, tick_type:{tick_type}")

# 訂閱 2330 股票 Tick 資料,使用客製化回調函數
ds.subscribe("2330", Stock.Tick, cb)

# 訂閱 2330 股票五檔報價資料,使用客製化回調函數
ds.subscribe("2330", Stock.BidAsk, cb)

# 訂閱 TXFF1 期權報價,使用客製化回調函數
ds.subscribe("TXFF1", FutureAndOption.Tick, cb)

退訂範例

# 取消 2330 股票 Tick 資料訂閱
ds.unsubscribe("2330",Stock.Tick)

# 關閉所有訂閱
ds.close()