iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0
永豐金融APIs

深入解析 Shioaji API系列 第 3

Day 03 - Contract

本篇重點

  • Contract物件介紹
  • VS Code虛擬環境設定補充說明

Contract

Contract物件,可說是Shioaji API的核心,因為它是每個金融商品的基本資料,不管你是要取得歷史資料或是當下的報價,都要先指定Contract,讓Shioaji API知道你是要查詢哪一個金融商品的資料
而每一個Contract都可以透過code或是symbol來取得,取得程式語法有三種,三種取得的內容都是相同的,可以依個人喜好選擇其中一種方式

股票

股票Contract取得的方式:

api.Contracts.Stocks.TSE.TSE2890 #使用SYMBOL
api.Contracts.Stocks.TSE['2890'] #使用CODE
api.Contracts.Stocks['2890'] #使用CODE

股票Contract物件屬性說明

屬性 屬性值 說明
exchange <Exchange.TSE: 'TSE'> 掛牌交易所(TSE:上市, OTC:上櫃, OES:興櫃)
code '2890' 股票代碼
symbol 'TSE2890'
name '永豐金' 股票名稱
category '17' 股票類型
unit 1000 每單位股數
limit_up 15.5 當日漲停價
limit_down 12.7 當日跌停價
reference 14.1 參考價格,即前一個交易日的收盤價
update_date '2021/09/17' 更新日期
day_trade <DayTrade.Yes: 'Yes'> 買賣現沖(OnlyBuy:先買現沖, Yes:買賣現沖, No:無現股當沖)
margin_trading_balance 0 融資限額
short_selling_balance 0 融券限額

這裡要特別說明,融資限額跟融券限額數量,為前一個交易日收盤後結轉的數量,如果你在盤中取得資料,不會是當下可以下單的數量

期貨

期貨Contract取得的方式

api.Contracts.Futures.TXF.TXF202110 #使用SYMBOL
api.Contracts.Futures.TXF['TXFJ1'] #使用CODE
api.Contracts.Futures['TXFJ1'] #使用CODE

期貨Contract物件屬性說明

屬性 屬性值 說明
code 'TXFJ1' 期貨代碼
symbol 'TXF202110'
name '臺股期貨' 期貨名稱
category 'TXF' 期貨類型
unit 1 每單位數量
limit_up 19023.0 當日漲停價
limit_down 15565.0 當日跌停價
reference 17294.0 參考價格,即前一個交易日的收盤價
update_date '2021/09/18' 更新日期
delivery_month '202110' 結算月份
delivery_date '2021/10/20' 結算日期
underlying_kind I 標的類型(I:指數, S:個股)

選擇權

選擇權Contract取得的方式

api.Contracts.Options.TXO.TXO202110017500C #使用SYMBOL
api.Contracts.Options.TXO['TXO17500J1'] #使用CODE
api.Contracts.Options['TXO17500J1'] #使用CODE

選擇權Contract物件屬性說明

屬性 屬性值 說明
code 'TXO17500J1'
symbol 'TXO202110017500C'
name '臺指選擇權' 選擇權名稱
category 'TXO' 選擇權分類
unit 1 每單位數量
delivery_month '202110' 結算月份
delivery_date '2021/10/20' 結算日期
strike_price 17500.0 選擇權履約價
option_right <OptionRight.Call: 'C' 選擇權類型(C:買權Call, P:賣權Put)
underlying_kind I 標的類型 (I:指數, S:個股)
limit_up 1940.0 漲停價
limit_down 0.1 跌停價
reference 215.0 參考價格
update_date '2021/09/18' 最後更新日期

指數

指數Contract取得的方式

api.Contracts.Indexs.TSE.TSE001 #使用SYMBOL
api.Contracts.Indexs.TSE['001'] #使用CODE
api.Contracts.Indexs['001'] #使用CODE

指數Contract物件屬性說明

屬性 屬性值 說明
exchange <Exchange.TSE: 'TSE'> 交易所
code '001' 指數代號
symbol 'TSE001'
name '加權指數' 指數名稱

VS Code虛擬環境設定補充說明

在Day 01中,有介紹使用pipenv來建立Shioaji API專用的虛擬環境
並且說明在console中要先啟動虛擬環境後才可正常執行程式
若你直接按VS Code右上的角的執行按鈕,應該會看到ModuleNotFoundError: No module named 'shioaji'這類的錯誤訊息,那是因為VS Code所使用的Python Interpreter不是虛擬環境中的那個
https://ithelp.ithome.com.tw/upload/images/20210918/201408273u9exD0uc5.png
如果要讓VS Code執行python程式時,自動啟動虛擬環境,首先點左下角的「Python 3.7.9 64-Bit」
https://ithelp.ithome.com.tw/upload/images/20210918/20140827ZSlLSprx7Q.png
正常情況下,VS Code會偵測到虛擬環境,並會顯示Recommand,請直接選擇這一項
(若沒有偵測到,請確定所建立的python檔案是否在當初建立的開發環境資料夾底下)
https://ithelp.ithome.com.tw/upload/images/20210918/2014082790Pj54XN1N.png
選擇完畢後,可以看到左下角的Python 3.7.9,後面多了「('shioaji-xxxxxxxx':pipenv)」,這表示VS Code已經知道接下來我們要執行python程式時,是要使用這個虛擬環境中的Python Interpreter
接著,按下右上的執行按鈕,就可以成功執行程式
https://ithelp.ithome.com.tw/upload/images/20210918/201408271OLZyVWCyF.png


上一篇
Day 02 - 登入及下單簽署
下一篇
Day 04 - Credit Enquires 與 Short Stock Source
系列文
深入解析 Shioaji API30

尚未有邦友留言

立即登入留言