看了一些交易资料,现在来看看行情订阅Subscribe吧~
本日程序码使用:[d14_subscribe.ipynb].ipynb](https://github.com/eyelash500/2021_ironman_Shioaji/blob/master/d14_subscribe.ipynb)
当然首先还是要登入,登入後用api.subscribe()
,就可以使用了。
不过在这之前我们还是要使用api.quote.subscribe?
,来查看这个功能的详述,才知道要使用哪些参数。
Signature:
api.quote.subscribe(
contract: shioaji.contracts.Contract,
quote_type: shioaji.constant.QuoteType = <QuoteType.Tick: 'tick'>,
intraday_odd: bool = False,
)
Docstring: <no docstring>
Type: method
可以看得出来,他这边有三个参数contract
、quote_type
、intraday_odd
,前面是我们常用的商品合约(商品资讯),後面两个,在文件中有提到:
quote_type: tick price or bid/ask price to subscribe.
{'tick', 'bidask'}
intraday_odd: 盘中零股
{True, False}
version: version of quote format.
{'v1', 'v0'}
quote_type
是可以选择tick,或是bid and ask。而intraday_odd
表示选择看的是盘中零股,非整张交易的。最後有个version
,可以选择行情格式的版本,但是,但是,现在这版-shioaji==0.3.2.dev4
-已经没有version
,所以使用他们的范例,会发生错误!!
订阅分成两种,一种是Tick,一种是bid/ask。
如果用股票的话,使用Tick版,直接这样用:
# 取得subscribe 资料:Stock 2330-台积电
api.quote.subscribe(
api.Contracts.Stocks["2330"],
quote_type = sj.constant.QuoteType.Tick, # or 'tick'
)
会有这样的效果:
Response Code: 200 | Event Code: 16 | Info: MKT/*/TSE/2330 | Event: Subscribe or Unsubscribe ok
没错,是空的,绝对不是眼睛坏掉...
为什麽是空的呢?因为现在是晚上,非交易时间没有开盘呀~~~如果有开盘,会是如同范例的样子:
Response Code: 200 | Event Code: 16 | Info: TIC/v1/STK/*/TSE/2330 | Event: Subscribe or Unsubscribe ok
Exchange.TSE
Tick(
code = '2330',
datetime = datetime.datetime(2021, 7, 2, 13, 16, 35, 92970),
open = Decimal('590'),
avg_price = Decimal('589.05'),
close = Decimal('590'),
high = Decimal('593'),
low = Decimal('587'),
amount = Decimal('590000'),
total_amount = Decimal('8540101000'),
volume = 1,
total_volume = 14498,
tick_type = 1,
chg_type = 4,
price_chg = Decimal('-3'),
pct_chg = Decimal('-0.505902'),
bid_side_total_vol= 6638,
ask_side_total_vol = 7860,
bid_side_total_cnt = 2694,
ask_side_total_cnt = 2705,
closing_oddlot_shares = 0,
fixed_trade_vol = 0,
suspend = 0,
simtrade = 0,
intraday_odd = 0
)
那这样直接看期货,更可以感觉到他会动:
# 取得subscribe 资料:2021年10月的台指契约
api.quote.subscribe(
api.Contracts.Futures.TXF['TXF202110'],
quote_type = sj.constant.QuoteType.Tick, # or 'tick'
)
就会有这样的感觉:
另外一种回报格式为 Bid and Ask,也就是买方与卖方的出价,最常显示的就是俗称的「最佳五档」,显示买卖双方各自最佳的五个价格与数量。
要取得资料,直接把quote_type
设定为sj.constant.QuoteType.BidAsk
,这样就可以得到罗。
# 取得subscribe 资料:2021年10月的台指契约
api.quote.subscribe(
api.Contracts.Futures.TXF['TXF202110'],
quote_type = sj.constant.QuoteType.BidAsk,
)
出现的结果大概会是这样:
这边的订阅也颇简单的,只要选择合约和回报种类,就可以直接取得相关资料。取得行情资料後,就可以解资料,取得这些资料,无论是通知或是即时分析,可做很多厉害的事罗~
>>: DAY 15:Factory Method Pattern,把复杂的逻辑拆分至小工厂中
上一篇我们的基因体时代-AI, Data和生物资讯 Day11-基因疗法中之腺病毒载体与机器学习 我...
[Day4] Web 小花花 不要问我为啥我的标题这麽傻白甜 我也不知道,取名好难 路上看到可爱小植...
先前 Google 取消无限制文件云端空间与无限制相簿空间後,大家哀鸿遍野。而原本不受影响的 GSu...
前置作业 在 Podfile 里面新增 Firebase Realtime Database 套件 ...
由於 Open-Match 在架构上,允许使用同一张 ticket,对不同的配对池进行搜寻与配对,这...