<Day19> Subscribe — 订阅及时Ticks逐笔成交资料

● 这章会示范如何订阅ticks逐笔成交资料

Subscribe

之前几章我们有介绍到什麽是ticks,还有如何取得ticks资料,可回去参考Day13
那这章我们来介绍什麽是Subscribe?
"Subscribe"中文为"订阅"的意思,在Shioaji上,我们可以拿它来取得及时的报价资讯,即盘中报价。在股票的交易时间内,我们透过它去抓取每笔的成交资料,而这些资料都是即时更新的,所以每隔几秒就会有新的资料被上传上来。

如何Subscribe逐笔成交资料?

在订阅之前,我们得先宣告quote_callback

为什要要宣告quote_callback?
因为在订阅後,每当有一笔订单成交时,永丰的Server就会及时传这笔资料给我们
而quote_callback就是用来处理所回传资料的函数
宣告quote_callback方式如下

@api.quote.on_quote
def quote_callback(topic: str, quote: dict):
    print(f"Topic: {topic}, Quote: {quote}")

接着我们以"永丰金"为例,代码为「2890
来试着Subscribe它的ticks资料
以下为其程序码

api.quote.subscribe(api.Contracts.Stocks["2890"], quote_type='tick')

如果出现以下画面,Response Code为200,那就代表订阅成功啦~~~~

https://ithelp.ithome.com.tw/upload/images/20211004/20139934yaV8W1ti46.png

由於没有执行程序时,VS Code不会主动显示输出
所以我们要再设个时间,让程序持续执行一段时间去抓取资料
程序码如下

import time  #引入时间
time.sleep(10)  #持续执行10秒

执行结果如下

Topic: MKT/idcdmzpcr01/TSE/2890, Quote: {'AmountSum': [77407300.0], 'Close': [13.65], 'Date': '2021/10/12', 'TickType': [2], 'Time': '09:14:49.974072', 'VolSum': [5651], 'Volume': [10]}

英文名词解释

  • AmountSum: 总成交金额
  • Close: 成交价
  • Date: 交易日期
  • TickType: tick类型
  • Time: 交易时间
  • VolSum: 总成交量
  • Volume: 成交量

如何取消订阅?

如果想要取消订阅的话,则是要用"Unsubscribe"
程序码如下

api.quote.unsubscribe(api.Contracts.Stocks["2890"], quote_type='tick')

<<:  【Day 19】- 让 Selenium 去 Dcard 上爬文! (实战 Selenium 模拟使用者划手机 1/2)

>>:  第 19 集:Bootstrap 客制化 Sass 必备知识(下)

不只懂 Vue 语法:Vue 3 如何使用 Proxy 实现响应式(Reactivity)?

问题回答 Vue 3 会为 data 建立一个 Proxy 物件,并在里面建立 getter 和 s...

[DAY 18] _UART传输

这是算是大家最常见串列通讯,他原理较简单方便,现在韧体工程师在除错或为简单验证资料,大家知道TX、R...

{CMoney战斗营} 的第八周 #如果我不再这里学习

游戏专题进行了半个月,耗费最大的心力是在处理碰撞的逻辑问题,为1 Pixcel的逻辑误差斤斤计较,不...

【D11】再度熟悉厨具:合约

前言 除了在Day6上面写的功能,发现合约还有很多东西可以玩。 概况 登入後,直接使用api.Con...

予焦啦!附录:那些作业系统的巨人们与参考资料

没有人是一座孤岛,而技术与软件亦然。早在 Hoddarla 抵达系列文本篇最後的基本命令列功能之前、...