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 14

>>:  Day 04 - 循环(Loops)

CMoney菁英软件工程师战斗营_Week 8

来到CMoney近两个月 不到两星期就要发表我们游戏专题了 或许会有人不知道做游戏专题有什麽好处 比...

day1 只要有钱,什麽缺都做 (雷)系统工程师

来部落格看图文并茂文章 补觉鸣诗 乞丐 当时刚退伍我就跟乞丐没两样,大学努力存的钱,都在当兵时消失殆...

Day 26 Singleton Pattern、UML

Singleton Pattern: 单例模式是程序设计中常见的一种方法,其顾名思义,就是只有一个人...

应用 LINE Front-end Framework 轻松建立互动 (3)

今天继续搭配 LIFF 的文件研究 Line LIFF App line-liff-v2-start...

学习笔记:一起进入 PixiJS 的世界 (一)

PixiJS为2D WebGL渲染引擎,经常使用於互动与游戏相关专案中,具有快速、装置支援度高的优点...