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

 
zhserg:

我做了一个简单的复制器。设置从哪里到哪里,然后复制间隔。

存档中的exe 文件
 
Warstein:
感谢您提供的好东西
我有一个很大的要求,就是只对具有一定魔法值的订单有效。

我支持这个想法,也许有人会写,所以代码很棒,感谢作者,一切都很棒!我只需要找到一个好的交易者并要求投资;)

 

我们应该补充

1.批量比例 - 从 5 位数到 4 位数 - 批量也移动 1 位数。

一般来说,最好不提取批量,而是提取自由余量、批量和点数,然后在接收器上根据可用的自由余量和小数位重新计算批量。

这样可以保持人工管理 - 没有人工管理,程序就失去了意义。

2.符号的前缀-后缀 - 有时 DC 调用的交易符号不是 EURUSD,而是 EURUSD_byaka(最好在单独的配置文件中重复 "从哪个到哪个 "的符号对应关系)。

3. 最好能将一个文件复制到 多个 mt4文件 中。

例如,通过"...... "从 mt5 文件夹接收 mt4 文件:

#import "kernel32.dll"
   bool CopyFileA(string lpExistingFileName, string lpNewFileName, bool bFailIfExists);
#import

/////////////////

CopyFileA(TerminalPath()+CharToStr(92)+"experts"+CharToStr(92)+"files"+CharToStr(92)+fSymbol+".txt",CopyTo1+fSymbol+".txt",false);

这样就可以超越 mt4 文件沙盒。

不幸的是,在 mql5 中,这种方法和类似的 MSDN 技巧都不起作用。

总的来说,我会试试看,如果没有 bug,我就暂时不自己写了。谢谢。

 
zhserg:

我做了一个简单的复制器。设置从哪里复制、复制到哪里以及复制间隔。

使用 "保存/开始 "按钮开始复制。工作期间,它会闪烁 ))).

In Translator positions.MQ5 you can change the line int han=FileOpen(subfolder+"\\\experts\\\files\\\"+folder+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,","); to int han=FileOpen(folder+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,",");也就是说,文件将被写入程序文件(Program Files\MetaTrader 5\MQL5\Files 文件夹)。

您可以使用 bootnik。它既可以通过网络,也可以在计算机内部。

@Echo off
:loop
xcopy "F:\folder\*.txt" "\\Comp1\folder" /Y /R /C /I /G /Z /D >nul
xcopy "C:\Program Files\MetaTrader 5\MQL5\Files\Translator positions.csv" "C:\Program Files\MetaTrader 4\experts\files" /Y /R /C /I /G /Z /D >nul
timeout /t 1
goto :loop

顺便说一下,对于巨型文件同步,我推荐使用 Microsoft SyncToy 2.1http://www.microsoft.com/en-us/download/details.aspx?id=15155。

SyncToy 2.1
SyncToy 2.1
  • www.microsoft.com
Note: There are multiple files available for this download. Once you click on the “Download” button, you will be prompted to select the files you need. Overview There are files from all kinds of sources that we want to store and manage. Files are created by our digital cameras, e-mail, cell phones, portable media players...
 
这篇文章已经过时了,具有高级功能的新编译器 mql4++ 即将发布,一切都会改变。
 

我认为问题出在 Metatrader 存储数据的位置上。在最新版本的 Windows 中,它不使用安装文件夹下的子文件夹。

在服务器 2008 上(以我为例),MT5 使用:
C:\Users\[用户名]\AppData\Roaming\MetaQuotes\Terminal\[长十六进制数字]\MQL5\etc...

每个终端安装都在这个位置使用自己的文件夹,并带有唯一的[长十六进制数字]。 我试过在上述文件夹路径下安装 MT4,但它也从自己唯一的数据文件夹读写,所以也不起作用。 无论如何,从这个位置执行程序可能不是一个好主意。

我怀疑 Windows 8 也存在这个问题。

目前我也不知道该怎么办,但希望这些信息对你有用。

 

我在 Windows Server 2008 上的 MT4 数据文件位置:

C:\Users\[用户名]\AppData\Local\VirtualStore\Program Files\[MT4 程序文件夹名称]

我猜操作系统正在重定向文件操作。

 

4103 -打开文件出错,这意味着 MT5 正在将交易写入某个文件,而 MT4 无法 "找到 "该文件。

出现这种情况是因为 MT5 的功能与 MT4 不同。在 MT5 中,我们安装 的文件夹与运行 的文件夹不同。例如,我将 MT5 安装在 C:\Accounts\MT5, 将 MT4 安装在 C:\Accounts\MT5\MQL\Files\MetaTrader 4。

MT5 创建了一个文件夹 C:\Users\[username]\AppData\Roaming\MetaQuotes\Terminal\[long hex number]\MQL5\etc... 实际上是从这里运行的。因此,MT5 会将交易写入此文件夹中的某处。

根据原文,MT4 应位于 MT5 文件夹 "内部"。因此,解决方案在于使 MT5安装 文件夹与运行 文件夹 "相同"。最简单的方法是

1. 卸载所有 MT5 实例

2.从 C:\Users\[username]\AppData\Roaming\ 中删除 "Metaquotes "文件夹

现在,我们将使安装文件夹与运行文件夹相同:

3.重新安装 MT5。它不应位于 Program files 文件夹中,例如应位于 C:\Accounts\MT5。安装时,取消选中 "完成后启动"(关键步骤)

4.首次运行 MT5 之前,右键单击桌面上的 MT5 快捷方式,单击属性,在路径中添加"/portable",不含引号。这样就变成了 C:\Accounts\MT5\terminal.exe /portable。(注意,terminal.exe 后面有一个空格,正斜杠,portable 不带任何大写字母)。点击确定。

现在我们将安装 MT4、复制 EA 并运行终端

5.在 C:\Accounts\MT5\MQL\Files\MetaTrader 4 下安装 MT4。(注意,文件夹名称 MetaTrader 4 或其他名称应与 EAs 中的名称相同) 6.

6.将 Translator 和 Copyist EA 复制到各自文件夹中。

7.同时运行 MT5 主站和 MT4 从站。

8.尽情享受吧

提示:如果操作不当,请勿进行下一步。

很抱歉使用了 "非技术性 "语言,这是您能从医生那里学到的最多的东西!

 
doctornasir:

4103 -打开文件出错,这意味着 MT5 正在将交易写入某个文件,而 MT4 无法 "找到 "该文件。

出现这种情况是因为 MT5 的功能与 MT4 不同。在 MT5 中,我们安装 的文件夹与运行 的文件夹不同。例如,我将 MT5 安装在 C:\Accounts\MT5, 将 MT4 安装在 C:\Accounts\MT5\MQL\Files\MetaTrader 4。

MT5 创建了一个文件夹 C:\Users\[用户名]\AppData\Roaming\MetaQuotes\Terminal\[long hex number]\MQL5\etc... 实际上是从这里运行的。因此,MT5 会将交易写入此文件夹中的某处。

根据原文,MT4 应位于 MT5 文件夹 "内部"。因此,解决方案在于使 MT5安装 文件夹与运行 文件夹 "相同"。最简单的方法是

1. 卸载所有 MT5 实例

2.从 C:\Users\[username]\AppData\Roaming\ 中删除 "Metaquotes "文件夹

现在,我们将使安装文件夹与运行文件夹相同:

3.重新安装 MT5。它不应位于 Program files 文件夹中,例如应位于 C:\Accounts\MT5。安装时,取消选中 "完成后启动"(关键步骤)

4.首次运行 MT5 之前,右键单击桌面上的 MT5 快捷方式,单击属性,在路径中添加"/portable",不含引号。这样就会变成 C:\Accounts\MT5\terminal.exe /portable。(注意,terminal.exe 后面有一个空格,正斜杠,portable 不带任何大写字母)。点击确定。

现在我们将安装 MT4、复制 EA 并运行终端

5.在 C:\Accounts\MT5\MQL\Files\MetaTrader 4 下安装 MT4。(注意,文件夹名称 MetaTrader 4 或其他名称应与 EAs 中的名称相同) 6.

6.将 Translator 和 Copyist EA 复制到各自文件夹中。

7.同时运行 MT5 主站和 MT4 从站。

8.尽情享受吧

提示:如果操作不当,请勿进行下一步。

很抱歉使用了 "非技术性 "语言,这是您能从医生那里学到的最多的东西!

谢谢你花时间写这些。

另一种方法是保留默认安装设置,并在两个文件夹之间建立符号链接。

http://en.wikipedia.org/wiki/NTFS_symbolic_link

 

mql4++ 编译器

这是 mt4 中接收器的新版本吗?