通达信LC1文件结构解析指南

文件结构解析

  1. 文件头(32字节)

    • 前4字节:文件标识(固定为0x0E
    • 后续28字节:保留字段(通常为0x00
  2. K线记录(每笔40字节)

    • 时间戳(4字节):小端序整型,需转换为时间格式
    • 开盘价(4字节):小端序浮点数
    • 最高价(4字节):小端序浮点数
    • 最低价(4字节):小端序浮点数
    • 收盘价(4字节):小端序浮点数
    • 成交量(4字节):小端序整型
    • 成交额(8字节):小端序双精度浮点数
    • 预留字段(8字节)

Python解析代码

python 复制代码
import struct
import datetime

def read_lc1_file(file_path):
    data = []
    with open(file_path, 'rb') as f:
        # 跳过文件头
        f.read(32)
        
        # 逐条读取K线记录
        while True:
            chunk = f.read(40)
            if not chunk:
                break
            
            # 解析二进制数据
            timestamp, open_price, high, low, close, volume, turnover, _ = struct.unpack('<Iffffd8x', chunk)
            
            # 转换时间戳(通达信时间戳为自1990-01-01的秒数)
            dt = datetime.datetime(1990, 1, 1) + datetime.timedelta(seconds=timestamp)
            
            data.append({
                'datetime': dt,
                'open': open_price,
                'high': high,
                'low': low,
                'close': close,
                'volume': int(volume),
                'turnover': turnover
            })
    return data

# 示例调用
kline_data = read_lc1_file('path/to/data.lc1')

关键说明

  1. 字节序 :所有字段均为小端序<符号在struct.unpack中指定)
  2. 时间戳转换: $$ \text{时间} = \text{1990-01-01} + \text{时间戳(秒)} $$
  3. 精度处理:成交量需转为整数(原始数据为浮点存储的整数)

输出数据结构

返回结果为字典列表,每条记录包含:

python 复制代码
{
    'datetime': datetime.datetime(2023, 5, 17, 10, 30),  # 时间
    'open': 15.23,  # 开盘价
    'high': 15.45,  # 最高价
    'low': 15.20,   # 最低价
    'close': 15.40, # 收盘价
    'volume': 51200, # 成交量(手)
    'turnover': 785920.0  # 成交额(元)
}

注意事项

  • 不同版本的通达信可能存在细微格式差异,建议先验证文件头标识。
  • 成交额字段(turnover)为双精度浮点数,可精确表示较大数值。
相关推荐
一晌小贪欢12 小时前
深入理解 Python HTTP 请求:从基础到高级实战指南
开发语言·网络·python·网络协议·http
七牛云行业应用12 小时前
1M上下文腐烂?实测Opus 4.6 vs GPT-5.3及MoA降本架构源码
人工智能·python·llm·架构设计·gpt-5·claude-opus
Java后端的Ai之路17 小时前
【Python 教程15】-Python和Web
python
冬奇Lab18 小时前
一天一个开源项目(第15篇):MapToPoster - 用代码将城市地图转换为精美的海报设计
python·开源
二十雨辰20 小时前
[python]-AI大模型
开发语言·人工智能·python
Yvonne爱编码20 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
前端摸鱼匠21 小时前
YOLOv8 环境配置全攻略:Python、PyTorch 与 CUDA 的和谐共生
人工智能·pytorch·python·yolo·目标检测
WangYaolove131421 小时前
基于python的在线水果销售系统(源码+文档)
python·mysql·django·毕业设计·源码
AALoveTouch1 天前
大麦网协议分析
javascript·python
ZH15455891311 天前
Flutter for OpenHarmony Python学习助手实战:自动化脚本开发的实现
python·学习·flutter