iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
永豐金融APIs

永豐金API之30天不中斷Q&A系列 第 5

Day5 - 關於訂閱報價、訂閱數上限及計算方式

在設定完帳戶後,我們就可以實際收取報價資料以及下單了。

如果要收取商品報價資料,我們會使用subscribe函數,我們可以選擇收取tick資料或是bid/ask報價資料,也可以選擇抓取整股資料還是盤中零股資料。

我們先來看tick資料怎麼收,假如我要收台積電的資料,那程式碼就是這樣:

#Tick
api.quote.subscribe(
    api.Contracts.Stocks["2330"], #輸入想收取資料的股號
    quote_type = sj.constant.QuoteType.Tick, # or 'tick'
    version = sj.constant.QuoteVersion.v1 # or 'v1'
)

程式碼執行後,我們就能收到台積電的即時報價資料了,像是價格、漲跌、成交量、還有bid/ask總量等資料。

如果我們要收盤中零股的資料,只要加入intraday_odd = True即可,程式碼如下:

#Tick intraday odd
api.quote.subscribe(
    api.Contracts.Stocks["2330"], #輸入想收取資料的股號
    quote_type = sj.constant.QuoteType.Tick, # or 'tick'
    version = sj.constant.QuoteVersion.v1, # or 'v1'
    intraday_odd = True
)

如果我們要收bid/ask報價資料,只要把quote_type最後的tick改成BidAsk就可以了,程式碼如下:

#BidAsk
api.quote.subscribe(
    api.Contracts.Stocks["2330"], #輸入想收取資料的股號
    quote_type = sj.constant.QuoteType.BidAsk, # or 'bidask'
    version = sj.constant.QuoteVersion.v1 # or 'v1'
)

程式碼執行後,我們就能收到最佳五檔的價量資料了。另外,bid/ask報價資料也一樣有盤中零股的資料,各位可以再自行嘗試。

最後,如果要停止收取資料,我們只要用unsubscribe函數就可以了,程式碼如下:

api.quote.unsubscribe(
    api.Contracts.Stocks["2330"], 
    quote_type = sj.constant.QuoteType.Tick, # or 'tick'
    version = sj.constant.QuoteVersion.v1 # or 'v1'
)

需要注意的是,括號內的內容需要與之前收取報價的subscribe函數裡的內容一致。

以上就是關於報價函數的說明,下篇文章將會說明下單函數的使用。


上一篇
Day4 - 如何設定預設交易帳號
下一篇
Day6 - 下單函數使用,限價、市價、刪單、改單怎麼寫
系列文
永豐金API之30天不中斷Q&A26

尚未有邦友留言

立即登入留言