MT4 hst 文件解析
2020-12-17 本文已影响0人
古月量化
#coding=utf-8
'''
Created on 2017
@author: songy
为适应 Python3 修改于 2020-12-17 by blucehu
'''
import struct
if __name__ == '__main__':
fp = open("USDJPY60.hst" ,'rb')
content = fp.read()
#读取头文件结构信息 #基础版本
print(struct.unpack("i", content[0:4])[0])
#版本信息
s = struct.unpack("64c", content[4:68])
s = [bytes.decode(i) for i in s]
print("".join(s))
#货币对名称
s = struct.unpack("12c", content[68:80])
s = [bytes.decode(i) for i in s]
print("".join(s))
#周期 (单位分钟)
print(struct.unpack("i", content[80:84]))
#小数点位数
print(struct.unpack("i", content[84:88]))
#基准报时
print(struct.unpack("l", content[88:92]))
#同步时间
print(struct.unpack("l", content[92:96]))
#将来应用
print(struct.unpack("13i", content[96:148]))
#循环结构
content_len = len(content);
# for tip in range(148, content_len, 60):
for tip in range(content_len-60, content_len, 60): #最后一条记录
#datetime.datetime.utcfromtimestamp(x).strftime('%Y.%m.%d %H:%M')
print("time:",struct.unpack("l", content[tip:tip+4]))
print("open:",struct.unpack("d", content[tip+8:tip+16]))
print("high:",struct.unpack("d", content[tip+16:tip+24]))
print("low:",struct.unpack("d", content[tip+24:tip+32]))
print("close:",struct.unpack("d", content[tip+32:tip+40]))
print("vol:",struct.unpack("l", content[tip+40:tip+44]))