Day 08 - Kbars

本篇重点

  • Kbars 介绍及属性说明
  • 使用 Pandas 将 Kbars 资料转换为 DataFrame

Kbars 介绍及属性说明

官方说明文件:https://sinotrade.github.io/tutor/market_data/historical/#kbar-data
api.kbars使用参数说明如下:

api.kbars(
        contract: BaseContract, #所要抓取kbars资料的Contract物件
        start: str = (dt.date.today() - dt.timedelta(days=1)).strftime("%Y-%m-%d"), #开始日期,预设为昨天
        end: str = dt.date.today().strftime("%Y-%m-%d"), #结束日期,预设为今天
        timeout: int = 30000, #timeout时间,预设为30000ms
        cb: typing.Callable[[Kbars], None] = None,
    )

若要取得单一交易日的kbars资料,范例如下:

# 取得2330,2021/9/17的kbars资料
kbars = api.kbars(api.Contracts.Stocks["2330"], start="2021-09-17", end="2021-09-17")

若要取得特定日期区间的kbars资料,范例如下:

# 取得2330,2021/9/13~2021/9/17的kbars资料
kbars = api.kbars(api.Contracts.Stocks["2330"], start="2021-09-13", end="2021-09-17")

跟前一篇的ticks一样,api.kbars回传的资料为shioaji.data.Kbars物件
属性说明如下:

属性 说明
ts [1631869260000000000] 时间戳
Open [600.0] 开盘
High [601.0] 最高
Low [600.0] 最低
Close [601.0] 收盘
Volume [1316] 成交量
Amount [789625000.0] 成交金额

使用 Pandas 将 Kbars 资料转换为 DataFrame

跟前一篇的ticks资料一样,在将kbars资料转换为DataFrame前,要先把kbars物件内容先转换为Dict
程序范例如下:

df = pd.DataFrame({**kbars}) #先将Kbars物件转换为Dict,再传入DataFrame做转换
df.ts = pd.to_datetime(df.ts) #将原本的ts栏位中的资料,转换为DateTime格式并回存
print(df) #将DataFrame的资料输出至console中

执行print(df)後,原本的资料内容,已变成下列的格式

                     ts   High        Amount    Low   Open  Volume  Close
0   2021-09-17 09:01:00  601.0  7.896250e+08  600.0  600.0    1316  601.0
1   2021-09-17 09:02:00  601.0  7.622000e+07  600.0  600.0     127  600.0
2   2021-09-17 09:03:00  601.0  1.860700e+07  600.0  600.0      31  600.0
3   2021-09-17 09:04:00  601.0  5.766500e+07  600.0  600.0      96  601.0
4   2021-09-17 09:05:00  601.0  1.742300e+07  600.0  601.0      29  600.0
..                  ...    ...           ...    ...    ...     ...    ...
261 2021-09-17 13:22:00  609.0  1.948600e+07  608.0  609.0      32  609.0
262 2021-09-17 13:23:00  609.0  2.373700e+07  608.0  609.0      39  609.0
263 2021-09-17 13:24:00  609.0  4.199200e+07  608.0  609.0      69  609.0
264 2021-09-17 13:25:00  609.0  3.287100e+07  608.0  609.0      54  608.0
265 2021-09-17 13:30:00  600.0  1.324920e+10  600.0  600.0   22082  600.0

从上面的输出结果,可以看到kbars的资料时间都是一分钟一笔资料,也就是对应K线的最小单位-1分钟图(1分K)。


<<:  [Day9]参观乙太链与区块链

>>:  Day8 PHP数据类型

[Day19] 登入、登出API – views

昨天做了注册的API,想当然,有注册就有登入登出,不然要注册要干嘛XD 所以今天要来做的是登入、登出...

今年我想陪着 30 天之 30

832. Flipping an Image Given a binary matrix A, we...

DAY23-JAVA的例外

例外 在钻写程序的时候,经常无法考虑的面面俱到,因此各种不寻常的状况也跟着发生,下面是几种常见的例子...

.Net Core Web Api_笔记01

.net core web api 可以和任何前端Client端技术或框架(javascript ,...

来一道色香味俱全的 JavaScript 吧

终於 进入好想工作室第 131 天 终於 我也迎来了传说中的 it 铁人赛 思考了很久铁人赛的主题要...