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

 

使用您的方法从 mt4 复制到 mt5 再复制回来

工作正常 - 只有 mt5 -> mt4 有延迟。

因为那里没有计数器。但总的来说运行正常。


对于 W7 / Vista,终端应放在 MetaQuotes\Terminal\ 的常用文件夹中。

这有点令人沮丧。但我想写一个简单的程序(不是 mql)

周期为 1 秒--它可以将文件 从文件夹

mt4 文件夹中的文件复制到 mt5 文件夹中,如果有的话再复制回来。以便不接触终端

 
在使用 Win7 时,我自己也厌倦了编写脚本,这里每个人都说已经讨论过了,好像一切都已经清楚该如何编写 - 但没办法,我并不像 "某些人 "那样是 MQ5 的程序员,我只是一个 LAMER,一个傻瓜。(我写这篇文章时没有任何想法,也不想冒犯任何人)。简而言之,所有像我一样在坦克里的人:您需要设置公共 MT5 文件夹的权限,在那里会有一个 Files 文件夹,虽然不可见,但它在那里))))),我们在那里安装一个新的 MT4 终端。安装完成后,MT4 中的脚本就不会再出错了,一切都会恢复正常。非常感谢脚本的作者,现在很少有人愿意无偿分享任何东西,每个人都想互相干,请原谅我的说法,但你知道是怎么回事。
 
谢谢你的好东西
非常大的要求,只对具有特定魔法编号的订单添加工作。
 
Im_hungry:

使用您的方法从 mt4 复制到 mt5 再复制回来

工作正常 - 只有 mt5 -> mt4 有延迟。

因为那里没有计数器。但总的来说运行正常。


对于 W7 / Vista,终端应放在 MetaQuotes\Terminal\ 的常用文件夹中。

这有点令人沮丧。但我想写一个简单的程序(不是 mql)

周期为 1 秒--它可以将文件 从文件夹

mt4 文件夹中的文件复制到 mt5 文件夹中,如果有的话再复制回来。以便不接触终端

下午好。
如何实现从 MT4 到 MT5 的转换?
我对 mql 有初步了解。
能否请您提供一个现成的解决方案?
我需要 MT5 从 MT4 复制开仓和平仓交易。
谢谢。
 

我在编译时收到这些警告。当然,它们只是警告而不是错误。

编译 'Copyist_positions.mq4'...
'cmd' - comparison expression expected C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (120, 46)
'cmd' - comparison expression expected C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (122, 46)
0 错误,2 警告

以上指的是这两行代码:

//--- 打开价格
double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol)));}
//--- 关闭价格
double price_close(string symbol,int cmd){if(cmd%2)return(ask(symbol));else return(nd(symbol,bid(symbol));}

我认为 "if(cmd%2) "应改为 "if(cmd<2)"。但我不确定。

在 MT4 中运行上述脚本时,我遇到了以下错误

2013.02.26 06:16:38 Copyist_positions EURUSDm,H1: Error opening file 4103
2013.02.26 06:16:38 Copyist_positions EURUSDm,H1:ArrayInitialize 函数 内部错误

以下是我用来安装 Metatrader 4 和运行脚本的路径:

C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts

看起来有几个人遇到了同样的问题。如果能帮助我们解决这些问题,或者提供一个新的干净版本的文件,我们将不胜感激。

Documentation on MQL5: Array Functions / ArrayInitialize
  • www.mql5.com
Array Functions / ArrayInitialize - Documentation on MQL5
 
Jeysun:

我在编译时收到这些警告。当然,它们只是警告而不是错误。

编译 'Copyist_positions.mq4'...
'cmd' - comparison expression expected C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (120, 46)
'cmd' - comparison expression expected C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (122, 46)
0 错误,2 警告

以上指的是这两行代码:

//--- 打开价格
double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol)));}
//--- 关闭价格
double price_close(string symbol,int cmd){if(cmd%2)return(ask(symbol));else return(nd(symbol,bid(symbol));}

我认为 "if(cmd%2) "应改为 "if(cmd<2)"。但我不确定。

我认为代码是正确的,虽然可读性不高,有人可能会说可怕,但却是正确的。 我假定CMD 是订单/操作类型 OP_BUY 为 0 OP_SELL 为 1,因此 OP_BUY%2 = 0 OP_SELL%2 = 1,0 和 1 相当于 false 和 true。因此,(cmd%2) 对于 OP_SELL 为真,OP_SELL 的开盘价为 Bid,收盘价 为 Ask。
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
Jeysun:

下面是我用来安装 Metatrader 4 和运行脚本的路径:

C:/Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts

看起来有几个人遇到了同样的问题。如果能帮助解决这些问题或提供新的干净版本的文件,我们将不胜感激。

也许是 UAC 问题,请尝试安装到 Program Files 以外的文件夹,例如 C:\MT4Installs\C
 

RaptorUK:
也许是 UAC 问题,请尝试安装到 Program Files 以外的文件夹,例如 C:\MT4Installs\

感谢您的解释和建议。

我尝试将 Metatrader 5 安装到 "C:\MetaTrader 5 (2)\",将 Metatrader 4 安装到 "C:\MetaTrader 5 (2)\MQL5\Files\MT4\",但在运行 "copyist positions "脚本时仍然出现同样的错误。 我的操作系统是 Windows 8。

我想可能是 "Translator positions "文件在做什么,因为它似乎没有写入一个文件供 "copyist positions "读取。我可能需要学习一点 mql5 才能理解它。copyist_positions" 脚本似乎更适合作为 EA 而不是脚本。我有一个 MT4 到 MT4 的交易复制器,效果很好。我很难找到一个 MT5 到 MT4 的交易复制器。

 
非常感谢你提供的代码,非常有用。
 
Im_hungry:

但我想写一个简单的程序(不是 mql)

周期为 1 秒,可将文件 从文件夹

mt4 文件夹中的文件复制到 mt5 文件夹,如果有的话,再复制回来。为了不接触终端

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

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

在 Translator positions.MQ5 中,您可以将 int han=FileOpen(subfolder+"\\experts\\files\"+folder+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,","); 这一行改为 int han=FileOpen(folder+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,",");也就是说,文件将被写入程序文件(Program Files\MetaTrader 5\MQL5\Files 文件夹)。

附加的文件:
CopyFile.zip  168 kb