要使用 shioaji 的話,一開始要先引用,這一段就是引用並給予一個簡稱 sj
import shioaji as sj
如果是使用 jupyter notebook,可以使用以下使指令查看物件的屬性和方法
sj.Shioaji?
根據上一段程式碼執行的結果,可以看到 api 初始化有 4 個參數:
如果沒有特別的需求,直接始用以下指令就可以初始化 api 了
api = sj.Shioaji()
api.login(person_id="帳號-身份證字號", passwd="密碼")
列出所有帳號:
api.list_accounts()
設定預設帳號
api.set_default_account(api.list_accounts()[0])
到 下載專區,下載 憑證管理小AP
執行後,就會自動申請憑證
申請完後可以申新憑證的密碼,然後把這個憑證 copy 到指定的地方,我這就直接放在同一個目錄,方便測試
啟用憑證
ca_path 是憑證的路徑,因為我是放在同一個目錄下,所以直接打檔名
api.activate_ca(ca_path='Sinopac.pfx', ca_passwd='密碼', person_id="帳號-身份證字號")
英文是 Contracts,不確定中文怎麼翻,不過我看結果,應該就是指可以交易的市場清單
api.Contracts
可以看到列出以下幾個分類:
Indexs: 指數
- OTC 上櫃指數
- TSE 上市指數
Stocks: 股票
- OES
- OTC 證券交易所
- TSE 櫃買中心
Futures: 期貨
Options: 選擇權
也可以指定而更細的子項目,來取得列表
ex: 取得選擇權
api.Contracts.Futures
ex: 取得台指期
api.Contracts.Futures.TXF
ex: 取得台指期個別資料
ps: TXF202110 是上一個查詢結果裡其中一個,可以依照執行的時候取得的資料來變更
api.Contracts.Futures.TXF.TXF202110
查詢結果如下:
Future(code='TXFJ1', symbol='TXF202110', name='臺股期貨', category='TXF', delivery_month='202110', delivery_date='2021/10/20', underlying_kind='I', unit=1, limit_up=19023.0, limit_down=15565.0, reference=17294.0, update_date='2021/09/18')
以上查詢,也可以使用 code = 'TXFJ1' 來進行查詢
api.Contracts.Futures.TXF['TXFJ1']
# or
api.Contracts.Futures['TXFJ1']
同理,查詢股市也是一樣的,只是 future 換成 stock 而已:
ex: 查詢股市
api.Contracts.Stocks
ex: 查詢 台積電 (2330)
api.Contracts.Stocks.TSE.TSE2330
# or
api.Contracts.Stocks["2330"]
今天先介紹到這,明天再介紹怎麼取得報價