官方说明文件: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] | 成交金额 |
跟前一篇的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)。
昨天做了注册的API,想当然,有注册就有登入登出,不然要注册要干嘛XD 所以今天要来做的是登入、登出...
832. Flipping an Image Given a binary matrix A, we...
例外 在钻写程序的时候,经常无法考虑的面面俱到,因此各种不寻常的状况也跟着发生,下面是几种常见的例子...
.net core web api 可以和任何前端Client端技术或框架(javascript ,...
终於 进入好想工作室第 131 天 终於 我也迎来了传说中的 it 铁人赛 思考了很久铁人赛的主题要...