mirror of
https://ghfast.top/https://github.com/aeroxw/easy_tdx_max.git
synced 2026-09-12 14:34:18 +08:00
feat(kline): 分钟级K线时间戳可选bar_time对齐Tushare (Discussion #7)
通达信协议用bar开始时间打时间戳(5min线上午最后一根标11:25、下午第一根标13:00;午休11:30-13:00无bar),而Tushare/同花顺/聚宽用bar结束时间(标11:30/13:05)。新增bar_time参数让用户一键切换,避免自行+5分钟偏移。
- 全部3条K线路径覆盖:A股get_security_bars/get_index_bars、扩展行情get_instrument_bars、MAC get_stock_kline(含同步+异步、get_stock_kline_with_indicators)
- CLI kline新增--bar-time {start,end}选项;Web /bars、/bars/index新增bar_time查询参数
- bar_time=start(默认)保持完全向后兼容;bar_time=end仅对分钟级周期(1/5/15/30/60min)生效,自动按周期时长右移并处理跨小时/跨日边界
- 协议解码层零改动,偏移作为纯展示语义在client层后处理,单一工具函数_apply_bar_time_align_df/_apply_bar_time_align_bars复用于全部路径
- 新增27个单元测试(test_codec_datetime.py偏移逻辑 + test_kline_bar_time.py三路径覆盖),全量700单测通过
- bump 版本号至 1.16.0
This commit is contained in:
@@ -34,6 +34,12 @@ KlineCategory 枚举所有值:
|
||||
vol : float64 -- 成交量(股)
|
||||
amount : float64 -- 成交额(元)
|
||||
|
||||
bar_time 参数(仅分钟级周期):
|
||||
bar_time="start"(默认)-- datetime 标 bar 开始时间(通达信原始约定)。
|
||||
例:5min 线上午最后一根标 11:25、下午第一根标 13:00;午休 11:30–13:00 无 bar。
|
||||
bar_time="end" -- datetime 标 bar 右端点(= 开始 + 周期时长),对齐
|
||||
Tushare / 同花顺 / 聚宽。例:上午最后一根标 11:30、下午第一根标 13:05。
|
||||
|
||||
使用客户端:TdxClient(同步)
|
||||
关键参数:
|
||||
market : Market 枚举
|
||||
@@ -52,6 +58,18 @@ with TdxClient.from_best_host() as c:
|
||||
print("江特电机 日K线:")
|
||||
print(df.to_string(index=False))
|
||||
|
||||
# 5 分钟线:默认 bar_time="start"(通达信原始,上午最后一根标 11:25)
|
||||
df5_start = c.get_security_bars(Market.SZ, "002176", KlineCategory.MIN_5, 0, 5)
|
||||
print("\n江特电机 5分钟线 (bar_time=start,默认):")
|
||||
print(df5_start.to_string(index=False))
|
||||
|
||||
# 5 分钟线:bar_time="end" 对齐 Tushare(上午最后一根标 11:30)
|
||||
df5_end = c.get_security_bars(
|
||||
Market.SZ, "002176", KlineCategory.MIN_5, 0, 5, bar_time="end"
|
||||
)
|
||||
print("\n江特电机 5分钟线 (bar_time=end,对齐 Tushare):")
|
||||
print(df5_end.to_string(index=False))
|
||||
|
||||
# 运行结果:
|
||||
# 江特电机 日K线:
|
||||
# date open close high low vol amount
|
||||
|
||||
Reference in New Issue
Block a user