iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
永豐金融APIs

永豐證API X Python系列 第 11

【D11】再度熟悉廚具:合約

前言

除了在Day6上面寫的功能,發現合約還有很多東西可以玩。


概況

登入後,直接使用api.Contracts,觀看可以使用的資料:

  • Indexs=(OTC, TSE)
  • Stocks=(OES, OTC, TSE)
  • Futures=(BRF, BTF, CAF, CBF, CCF, CDF, CE1, CEF, CFF, CGF, CHF, CJ1, CJF, CKF, CLF, CM1, CMF, CNF, CQF, CRF, CSF, CUF, CWF, CYF, CZF, DC1, DCF, DD1, DDF, DEF, DFF, DGF, DHF, DIF, DJF, DKF, DLF, DN1, DNF, DOF, DP1, DPF, DQF, DSF, DVF, DWF, DXF, DYF, DZ1, DZF, E4F, EEF, EGF, EHF, EMF, EP1, EPF, ERF, EXF, EYF, EZF, F1F, FBF, FE1, FEF, FF1, FFF, FGF, FKF, FNF, FQF, FRF, FTF, FVF, FWF, FXF, FYF, FZF, G2F, GAF, GCF, GDF, GHF, GIF, GJF, GLF, GMF, GNF, GOF, GRF, GTF, GUF, GWF, GXF, GZF, HAF, HBF, HCF, HHF, HI1, HIF, HLF, HOF, HSF, HYF, IA1, IAF, IHF, IIF, IJF, IMF, IOF, IPF, IQF, IRF, ITF, IXF, IYF, IZF, JBF, JF1, JFF, JMF, JNF, JPF, JSF, JWF, JZF, KAF, KBF, KCF, KDF, KEF, KFF, KGF, KIF, KKF, KLF, KOF, KP1, KPF, KSF, KUF, KWF, LBF, LCF, LEF, LIF, LMF, LO1, LOF, LQF, LRF, LTF, LUF, LV1, LVF, LWF, LXF, LYF, MAF, MBF, MJF, MKF, MPF, MQF, MVF, MX5, MXF, MYF, NAF, NBF, NCF, NDF, NEF, NGF, NI1, NIF, NJF, NLF, NMF, NOF, NQF, NSF, NUF, NVF, NWF, NXF, NYF, NZF, OAF, OBF, OCF, ODF, OEF, OHF, OJF, OKF, OLF, OMF, OOF, OPF, OQF, ORF, OSF, OTF, OUF, OVF, OWF, OXF, OYF, OZF, PAF, PBF, PCF, PDF, PEF, PFF, PGF, PHF, PIF, PJF, PKF, PL1, PLF, PMF, PNF, POF, PPF, PQF, PRF, PSF, PTF, PUF, PVF, PWF, PXF, PYF, PZF, QAF, QBF, QCF, QDF, QEF, QFF, QGF, QHF, QIF, QJF, QKF, QLF, QM1, QMF, QNF, QOF, QPF, QQF, QRF, QSF, RHF, RTF, SPF, T5F, TGF, TJF, TXF, UDF, UNF, XAF, XBF, XEF, XIF, XJF, ZEF)
  • Options=(CAO, CBO, CCO, CDA, CDO, CEA, CEO, CFO, CGO, CHO, CJO, CKO, CLO, CMO, CNO, CQO, CRO, CSO, CZO, DCO, DEO, DFO, DGO, DHO, DJO, DKO, DLO, DNO, DOO, DPO, DQO, DSO, DVO, DWO, DXO, GIO, GXO, HCO, IJO, LOO, NYO, NZO, OAO, OBO, OCO, OJO, OKO, OOO, OZO, QBO, RHO, RTO, TEO, TFO, TGO, TX5, TXO)

可以看得出來有四類,分別是指數、股票、期貨、選擇權,總類眾多。上次介紹了股票,這次拿指數和期貨來觀察。

取得合約資訊

指數

指數有分成:OTC, TSE,分別代表台灣目前兩個交易市場,櫃檯買賣中心(OTC)以及證券交易所(TSE)。首先我們取得證交所的資料:api.Contracts.Indexs["TSE"]

TSE(TSE001, TSE002, TSE003, TSE004, TSE005, TSE006, TSE008, TSE010, TSE015, TSE016, TSE017, TSE018, TSE019, TSE020, TSE021, TSE022, TSE023, TSE024, TSE025, TSE026, TSE027, TSE028, TSE029, TSE030, TSE031, TSE032, TSE033, TSE034, TSE035, TSE036, TSE037, TSE038, TSE039, TSE040, TSE041, TSE042, TSE043, TSE053, TSE054, TSE055, TSE056, TSE057, TSE058, TSE059, TSE060, TSE061, TSE062, TSE064, TSE065, TSE066, TSE067, TSE068, TSE069, TSE070, TSE071, TSE072, TSE073, TSE074, TSE075, TSE076, TSE077, TSE078, TSE079, TSE081, TSE082, TSE083, TSE084, TSE085, TSE086, TSE087, TSE088, TSE089, TSE090, TSE091, TSE092, TSE093, TSE094, TSE095, TSE096, TSE097, TSE098, TSE099)

可以看到很多TSE開頭的資料,表示在這邊的資料集目錄底下,有這麼多的指數商品可以查詢。假設我們選擇第一個,也就是TSE001,這時要把TSE拿掉,只留001放進程式裡面:

api.Contracts.Indexs["001"]

就取得在這系統中,加權指數的合約資訊。

exchange=<Exchange.TSE: 'TSE'> code='001' symbol='TSE001' name='加權指數'

同樣的,直接使用Symbol方式也可以取得上列資料:

api.Contracts.Indexs.TSE.TSE001

期貨

因為期貨種類眾多,這邊就直接選擇臺指期TXF,就會使用api.Contracts.Futures["TXF"],就會取得:

TXF(TXF202112, TXF202110, TXF202206, TXF202203, TXF202111, TXF202209, TXFR1, TXFR2)

可以得到近期的契約狀況,可以看到近期以及遠期契約,也不用像之前用數的方式去找,直接從列表中取得即可。

同樣的使用Symbol也可以達到相同的目的:

api.Contracts.Futures.TXF

結論

這樣就可以藉由合約,取得所有商品的代碼,無論是指數、股票、期貨還是選擇權,不用像Day6一樣用算的,或是記憶代碼,直接從清單取得。假設要所有市場資料,直接跑一個for迴圈即可,不用大費周章的從別地取得資料。


上一篇
【D10】廚房門被鎖住怎麼辦?(帳號鎖著了!)
下一篇
【D12】發現新廚具:Snapshot
系列文
永豐證API X Python31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言