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 | '加权指数' | 指数名称 |
在Day 01中,有介绍使用pipenv来建立Shioaji API专用的虚拟环境
并且说明在console中要先启动虚拟环境後才可正常执行程序
若你直接按VS Code右上的角的执行按钮,应该会看到ModuleNotFoundError: No module named 'shioaji'
这类的错误讯息,那是因为VS Code所使用的Python Interpreter不是虚拟环境中的那个
如果要让VS Code执行python程序时,自动启动虚拟环境,首先点左下角的「Python 3.7.9 64-Bit」
正常情况下,VS Code会侦测到虚拟环境,并会显示Recommand,请直接选择这一项
(若没有侦测到,请确定所建立的python档案是否在当初建立的开发环境资料夹底下)
选择完毕後,可以看到左下角的Python 3.7.9,後面多了「('shioaji-xxxxxxxx':pipenv)」,这表示VS Code已经知道接下来我们要执行python程序时,是要使用这个虚拟环境中的Python Interpreter
接着,按下右上的执行按钮,就可以成功执行程序
来到CMoney近两个月 不到两星期就要发表我们游戏专题了 或许会有人不知道做游戏专题有什麽好处 比...
来部落格看图文并茂文章 补觉鸣诗 乞丐 当时刚退伍我就跟乞丐没两样,大学努力存的钱,都在当兵时消失殆...
Singleton Pattern: 单例模式是程序设计中常见的一种方法,其顾名思义,就是只有一个人...
今天继续搭配 LIFF 的文件研究 Line LIFF App line-liff-v2-start...
PixiJS为2D WebGL渲染引擎,经常使用於互动与游戏相关专案中,具有快速、装置支援度高的优点...