<Day21> Snapshots — 取得多档股票最新资讯

● 这章会示范如何用Snapshot取得股票最新资讯

Snapshots 快照

"Snapshots"在Shioaji里头可以用来取得多档股票的最新资讯
假设我们今天要取"台积电(2330)"与"永丰金(2890)"这两家公司股票的最新资讯
程序码如下

contracts = [api.Contracts.Stocks['2330'], api.Contracts.Stocks['2890']] #建立list为contracts
snapshots = api.snapshots(contracts) #将contracts丢入snapshot的方法中
print(snapshots) #输出snapshots结果

显示结果截图如下
https://ithelp.ithome.com.tw/upload/images/20211006/20139934GRB0sloZqW.png
为了更清楚表示,我把结果另外复制在下方

[Snapshot(ts=1633530600000000000, code='2330', exchange='TSE', open=573.0, high=574.0, low=565.0, close=571.0, tick_type=<TickType.Buy: 'Buy'>, change_price=-1.0, change_rate=-0.17, change_type=<ChangeType.Down: 'Down'>, average_price=569.2, volume=49, total_volume=32508, amount=27979000, total_amount=18503666758, yesterday_volume=33824.0, buy_price=570.0, buy_volume=56.0, sell_price=571.0,Buy: 'Buy'>, change_price=-1.0, change_rat sell_volume=90, volume_ratio=0.96)  #台积电股票最新资讯

Snapshot(ts=1633530600000000000, code='2890', exchange='TSE', open=13.8, high=13.9, low=13.7, 8503666758, yesterday_volume=33824.0, buy_
close=13.9, tick_type=<TickType.Buy: 'Buy'>, change_price=0.1, change_rate=0.72, change_type=<ChangeType.Up: 'Up'>, average_price=1xchange='TSE', open=13.8, high=13.9, low=13.82, volume=8, total_volume=21110, amount=111200, total_amount=291729419, yesterday_volume=16843.0, buy_price=13.85, buy_volume=62ice=13.82, volume=8, total_volume=21110, a.0, sell_price=13.9, sell_volume=2355, volume_ratio=1.25)]  #永丰金股票最新资讯

Snapshot可以取得不只两家股票的资讯
以下示范一次取得三家股票的最新资讯
台积电(2330)、永丰金(2890)、鸿海(2317)

程序码如下

contracts = [api.Contracts.Stocks['2330'], api.Contracts.Stocks['2890'],api.Contracts.Stocks['2317']]
snapshots = api.snapshots(contracts)
print(snapshots)

显示结果如下
https://ithelp.ithome.com.tw/upload/images/20211006/20139934Im3TM95sHw.png

[Snapshot(ts=1633530600000000000, code='2330', exchange='TSE', open=573.0, high=574.0, low=565.0, close=571.0, tick_type=<TickType.Buy: 'Buy'>, change_price=-1.0, change_rate=-0.17, change_type=<ChangeType.Down: 'Down'>, average_price=569.2, volume=49, total_volume=32508, amount=27979000, total_amount=18503666758, yesterday_volume=33824.0, buy_price=570.0, buy_volume=56.0, sell_price=571.0, sell_volume=90, volume_ratio=0.96) #台积电股票最新资讯

Snapshot(ts=1633530600000000000, code='2890', exchange='TSE', open=13.8, high=13.9, low=13.7, close=13.9, tick_type=<TickType.Buy: 'Buy'>, change_price=0.1, change_rate=0.72, change_type=<ChangeType.Up: 'Up'>, average_price=13.82, volume=8, total_volume=21110, amount=111200, total_amount=291729419, yesterday_volume=16843.0, buy_price=13.85, buy_volume=62.0, sell_price=13.9, sell_volume=2355, volume_ratio=1.25) #永丰金股票最新资讯

Snapshot(ts=1633530600000000000, code='2317', exchange='TSE', open=103.5, high=104.5, low=103.0, close=103.0, tick_type=<TickType.Sell: 'Sell'>, change_price=1.5, change_rate=1.48, change_type=<ChangeType.Up: 'Up'>, average_price=103.76, volume=43, total_volume=38805, amount=4429000, total_amount=4026403659, yesterday_volume=41574.0, buy_price=103.0, buy_volume=3535.0, sell_price=103.5, sell_volume=195, volume_ratio=0.93)] #鸿海股票最新资讯

那以上只有示范取两家及三家股票的最新资讯,如果想取更多也是没问题的!!

为了方便我们浏览,一样把它转为DataFrame的形式

程序码如下

import pandas as pd  #引入pandas命名为pd

contracts = [api.Contracts.Stocks['2330'],api.Contracts.Stocks['2890'],api.Contracts.Stocks['2317']]
snapshots = api.snapshots(contracts) 

df = pd.DataFrame(snapshots) #将snapshots资料转换为DataFrame形式
df.ts = pd.to_datetime(df.ts)  #将ts栏位转换为datetime格式,ts为时间
print(df) #将已转换成DataFrame的资料输出至终端机

显示结果如下

https://ithelp.ithome.com.tw/upload/images/20211006/20139934tzWqBpMhPu.png

左到右行英文名词解释

  • amount: 成交总金额
  • average_price: 平均成交价
  • buy_price: 买入价格
  • buy_volume: 买入数量
  • ts: 交易时间
  • volume: 成交量
  • volume_ratio: 成交比率
  • yesterday_volume: 前日成交量

<<:  30天零负担轻松学会制作APP介面及设计【DAY 27】

>>:  Day21 Redis架构实战-高可用性

javascript HTML DOM4

最後我们学习如何控制多个表单的开合 ...

Day 15 Compose LazyRow

今年的疫情蛮严重的,希望大家都过得安好,希望疫情快点过去,能回到一些线下技术聚会的时光~ 今天目标:...

Day 28-Unit Test 应用於使用重构与测试手法优化 C# Code-2 (情境及应用-8)

Unit Test 应用於使用重构与测试手法优化 C# Code-2-前言 昨天有提到我们在 Con...

[Vue2] 从初学到放弃 Day7-怎麽变化里面的值

先用官网里面的范例 <div id="example"> <p...