通达信的 .day 文件是一种二进制数据文件,格式是固定的
每个文件包含了单个股票从上市至今的所有日线数
解析的核心就是按照它的二进制结构去读取数据
每一天的数据被存储为 32个字节 的一条记录,依次包含以下信息:
1.日期: 4字节整数
2.开盘价: 4字节整数(需要除以100)
3.最高价: 4字节整数(需要除以100)
4.最低价: 4字节整数(需要除以100)
5.收盘价: 4字节整数(需要除以100)
6.成交额: 4字节浮点数
7.成交量: 4字节整数
8.保留字段: 4字节整数(可以忽略)
修正了 struct.unpack 格式:采用 '<IIIIIfII' 一次性正确解析所有字段,无需再对成交额做特殊转换
修正了日期解析逻辑:改用 datetime.strptime 来处理 YYYYMMDD 格式的整数日期,确保日期正确
添加模式配置,可以选择单文件处理 或 批量文件处理
date,stock_code,open,high,low,close,volume,amount
2015-08-27,sh000001,2978.03,3085.42,2906.49,3083.59,400308398,404289290240.0
2015-08-28,sh000001,3125.26,3235.84,3102.95,3232.35,443136928,474631012352.0
2015-08-31,sh000001,3203.56,3207.86,3109.16,3205.99,397431382,431068610560.0
2015-09-01,sh000001,3157.83,3180.33,3053.74,3166.62,432432468,420411637760.0
2015-09-02,sh000001,3027.68,3194.48,3019.09,3160.17,438170153,423262355456.0