- 显示:
- 3735
- 等级:
- 已发布:
- 2016.04.25 14:59
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
有些时候 mql4.com 报价存档缺乏 "小" 数据 (例如, "分钟柱线")。例如, 对于黄金: 分钟柱线历史覆盖周期从 2006 至今。很明显, 对于工作在中等和更高时间帧的 "粗糙" 策略, 这根本不够进行正经测试的, 而且来自不同券商的数据在小时间帧上不是很敏感。不过, 可以使用来自 forexite.com 提供的报价, 直到 2001 年 - 更何况, 这一数据已经赢得了相当不错的口碑。
该网站的 "分钟柱线" 报价格式, 对于 MetaTrader 4 或多或少比较友好: 它是 MetaStock 格式。不幸的是, QuoteRoom 的报价具有更复杂的格式, 即使每年它们都被收集到单个文件。此脚本设计用于处理 MetaStock 格式的数据。
问题是 "分钟柱线" 是按照交易日收集在不同的文件里。此外, 每个文件包含的数据不仅只有金融工具 (即, 黄金), 还有所有其它券商交易的金融工具。第三: 它有周末时的报价, 而这通常是不必要的。因此, 为了将所需的黄金数据导入 MetaTrader 4 历史中心, 有必要处理所有这些不知所谓的文件, 并收集所有在单独文件里的 "分钟柱线"。
脚本执行这个特殊的任务。但首先, 数据需要预备进行处理:
1. 找到网站下载管理器。此处使用 Teleport Pro 程序。即使是未注册的演示版本也足以用于此目的。演示版限制每个单独项目下载的文数量为 500。因为一个交易年度, 即使带上节假日 (forexite.com 在节假日交易), 也不可能大于 365 天, 所以这对脚本的目的足够了。
2. 进入网站相应所需年份的 "分钟柱线" 部分, 下载所有日线存档。单独的项目将需要按年度创建, 但不同年份的文件可以存储在一个单一的目录中。对于文件下载, 只需在设置时指定 *.zip 扩展名, 因为只有这些才是所有文件。这种方法可以下载大概从 2002 到 2007 的 1500 个文件。
3. 所有文件批量解压缩到 "\experts\files\Forexite\" 文件夹。批量解压缩已内置于资源管理器。其结果是在文件夹里的文件名像是这样 250705.txt (2005 年 7 月 25 日报价)。
4. 然后打开 MetaTrader 4 并加载脚本。有三个外部参数:
a. 在来自 forexite.com 的文件里金融工具的名称。对于黄金它是 «XAUUSD»,
b. 导入开始日期, 作为字符串格式为 «YYYY.MM.DD»,
c. 导入结束日期, 作为字符串格式相同。
运行脚本。脚本不处理相应的假期文件。通过在 «专家» 栏里查看脚本执行日志, 可以手动添加缺失的文件, 并再次运行脚本。据经验发现, 早些年通常不包含 1 月 1 日 (元旦) 和 12 月 25 日 (圣诞节) 文件。已处理日期的更新线显示在左上角, 以免失去脚本执行过程中的真实感 (处理从 2002 到 2007 的数据并提炼黄金报价大约 8 分钟)。
5. 在 "\experts\files\" 文件夹会有一个大文件名为 XAUUSD_ALL.csv。这是准备导入的初步文件 (很高兴看到 MetaTrader 4 能够区分 "不同" 格式的日期)。设置第一列省略就足够了 (因为在创建的文件里第一列是 "XAUUSD", 这无必要), 指定列分隔符 (逗号), 指定分时交易量 (如果它没有) 以及指定偏移小时。我没有单独指定偏移, 因为报价与我使用的 Alpari 的服务器时间相应。
在目录 "\experts\files\Forexite\" 导入所有文件后, 脚本操作的结果文件 (XAUUSD_ALL.csv) 也被删除。
最后: 来自 forexite.com 的分钟柱线报价没有交易量数据。当导入至 MetaTrader 4 时, 如果在源数据里未指定交易量或有矛盾, 会计算交易量, 因为测试器发现数据没有交易量时会忽略。如果您的策略不考虑交易量, 且其足够 "粗略", 不受不同券商报价的影响, 那么这是一个正确的工具。
版主注意 (和其他): 为了便于测试脚本的可操作性, 附带了一个 forexite.com MetaStock 格式的所有品种的小报价文档, 从 2006 年 01 月 02 日到 2006 年 12 月 02 日 (包括假期)。展开文档至 "\experts\files\Forexite\" 文件夹, 设置脚本外部参数 (金融工具和日期) 并运行脚本。它也可以尝试其它金融工具, 只需简单地改变 _sSymbol 外部参数。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/7190