2.2 KiB
2.2 KiB
策略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 坐标。