Tortoise/strategy/doc/strategy2_a500_hs300_close_chart.md
2026-06-23 11:15:04 +08:00

2.2 KiB
Raw Blame History

策略2中证 A500 与沪深 300 双轴收盘价图

目标

sidecar 模块获取中证 A500 与沪深 300 指数日线数据,将两者自中证 A500 成立日至今日的收盘价绘制在同一张 SVG 图中。由于两个指数价格区间不同,图表使用双 Y 轴:左轴对应中证 A500右轴对应沪深 300。

假设

  • 中证 A500 指数代码:sh000510
  • 沪深 300 指数代码:sh000300
  • 横轴起始日:2024-09-23
  • 数据周期:日线。
  • K 线数据源:sidecar.sources.tencent.TencentFinanceSource
  • 输出格式SVG 图片,默认路径为 strategy/output/a500_hs300_close.svg

双轴缩放规则

  • 两个指数都以 2024-09-23 的收盘价作为各自基准价。
  • Y 坐标按相对基准价的涨跌比例计算,而不是按各自价格区间独立拉伸。
  • 因此两个指数起点位于同一水平线;相同涨跌比例对应相同纵向距离。
  • 终点不强行对齐,终点高度真实反映各自相对起点的涨跌幅差异。
  • 左右 Y 轴仍显示各自指数价格,同时括号展示对应涨跌比例。

数据处理

  • 两个指数都通过 sidecar 统一服务读取并写入 DuckDB 缓存。
  • 先过滤 2024-09-23 之前的数据。
  • 再按共同交易日对齐,避免不同市场日历或缺失数据导致横轴错位。

运行方式

python -m strategy.a500_hs300_close_chart --refresh

可指定输出路径:

python -m strategy.a500_hs300_close_chart --output strategy/output/a500_hs300_close.svg --refresh

输入

参数 类型 默认值 说明
--output string strategy/output/a500_hs300_close.svg 输出 SVG 文件路径
--refresh bool False 是否强制刷新 sidecar 缓存

输出

生成一张 SVG 图片:

  • 横轴:共同交易日期,范围为中证 A500 成立日 2024-09-23 至当前可获取的最新交易日。
  • 左轴:中证 A500 日收盘价。
  • 右轴:沪深 300 日收盘价。
  • 标题:中证 A500 与沪深 300 收盘价对比

测试用例

  • 5-1:按共同交易日对齐两组收盘价。
  • 5-2:生成包含双轴图例和两条折线的 SVG。
  • 5-3:相同涨跌比例映射到相同 Y 坐标。