我仔细地按照您的指导进行了操作,但无法在 Matlab 2007b 中运行。当我尝试在 MT5 终端上使用您预置的示例时,不断出现这些错误。
2010.08.29 10:33:30 TestMLEngine (EURUSD,H1) Cannot open 'C:\Users\QuantFX\AppData\Roaming\MetaQuotes\Terminal\216E2BD2BB8CE60176A41ADF6AC1C76D\MQL5Libraries\LibMlEngine.dll' (126)
2010.08.29 10:33:47 TestDllMatlab (EURUSD,H1) Cannot open 'C:\Users\QuantFXAppData\Roaming\MetaQuotes\Terminal\216E2BD2BB8CE60176A41ADF6AC1C76D\MQL5\Libraries\nnSMA.dll' (126)
我真的不知道该怎么想,因为我可以得到"如何交换数据 " 一文中提到的项目: 在https://www.mql5.com/en/articles/18 上找到的 "如何在 10 分钟内交换数据:用于 MQL5 的 DLL "一文中 提到的项目。
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) Access violation write to 0x00000000 in 'C:\Users\QuantFX\AppData\Roaming\MetaQuotes\Terminal\216E2BD2BB8CE60176A41ADF6AC1C76D\MQL5\Libraries\MQL5DLLSamples.dll'.
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) Replace:快棕猫跳过懒惰的狗
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) Array:0 1 2 3 4 5 6 7 8 9
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) Time 297 msec, int: -752584127 double: 17247836076609
因此,终端显然不存在违规访问 \Libraries 文件夹的问题,而且我确定智能交易系统的 "选项 "允许 dll 导入和自动交易......如果能提供任何帮助,我将不胜感激,因为自从第一次阅读这篇文章以来,我一直对此感到困惑。不胜感激
- 2010.01.27
- MetaQuotes Software Corp.
- www.mql5.com
终于成功了......不得不说,这篇文章写得很好。 我对 Visual Studio 的使用经验并不丰富,而且是 metatrader 编程方面的新手。 因此,这似乎是一个挑战,因为我收到了很多错误。 不过,从长远来看,这对所有版本的 matlab 和 visual studio 都非常简单。如果您从未使用过 matlab 引擎或 metatrader 外部库,我建议任何初次尝试将 Metatrader 和 Matlab 连接在一起的人执行以下操作,以获得深入了解。 1.创建 matlab 自带的项目,该项目位于 matlabroot\externs\examples\eng_mat\engwindemo.http://www.mathworks.com/support/solutions/en/data/1-78077S/index.html?product=ML&solution=1-78077S 编译该项目,如果遇到问题(如缺少 dll 文件),请使用依赖性跟踪器(dependency walker),可在此处找到http://www.dependencywalker. 请注意,您可能最终不得不在系统 32文件夹 中放置大量文件,或者不知道在项目中链接这些文件的正确位置。虽然大多数 dll 文件都可以在 matlabroot\bin\win(32 或 64) 文件夹中找到,但在您放入所需的前几个 dll 文件后,请返回并再次尝试构建您的项目。你可能会发现,你并不需要做依赖性漫步者建议的所有事情。如果你能编译并运行项目,那么你就差不多完成了...... 2. 构建文章《如何交换数据》中建议的项目:如果你能运行该项目,那么请记住,在创建上述项目时,你要将两者结合起来。 记住你所遵循的所有步骤,当你准备编译该项目时,请确保 "stdafx.在编译前,确保 "stdafx.我在这里补充的两分钱可能听起来像这个项目的傻瓜指南,但如果你需要用另一个版本的 matlab 或使用 visual studio 来构建这个项目,做这些事情可能会节省你几个小时的业余时间。
干杯
如果我没记错的话,表 1 中 Matlab 矩阵的类型是不正确的。缺少了字母u。例如,uint16 类型负责 0 到 65535 的范围,而不是int16 类型。等等...
类别 | 数值范围 | 转换功能 |
---|---|---|
有符号 8 位整数 | -27 至27-1 | int8 |
有符号 16 位整数 | -215 至215-1 | int16 |
有符号 32 位整数 | -231 至231-1 | int32 |
有符号 64 位整数 | -263 至263-1 | int64 |
无符号 8 位整数 | 0 至28-1 | uint8 |
无符号 16 位整数 | 0 至216-1 | uint16 |
无符号 32 位整数 | 0 至232-1 | uint32 |
无符号 64 位整数 | 0 至264-1 | uint64 |
下午好,感谢您的精彩文章,非常有帮助!
不过,现在出现了一个问题。也许有人遇到过。
关闭智能交易系统时,MT5 会完全挂起。我使用的是 MSVisual Studio 2010+ Matlab r2011a。
您认为原因何在?在此先表示感谢!
下午好,我按照文章中的方法做了所有事情,但是在运行 TestMlEngine 脚本时,弹出了一个错误:
2011.12.17 15:55:23 TestMLEngine(EURUSD,H1) Cannot open 'C:\Users\_HF_M\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5Libraries\LibMlEngine.dll' (126)
然后立即执行:
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxGetSizeOfName' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxGetLogical' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxGetInt' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxGetDouble' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxInputLogical' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxInputInt' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxInputDouble' in 'LibMlEngine.dll'
2011.12.2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 无法在'LibMlEngine.dll'中找到'mlxInputChar'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 无法在'LibMlEngine.dll'中找到'mlxOpen'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 无法在'LibMlEngine.dll'中找到'mlxClose'。
在论坛的某个地方,我发现这是由于丢失了 dlls,在 depends.exe 的帮助下,我找到了丢失的 dlls,并将其放入相同的文件夹中,这有所帮助,但还不够:
2011.12.17 15:57:59 TestMLEngine (EURUSD,H1) Cannot open 'C:\Users\_HF_M\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5Libraries\LibMlEngine.dll' (127).
而 "找不到...... "的提示音还在继续。你能告诉我问题出在哪里吗?我已经纠结了一个星期了...
是的,我的系统是 Win7 + Matlab R2011a + VS201。
。
下午好,我按照文章中的方法做了所有事情,但是在运行 TestMlEngine 脚本时,弹出了一个错误:
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot open 'C:\Users\_HF_M\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5Libraries\LibMlEngine.dll' (126)
然后立即执行:
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxGetSizeOfName' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxGetLogical' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxGetInt' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxGetDouble' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxInputLogical' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxInputInt' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxInputDouble' in 'LibMlEngine.dll'
2011.12.2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 无法在'LibMlEngine.dll'中找到'mlxInputChar'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 无法在'LibMlEngine.dll'中找到'mlxOpen'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 无法在'LibMlEngine.dll'中找到'mlxClose'。
我在论坛上的某个地方发现,这是由于丢失了 dlls,在 depends.exe 的帮助下,我找到了丢失的 dlls,我把它放到了同一个文件夹中,它起了作用,但还不够。 现在它显示出来了:
2011.12.17 15:57:59 TestMLEngine (EURUSD,H1) Cannot open 'C:\Users\_HF_M\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5Libraries\LibMlEngine.dll' (127).
而 "找不到...... "的提示音还在继续。你能告诉我问题出在哪里吗?我已经纠结了一个星期了...
是的,我的系统是 Win7 + Matlab R2011a + VS201。
安装 Matlab 时,系统路径只有 "C:\Program Files\MATLAB\R2011b\bin" 。我添加了 "C:\Program Files\MATLAB\R2011b\bin\win32".Matlab 目录中的 Dlls 变得可见了,Matlab 引擎也启动了。在此之前,我写道我看不到 dlls。
总之,请提供帮助,因为我不懂一些东西....。
为了实验的纯粹性,我安装了 VMware,在其中安装了两个系统--XP 和 7。
然后安装了 Matlab R2011b,安装了 MCR,安装了 MT5 的最新版本。从文章所附的存档中,我按照存档中的说明将所有文件分散到各个文件夹中。我将 mq5 文件编译成了 ex5 文件(即删除压缩包中现有的 ex5 文件,将新编译的文件放在原处)。我启动 MT5,然后启动 Matlab(我试过不启动 Matlab,结果还是一样),在终端点击 TestMlEngine,结果显示
TestMLEngine (EURUSD,H1) 13:44:58 Cannot open 'C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5Libraries\LibMlEngine.dll' (126)
TestMLEngine (EURUSD,H1) 13:44:58 Cannot find 'mlxClose' in 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 无法在'LibMlEngine.dll'中找到'mlxOpen'
TestMLEngine (EURUSD,H1) 13:44:58 无法在'LibMlEngine.dll'中找到'mlxInputChar'
TestMLEngine (EURUSD,H1) 13:44:58 无法在'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 无法在'LibMlEngine.dll'中找到'mlxInputInt'
TestMLEngine (EURUSD,H1) 13:44:58 无法在'LibMlEngine.dll'中找到'mlxInputLogical'
TestMLEngine (EURUSD,H1) 13:44:58 无法在'LibMlEngine.dll'中找到'mlxGetDouble'。dll'
TestMLEngine (EURUSD,H1) 13:44:58 无法在'LibMlEngine.dll'中找到'mlxGetInt'
TestMLEngine (EURUSD,H1) 13:44:58 无法在'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 无法在 'LibMlEngine.dll' 中找到 'mlxGetSizeOfName'。
我不知道该怎么办。我试了所有能试的方法。我尝试了文章 "如何在 10 分钟内为 MQL5编写 DLL 库 并交换数据?(https://www.mql5.com/ru/articles/18)- 它可以正常工作。
有谁能告诉我还有什么其他方法?我做错了什么?
谢谢。

- 2010.01.27
- MetaQuotes Software Corp.
- www.mql5.com
当我安装 Matlab 时,系统路径只有 "C:C:\Program Files\MATLAB\R2011b\bin" 。我添加了 "C:\Program Files\MATLAB\R2011b\bin\win32" 。Matlab 目录中的 Dlls 变得可见了,Matlab 引擎也启动了。在此之前,我写的是我看不到 dlls。
如果你指的是路径环境变量,我在其中添加了 "C:\Program Files\MATLAB\R2011b\bin\win32" ,但情况并没有改变 :-(
新文章 MetaTrader 5 和 MATLAB 交互已发布:
本文将详细介绍 MetaTrader 5 和 MatLab 数学包之间的交互。文中说明了数据转换机制,以及开发通用库以与 MatLab 交互的过程。文章还介绍了对 MatLab 环境生成的 DLL 的使用。本文面向掌握了 C++ 和 MQL5 的经验丰富的读者。
作者:Andrey Emelyanov