前阵子换了台新机器,重装完MT4之后我傻眼了——之前攒了大半年的模板、指标参数、EA配置文件全在老机器里躺着。本来以为把整个安装目录拷过来就完事,结果打开图表一片空白,自定义指标一个没加载,EA挂上去直接报错找不到set文件。后来折腾了一下午才搞明白,MT4的配置分散在好几个目录,光拷根目录根本不够。这周又有汇友在群里问迁移的事,索性把我踩过的坑整理一下,顺便对比几种常见方案。
方案一:整体拷贝安装目录。这是最直觉的做法,把老机器的整个MT4文件夹复制到新机器。优点是省事,理论上所有东西都在里面。但坑在于路径依赖——MT4的配置文件里存的是绝对路径,老机器装在D盘、新机器装在C盘,模板里的指标引用就全断了。我第一次就是这么干的,图表打开后提示找不到自定义指标,EA日志里刷了一屏"cannot open file"。另外终端目录下的origin.txt和部分配置文件带机器标识,直接拷可能导致平台重新初始化。这个方案适合新旧机器安装路径完全一致的情况,否则不建议。
方案二:只拷MQL4目录加templates。这是我后来用的方式,相对干净。具体步骤:
这个方案的好处是绕开了路径依赖,指标和EA是重新编译加载的,不会带着老机器的绝对路径。缺点是拷过去之后第一次打开图表要手动重新指定指标参数,尤其是模板里引用了自定义指标的,可能得逐个确认一遍。我那次迁移完,镑美H1的模板打开后MACD参数变回默认值了,得手动从set文件里重新载入。
方案三:用平台自带的导出功能。MT4其实有个隐藏玩法,在图表上右键选"模板-保存模板",把当前图表存成.tpl,然后在指标列表里逐个导出参数。优点是最干净,等于重建环境,不会有历史垃圾文件。缺点也明显——太慢,我手上有十几个品种的模板,每个都这么导一遍,光点鼠标就点了四十分钟。而且EA的优化参数没法通过模板导出,还得单独处理set文件。适合模板数量少、对纯净度要求高的场景。
说几个实操中容易忽略的点。首先,VPS迁移的时候要注意时区设置,老机器如果是GMT+2、新VPS是GMT+0,模板里的时间相关参数会错位,我有个基于时段过滤的EA就是这么跑飞的。然后,迁移完记得检查MQL4\Files目录,有些EA把状态数据写在这里,不拷过去会导致EA重启后重复开仓。还有,如果新旧机器MT4版本不一致,比如从build 1300多升到1400多,部分老指标的.ex4文件可能不兼容,最好带上.mq4源码重新编译一次。
我现在固定的做法是:先按方案二拷目录,再用方案三对关键模板做一次校验,两边对一遍参数。虽然多花十几分钟,但至少不会出现EA挂上去静默不交易的情况。你们迁移的时候有没有遇到过指标编译报错或者set文件读不进去的问题?我上次有个自定义指标在新机器上死活编译不过,最后发现是依赖了一个dll文件没拷全,这种情况一般怎么排查比较快?
方案一:整体拷贝安装目录。这是最直觉的做法,把老机器的整个MT4文件夹复制到新机器。优点是省事,理论上所有东西都在里面。但坑在于路径依赖——MT4的配置文件里存的是绝对路径,老机器装在D盘、新机器装在C盘,模板里的指标引用就全断了。我第一次就是这么干的,图表打开后提示找不到自定义指标,EA日志里刷了一屏"cannot open file"。另外终端目录下的origin.txt和部分配置文件带机器标识,直接拷可能导致平台重新初始化。这个方案适合新旧机器安装路径完全一致的情况,否则不建议。
方案二:只拷MQL4目录加templates。这是我后来用的方式,相对干净。具体步骤:
- 先关掉MT4,确保没有进程占用文件
- 从老机器拷MQL4\Indicators、MQL4\Experts、MQL4\Scripts三个子目录到新机器对应位置
- 拷templates目录下的.tpl文件,这是图表模板
- 拷profiles目录,这里存的是图表组合布局
- 最后把MQL4\Presets里的.set文件一并带走,EA参数全靠它
这个方案的好处是绕开了路径依赖,指标和EA是重新编译加载的,不会带着老机器的绝对路径。缺点是拷过去之后第一次打开图表要手动重新指定指标参数,尤其是模板里引用了自定义指标的,可能得逐个确认一遍。我那次迁移完,镑美H1的模板打开后MACD参数变回默认值了,得手动从set文件里重新载入。
方案三:用平台自带的导出功能。MT4其实有个隐藏玩法,在图表上右键选"模板-保存模板",把当前图表存成.tpl,然后在指标列表里逐个导出参数。优点是最干净,等于重建环境,不会有历史垃圾文件。缺点也明显——太慢,我手上有十几个品种的模板,每个都这么导一遍,光点鼠标就点了四十分钟。而且EA的优化参数没法通过模板导出,还得单独处理set文件。适合模板数量少、对纯净度要求高的场景。
说几个实操中容易忽略的点。首先,VPS迁移的时候要注意时区设置,老机器如果是GMT+2、新VPS是GMT+0,模板里的时间相关参数会错位,我有个基于时段过滤的EA就是这么跑飞的。然后,迁移完记得检查MQL4\Files目录,有些EA把状态数据写在这里,不拷过去会导致EA重启后重复开仓。还有,如果新旧机器MT4版本不一致,比如从build 1300多升到1400多,部分老指标的.ex4文件可能不兼容,最好带上.mq4源码重新编译一次。
我现在固定的做法是:先按方案二拷目录,再用方案三对关键模板做一次校验,两边对一遍参数。虽然多花十几分钟,但至少不会出现EA挂上去静默不交易的情况。你们迁移的时候有没有遇到过指标编译报错或者set文件读不进去的问题?我上次有个自定义指标在新机器上死活编译不过,最后发现是依赖了一个dll文件没拷全,这种情况一般怎么排查比较快?
