iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0
永豐金融APIs

永豐證API X Python系列 第 12

【D12】發現新廚具:Snapshot

  • 分享至 

  • xImage
  •  

前言

有個Snapshot的功能,可以看當下的商品狀況,讓我們看看這個功能可以做啥吧!

參考網站:Snapshot

本日程式碼使用:d12_snapshot.ipynb


取得資料

首先取得資料,看看資料內容是什麼,才能決定他可以做什麼事情。

  • 首先登入
# 登入shioaji
api = sj.Shioaji()
api.login(
    person_id="id是我",
    passwd="密碼是我",
)

登入後,就使用api.snapshots(合約)取得snapshot,裡面「合約」要存放的參數是之前探討的合約-Contracts,。這次也是使用台積電(2330)的資料。

contract = [api.Contracts.Stocks['2330']]
snapshot = api.snapshots(contract)
snapshot

可以得到:

[Snapshot(ts=1632493800000000000, code='2330', exchange='TSE', open=591.0, high=598.0, low=590.0, close=598.0, tick_type=<TickType.Buy: 'Buy'>, change_price=10.0, change_rate=1.7, change_type=<ChangeType.Up: 'Up'>, average_price=594.7, volume=54, total_volume=16736, amount=32292000, total_amount=9952872854, yesterday_volume=21696.0, buy_price=597.0, buy_volume=41.0, sell_price=598.0, sell_volume=2, volume_ratio=0.77)]

當然也可以轉換成dataframe,更好閱讀也更好處理數據:

# 轉換成dataframe
df = pandas.DataFrame(snapshot)

比對Yahoo資料與資料格式

來看一下他的欄位:

ts (int): TimeStamp.
code (str): Contract id.
exchange (Exchange): Attributes of industry.
open (float): open
high (float): high
low (float): low
close (float): close
tick_type (TickType): Close is buy or sell price.
    {None, Buy, Sell}
change_price (float): change price.
change_rate (float): change rate.
change_type (ChangeType):
    {LimitUp, Up, Unchanged, Dowm, LimitDown}
avgerage_price (float): avgerage of price.
volume (int): volume.
total_volume (int): total volume.
amount (int): Deal amount.
total_amount (int): Total deal amount.
yestoday_volume (float): Volume of yestoday.
buy_price (float): Price of buy.
buy_volume (float): Volume of sell.
sell_price (float): Price of sell.
sell_volume (int): Volume of sell.
volume_ratio (float): total_volume/yestoday_volume.

來跟Yahoo股票的資料比對9/24的資料,看看是否相同。

Yahoo的資料為:

開:591  高:598  低:590  收:598  量:16700  漲跌:10.00
  • 開高低收:取得的資料是open=591.0, high=598.0, low=590.0, close=598.0,資料相同。
  • 量為:total_volume=16736,實際上證交所提供的為「17,302,848」股,兩者皆有落差。
  • 昨量也有落差,從API取得的yesterday_volume=21696.0,但實際上為「22,736,266」仍有不同。

結論

以這個snapshot來說,他是當下的狀態,而例子中的timestamp為1632493800000000000,也就是Friday, September 24, 2021 2:30:00 PM零股的時間,但是數量又對不起來...

看來可以那個的準確度要觀察,不過價格應該是可以使用。


上一篇
【D11】再度熟悉廚具:合約
下一篇
【D13】發現新book:Account Data- Position
系列文
永豐證API X Python31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言