【D14】熟悉厨具:订阅Subscribe

前言

看了一些交易资料,现在来看看行情订阅Subscribe吧~

参考网站:Stocks
参考网站:Futures

本日程序码使用:[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

可以看得出来,他这边有三个参数contractquote_typeintraday_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

如果用股票的话,使用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'
)

就会有这样的感觉:
tick

Bid and Ask

另外一种回报格式为 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,
)

出现的结果大概会是这样:
bidask


後记

这边的订阅也颇简单的,只要选择合约和回报种类,就可以直接取得相关资料。取得行情资料後,就可以解资料,取得这些资料,无论是通知或是即时分析,可做很多厉害的事罗~


<<:  day13_Linux Arm 的文书之旅

>>:  DAY 15:Factory Method Pattern,把复杂的逻辑拆分至小工厂中

我们的基因体时代-AI, Data和生物资讯 Day12-基因疗法中之腺病毒载体与机器学习

上一篇我们的基因体时代-AI, Data和生物资讯 Day11-基因疗法中之腺病毒载体与机器学习 我...

[Day4] Web 小花花

[Day4] Web 小花花 不要问我为啥我的标题这麽傻白甜 我也不知道,取名好难 路上看到可爱小植...

G Suite 教育版更名为 Google Workspace for Education,并取消无限制储存空间限制至 100 TB

先前 Google 取消无限制文件云端空间与无限制相簿空间後,大家哀鸿遍野。而原本不受影响的 GSu...

【在 iOS 开发路上的大小事-Day27】透过 Firebase 来管理资料 (Cloud Firestore 篇) Part1

前置作业 在 Podfile 里面新增 Firebase Realtime Database 套件 ...

Day11 配对品质评估 Evaluator

由於 Open-Match 在架构上,允许使用同一张 ticket,对不同的配对池进行搜寻与配对,这...