文章 "如何将MetaTrader 5中的交易复制到MetaTrader 4" - 页 15

 
raminzk:

感谢 alexvd 解决了问题!

alexvd


删除或注释该行

#property show_inputs



它是脚本的属性,因此新编译器认为它是脚本
没关系,谢谢
 
currencyscalper:

你好,Raminzk、

更新后,也许我们应该更改文件夹中的某些内容?

有人能帮忙吗?

我正在努力,如果有任何结果,我会发布在这里。在运行过程中,您是否遇到任何错误或警告?
 

终于,我在新版 MT4 中找到了一个可以正常工作的版本,没有出现任何数组超出范围错误、元交易终端 安装限制和 Windows UAC 干扰。由于这个原因和一些不兼容问题,我修改了两个文件,并在本帖中附上了新版本。

现在我将逐步解释:

1.将 MT5 安装在任意位置。我安装在默认的 C:\ProgramFiles 目录下。

2.在任意位置安装新的 MT4。我安装在默认的 C:\ProgramFiles - 在运行时,这 2 个程序将被移动到 [user]\AppData\Roaming\MetaQuotes\Terminal\ 3.

3.以管理员身份运行 cmd.exe,并运行 mklink 命令,在 mt4 运行专家(copyist_positions_V2.mq4)中指向的虚拟文件夹巫婆和 MT5 "Files "文件夹之间建立链接。

(Translator_Positions_V2.mq5 被修改为将文件写入其安装位置的 Files 文件夹)。

命令如下

mklink /D "C:\Users\Ramin\AppData\Roaming\MetaQuotes\Terminal\50CA3DFB510CC5A8F28B48D1BF2A5702\MQL4\Files\Link2MT5_DataFolder" "C. /D\Users\Ramin\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Files"

从文件菜单运行每个终端的 "打开数据文件夹 "项时,可以轻松地从地址栏中复制这两个长地址。

名为 "Link2MT5_DataFolder"名称指的是一个虚拟文件夹,您可以将其选为 copyist_positions_V2 参数。但请确保您 作为专家参数选择的名称与您在命令行中使用的名称相同。

4.4. 将专家连接到终端,不要忘记将 copyist_positions_v2 的参数 "link_folder_name"设置为您为虚拟文件夹选择的名称: Link2MT5_DataFolder

5.程序运行正常,但仍然存在一个问题,那就是在复制某些时间交易时会出现几分钟的延迟。

感谢 nikolay 提供这篇好文章...


附加的文件:
 
raminzk:

终于,我在新版 MT4 中找到了一个可以正常工作的版本,没有出现任何数组超出范围错误、元交易终端 安装限制和 Windows UAC 干扰。由于这个原因和一些不兼容问题,我修改了两个文件,并将新版本附在本帖后。



对于下面几行,现在是否应该设置为 FILE_UNICODE,而不是 FILE_ANSI?

//--- 打开文件以便写入,共享读取模式
   int han=FileOpen(filename+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,",");
 

另一个问题是,共享文件使用公用文件夹会更好吗?

即 C:\Users\<your name>\AppData\Roaming\MetaQuotes\Terminal\Common

 
BP33:
对于下面几行,现在是否应该设置为 FILE_UNICODE,而不是 FILE_ANSI?

因为我知道 ANSI 文件格式适用于 CSV 文件,而实际上它是文本文件。
 
BP33:

另一个问题是,共享文件使用公用文件夹会更好吗?

即 C:\Users\<your name>\AppData\Roaming\MetaQuotes\Terminal\Common

这并不重要,你可以使用常用文件夹,但在打开文件时应使用适当的地址指向该位置。当你没有在文件打开命令中指定地址时,文件会在 files 文件夹中生成。
 
raminzk:
这并不重要,您可以使用普通文件夹,但在打开文件时应使用适当的地址指向该位置。当您在文件打开命令中没有指定地址时,文件将在文件文件夹中生成。
好的,谢谢 :)
 
谢谢你的工作raminzk 帮了我大忙。
 

谢谢你 Raminzk!!你帮了我大忙!

我在 Windows Server 2012 上使用 "mklink "命令时遇到了一点小问题。我收到了这样一条信息:"'mklink'一词未被识别"。

如果有人遇到同样的问题,请编写这样的命令:cmd /c "mklink /D c:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\01BA5EF0D3A9B913D6D3829DD4594A7F\MQL4\Files\Link2MT5_DataFolder c.:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\AA82CE0AC7C62FBE1F51AB464A314D34\MQL5\Files\"