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]))
上一篇下一篇

猜你喜欢

热点阅读