历史数据从通达信下载,通达信是很良心的软件,提供免费的数据,不得不赞一下。
详细步骤如下:
1,打开通达信,在系统菜单里选择盘后数据下载

2,选择期货市场行情分钟线,勾选1分钟数据,选择好时间段,时段与MT4的数据时间衔接起来,添加需要下载数据的品种,点击开始下载,等待下载完成

3,将下载的离线数据导出,在系统菜单里选择数据导出,选择高级导出


4,添加需要导出的品种,选择1分钟线,选择好导出目录,文件命名为TXT格式,不要勾选生成导出头部,分隔格式选逗号,日期格式YYYY-MM-DD,设置好后点开始导出

5,导出的TXT文件如下图


6,打开通达信转换MT4程序,弹出DOS窗口,输入TXT文件的绝对路径,回车确认即可把TXT文件转换成MT4格式的csv文件,点DOS窗口图标可粘贴路径,路径不能多输入空格,否则路径会识别错误


7,打开MT4历史数据中心,找到需要导入数据的品种,双击1分钟周期显示历史数据,可以查看最早的数据时间,点击导入,选择转换好的csv文件,其他参数不变,点击OK,即可把历史文件导入进MT4



8,查看历史数据,已经增多,刷新K线图表窗口,历史K线便更新到图表中了


9,用1分钟数据生成其他周期数据。把脚本里的周期转换工具拖到1分钟K线图上,参数输入5,表示将周期转为1*5即5分钟,转换完成后在文件菜单打开离线图表,可以查看到5分钟K线增多,起始时间和1分钟历史数据时间一致



10,打开5分钟K线图,发现5分钟数据已经更新了,若没有更新就再回到第7-8步,区别是在导入时,选择刚转换好的5分钟历史数据,即在历史文件夹里选择hst数据,导入完成再刷新K线图即可


通达信转MT4小程序是以Python代码所写,完整代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import csv
print('n')
print('MT4专用,版权所有: ','n')
print(r'文件绝对路径示例:C:new_tdxqhT0002exportMA.TXT')
while True :
print('n')
a=input('请在此输入文件绝对路径并回车:')
if not a : break
try :
data = open(a)
hM1 = []
for i in data:
d = [x for x in i.strip().split(',')]
hM1.append(d)
hM1.pop()
for i in hM1 :
i[0] = i[0].replace('-','.')
i[1] = i[1][:-2]+':'+i[1][-2:]+':00'
hM1 = [i[:7] for i in hM1]
b=a[:-4]
M1 = open(b+' 1分钟.csv',"w+",newline='',encoding='utf-8')
writer = csv.writer(M1)
writer.writerows(hM1)
#print(hM1[-5:])
data.close()
M1.close()
print('n')
print('转换完成')
except FileNotFoundError :
print('文件路径不存在,请检查输入是否正确')
except PermissionError :
print('文件'+b+' 1分钟.csv'+'被占用,请先关闭再写入')
except OSError :
print('路径前不得有空格,请检查输入是否正确')