之前几章我们有介绍到什麽是ticks,还有如何取得ticks资料,可回去参考Day13
那这章我们来介绍什麽是Subscribe?
"Subscribe"中文为"订阅"的意思,在Shioaji上,我们可以拿它来取得及时的报价资讯,即盘中报价。在股票的交易时间内,我们透过它去抓取每笔的成交资料,而这些资料都是即时更新的,所以每隔几秒就会有新的资料被上传上来。
为什要要宣告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')
由於没有执行程序时,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]}
如果想要取消订阅的话,则是要用"Unsubscribe"
程序码如下
api.quote.unsubscribe(api.Contracts.Stocks["2890"], quote_type='tick')
<<: 【Day 19】- 让 Selenium 去 Dcard 上爬文! (实战 Selenium 模拟使用者划手机 1/2)
>>: 第 19 集:Bootstrap 客制化 Sass 必备知识(下)
问题回答 Vue 3 会为 data 建立一个 Proxy 物件,并在里面建立 getter 和 s...
这是算是大家最常见串列通讯,他原理较简单方便,现在韧体工程师在除错或为简单验证资料,大家知道TX、R...
游戏专题进行了半个月,耗费最大的心力是在处理碰撞的逻辑问题,为1 Pixcel的逻辑误差斤斤计较,不...
前言 除了在Day6上面写的功能,发现合约还有很多东西可以玩。 概况 登入後,直接使用api.Con...
没有人是一座孤岛,而技术与软件亦然。早在 Hoddarla 抵达系列文本篇最後的基本命令列功能之前、...