在設定完帳戶後,我們就可以實際收取報價資料以及下單了。
如果要收取商品報價資料,我們會使用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函數裡的內容一致。
以上就是關於報價函數的說明,下篇文章將會說明下單函數的使用。