- 显示:
- 2606
- 等级:
- 已发布:
- 2014.02.05 10:26
- 已更新:
- 2016.11.22 07:33
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
用来导出历史数据的脚本。
MetaTrader 4 上的历史数据问题 ?从 MetaTrader 5 加载任意深度的历史详情!
步骤 1: 设置
加载脚本到 "terminal_data_folder\MQL5\scripts\"。
加载库 CheckHistory 和 String 到 "terminal_data_folder\MQL5\Include\komposter\"。
编译脚本。
步骤 2: 设置历史深度
进入菜单 "工具 - 选项" (Ctr+O), 或在选项卡上 "图表" 指定您打算导出多少柱线 ("最大窗口柱线")。一年的 M1 历史大概有 370 000 根柱线。
点击 "OK" 并重启 MT。
步骤 3: 设置金融工具列表
如果您打算一次加载多个参数的历史, 将它们加入 "市场观察", 并隐藏不必要的金融工具:
步骤 4: 运行脚本
将脚本拖入任意图表并设置外部变量值:
- SymbolsList: 以逗号分割的符号列表 (例如, "EURUSD,GBPUSD")。
如果您设置 "所有", 所有 "市场观察" 中的特征将被使用; - TimeFramesList: 以逗号分割的时间帧列表 (例如, "M1,M5,M15")。
如果设置 "所有", 所有 МТ4 上的小于 D1 的时间帧将被使用。 - BarsToDownload: 导出柱线数量。
如果设置 0, 所有图表中可见柱线将被导出 ("最大窗口柱线")。
点击 "OK", 并等待关闭消息。您可以跟随客户端的 "自动交易" 选项卡处理:
2013.03.28 11:42:55 sHistoryExport (EURUSD,H1) GBPJPY, PERIOD_M1: history synchronized within 1.5 sec
2013.03.28 11:43:25 sHistoryExport (EURUSD,H1) GBPJPY, PERIOD_M1: 1100000 bars have been written to "History (MetaQuotes-Demo)\GBPJPYM1.csv" and "History (MetaQuotes-Demo)\GBPJPY1.hst" within 30.0 sec!
2013.03.28 11:43:27 sHistoryExport (EURUSD,H1) EURJPY, PERIOD_M1: history synchronized within 1.6 sec
2013.03.28 11:43:55 sHistoryExport (EURUSD,H1) EURJPY, PERIOD_M1: 1100000 bars have been written to "History (MetaQuotes-Demo)\EURJPYM1.csv" and "History (MetaQuotes-Demo)\EURJPY1.hst" within 28.6 sec!
2013.03.28 11:43:57 sHistoryExport (EURUSD,H1) NZDUSD, PERIOD_M1: history synchronized within 1.6 sec
2013.03.28 11:44:26 sHistoryExport (EURUSD,H1) NZDUSD, PERIOD_M1: 1100000 bars have been written to "History (MetaQuotes-Demo)\NZDUSDM1.csv" and "History (MetaQuotes-Demo)\NZDUSD1.hst" within 29.0 sec!
2013.03.28 11:44:28 sHistoryExport (EURUSD,H1) AUDUSD, PERIOD_M1: history synchronized within 1.7 sec
2013.03.28 11:44:56 sHistoryExport (EURUSD,H1) AUDUSD, PERIOD_M1: 1100000 bars have been written to "History (MetaQuotes-Demo)\AUDUSDM1.csv" and "History (MetaQuotes-Demo)\AUDUSD1.hst" within 28.2 sec!
2013.03.28 11:44:59 sHistoryExport (EURUSD,H1) USDCAD, PERIOD_M1: history synchronized within 1.8 sec
2013.03.28 11:45:27 sHistoryExport (EURUSD,H1) USDCAD, PERIOD_M1: 1100000 bars have been written to "History (MetaQuotes-Demo)\USDCADM1.csv" and "History (MetaQuotes-Demo)\USDCAD1.hst" within 28.3 sec!
2013.03.28 11:45:31 sHistoryExport (EURUSD,H1) USDCHF, PERIOD_M1: history synchronized within 3.9 sec
2013.03.28 11:46:00 sHistoryExport (EURUSD,H1) USDCHF, PERIOD_M1: 1100000 bars have been written to "History (MetaQuotes-Demo)\USDCHFM1.csv" and "History (MetaQuotes-Demo)\USDCHF1.hst" within 28.5 sec!
2013.03.28 11:46:01 sHistoryExport (EURUSD,H1) GBPUSD, PERIOD_M1: history synchronized within 1.5 sec
2013.03.28 11:46:31 sHistoryExport (EURUSD,H1) GBPUSD, PERIOD_M1: 1100000 bars have been written to "History (MetaQuotes-Demo)\GBPUSDM1.csv" and "History (MetaQuotes-Demo)\GBPUSD1.hst" within 29.5 sec!
2013.03.28 11:46:33 sHistoryExport (EURUSD,H1) USDJPY, PERIOD_M1: history synchronized within 2.6 sec
2013.03.28 11:47:03 sHistoryExport (EURUSD,H1) USDJPY, PERIOD_M1: 1100000 bars have been written to "History (MetaQuotes-Demo)\USDJPYM1.csv" and "History (MetaQuotes-Demo)\USDJPY1.hst" within 29.4 sec!
2013.03.28 11:47:04 sHistoryExport (EURUSD,H1) EURUSD, PERIOD_M1: history synchronized within 1.5 sec
2013.03.28 11:47:33 sHistoryExport (EURUSD,H1) EURUSD, PERIOD_M1: 1100000 bars have been written to "History (MetaQuotes-Demo)\EURUSDM1.csv" and "History (MetaQuotes-Demo)\EURUSD1.hst" within 28.8 sec!
2013.03.28 11:47:33 sHistoryExport (EURUSD,H1) History export finished within 279.6 sec! 9 files have been written to:
2013.03.28 11:47:33 sHistoryExport (EURUSD,H1) D:\_Forex\MetaTrader 5 Work\MQL5\Files\History (MetaQuotes-Demo)\
如果您设置的金融工具, 并/或 时间帧, 并/或 加载柱线的数量很大, 脚本的工作时间会十分长 或因内存泄露而 宕机!充分评估您的硬件潜力。
步骤 5: 完成!
加载所有必要历史, 脚本显示信息窗口并退出。文件存储文件夹名称, 您可以直接从报警窗口中复制:
脚本创建的 csv-文件, 已准备好导入 MetaTrader 4 ("行情存档 - 导入"):
更新历史
2013.03.25:
- [*] 如果服务器上的金融工具/时间帧没有足够的历史深度, 则脚本将下载并保存整个可用历史 (之前会输出错误并且不会保存任何东西)。
2013.03.28:
- [+] 加入写 "hst"。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/1252

历史加载功能, 由 MetaQuotes 的版本稍加修改

处理字符串的函数库: StringToArray, StringToPeriod and PeriodToString