mirror of
https://ghfast.top/https://github.com/aeroxw/easy-tdx.git
synced 2026-09-12 21:34:16 +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:
@@ -14,6 +14,13 @@ import click
|
||||
@click.option("--count", default=800, type=int, help="K线数量")
|
||||
@click.option("--start", default=0, type=int, help="起始偏移(0=最新)")
|
||||
@click.option("--adjust", default="NONE", help="复权: NONE/QFQ/HFQ")
|
||||
@click.option(
|
||||
"--bar-time",
|
||||
"bar_time",
|
||||
type=click.Choice(["start", "end"]),
|
||||
default="start",
|
||||
help="K线时间戳: start=bar开始时间(通达信原始,默认) / end=bar结束时间(对齐Tushare,仅分钟级)",
|
||||
)
|
||||
@click.option("--table", "use_table", is_flag=True, help="表格输出")
|
||||
@click.option("--output", "output_fmt", type=click.Choice(["json", "table", "csv"]), default="json")
|
||||
def kline(
|
||||
@@ -23,6 +30,7 @@ def kline(
|
||||
count: int,
|
||||
start: int,
|
||||
adjust: str,
|
||||
bar_time: str,
|
||||
use_table: bool,
|
||||
output_fmt: str,
|
||||
) -> None:
|
||||
@@ -35,6 +43,10 @@ def kline(
|
||||
easy-tdx kline SH 600519 --adjust QFQ --count 30
|
||||
|
||||
easy-tdx kline SZ 000001 --period 5MIN --table
|
||||
|
||||
时间戳语义:通达信默认用 bar 开始时间(上午最后一根 5min 标 11:25、
|
||||
下午第一根标 13:00)。加 ``--bar-time end`` 切换为右端点(标 11:30/13:05),
|
||||
与 Tushare/同花顺对齐。仅对分钟级周期生效。
|
||||
"""
|
||||
from .conn import get_mac_client
|
||||
from .output import print_output
|
||||
@@ -50,5 +62,6 @@ def kline(
|
||||
start=start,
|
||||
count=count,
|
||||
adjust=parse_adjust(adjust),
|
||||
bar_time=bar_time,
|
||||
)
|
||||
print_output(df, fmt)
|
||||
|
||||
Reference in New Issue
Block a user