数据同步-离线数据采集-easy-tdx-源码分析


用户要求更详细地介绍"数据同步"模块。我需要深入了解离线数据同步相关的代码,特别是 write_daily.py 和其他相关文件。让我先读取这些文件。

用户要求更详细地介绍"数据同步"模块。我需要查看更多相关的代码文件,包括 write_ex_daily.py、write_min_bar.py、daily_bar.py 等,来全面了解数据同步的完整机制。

现在我已经收集到了足够的信息来详细介绍"数据同步"模块。我需要从以下几个方面来组织内容:

  1. 模块整体定位和目标
  2. 支持的文件格式(.day, .5, .lc1, .lc5 等)
  3. 核心功能函数详解(编码、追加、查询最后日期、同步)
  4. 二进制文件格式说明(struct 格式、字节布局)
  5. 价格/成交量系数体系
  6. 证券类型自动识别
  7. 去重机制
  8. 使用示例
  9. 与读取模块的配合

让我把这些信息整理成一个详细的文档段落。 数据同步模块的完整文档已更新至 CODE_WIKI.md 的"6. 离线数据模块"章节。以下是该模块的详细介绍。


数据同步模块详解

1. 模块定位

数据同步模块负责 将服务端获取的行情数据写入本地通达信格式的二进制文件,实现"服务端下载 → 本地持久化"的闭环。它支持日线、扩展市场日线、5分钟线、1分钟线/5分钟线(LC格式)四种数据类型的同步写入。

核心文件:

文件 职责
write_daily.py A股日线数据写入(.day 文件)
write_ex_daily.py 扩展市场日线写入(.day 文件)
write_min_bar.py 分钟线写入(.5 / .lc1 / .lc5 文件)
daily_bar.py 日线读取与证券类型识别
paths.py 通达信安装目录检测

2. 二进制文件格式

2.1 .day 文件格式(A股日线)

每条记录固定 32 字节,小端序:

偏移 长度 类型 字段 说明
0 4 uint32 date YYYYMMDD,如 20250115
4 4 uint32 open 开盘价 × 价格系数倒数(A股 ×100)
8 4 uint32 high 最高价 × 价格系数倒数
12 4 uint32 low 最低价 × 价格系数倒数
16 4 uint32 close 收盘价 × 价格系数倒数
20 4 float32 amount 成交额(元,直接存储)
24 4 uint32 vol 成交量 × 量系数倒数
28 4 uint32 reserved 保留字段,值为 0

Struct 格式:`struct.Struct("