Summary: 本文介绍如何在MT5中创建自定义品种并导入历史数据,用于回测经纪商未提供的交易品种,涵盖官方文档指引和实际操作中的关键注意事项。




上个月想回测一个针对冷门交叉盘的均值回归策略,打开MT5一看,经纪商压根没上架这个品种。差点就准备放弃了,后来翻到MetaTrader 5官方帮助里关于自定义金融品种的功能,才发现这事儿有解。

问题的根源

经纪商提供的品种列表是固定的,他们要是不给某个品种,你没法硬要。但回测这件事,本质上不需要真实的交易通道,只需要数据。MT5的自定义品种功能就是解决这个痛点的——你自己建一个品种,自己喂数据。

创建自定义品种的步骤

官方帮助文档里写得很清楚,具体操作如下:

  • <strong>打开品种管理窗口</strong>:在市场报价窗口里右键,选"交易品种"。或者从顶部菜单进"查看" > "交易品种"。


  • <strong>点击创建</strong>:在交易品种窗口里找到"创建自定义交易品种"按钮,点进去就进入配置面板了。


  • <strong>填基础参数</strong>:

  • - 名称得是唯一的,不能跟经纪商已有的品种重名。官方规定只能含拉丁字母,特殊字符只允许 ._&#
    - "基础"字段填底层资产名称,比如期货合约就填对应的商品名。
    - 有个省事的技巧——"复制自"下拉菜单,选一个现成品种,参数直接拷过来再微调。

  • <strong>设置交易和报价时段</strong>:这一步很关键,直接关系到回测的真实性。官方文档特别提了一句,EA在策略测试里的非交易时段是不会开单的。我一般把交易时段设成跟品种对应市场的活跃时间一致。


  • 历史数据的导入

    品种建好了,但里面是空的,没有价格历史。我手头有MT4的历史数据(MT4上有这个品种),怎么弄进去呢?

  • <strong>数据准备</strong>:MT4的历史数据存在数据目录的history\文件夹里。导出来之后,要整理成MT5能认的格式。


  • <strong>导入操作</strong>:进"查看" > "历史中心",选中你的自定义品种,点"导入"。文件格式得是CSV,列顺序是时间、开盘价、最高价、最低价、收盘价、tick量。我写了个简单的脚本把MT4导出的数据转成了这个格式。


  • <strong>校验数据</strong>:导入成功后,在历史中心里能看见数据。开个图表验证一下,正常显示就说明成了。


  • 一个官方文档没明说的坑

    自定义品种默认只存买价(bid)。如果你的EA在回测时需要用到卖价(ask)来计算(比如买单入场逻辑),就得单独把ask数据也导进去。我一开始没意识到这个问题,回测结果跟预期差了好几个点,折腾了两天才发现根儿在这儿。

    在自定义品种上跑回测

    品种建好、数据喂进去之后,打开策略测试器(Ctrl+R),下拉菜单里就能选到你的自定义品种了,跟用普通品种一样跑就行。

    导出自定义品种

    如果想备份或者分享给别人,可以在交易品种窗口里右键自定义品种,选"导出",会生成一个JSON文件,包含交易时段、合约规格等所有配置。方便得很。

    参考来源:MetaTrader 5官方帮助 - 自定义金融品种(metatrader5.com)。

    本文首发于FXEAR.com,原创内容,未经授权禁止转载。
    ```