文章 "MetaTrader 5 与 Python 的集成:接收和发送数据" - 页 11 1...4567891011 新评论 atemosfair 2024.03.06 11:36 #101 谢谢你,兄弟。这篇文章太棒了。你帮了我大忙。 Too Chee Ng 2024.12.18 11:39 #102 只是想知道为什么我们需要在 OnTick() 中不断调用 socket=SocketCreate() 和 SocketClose()? 它不能保持套接字打开/激活吗?或者说,是否有可能保持套接字打开/激活? Alex FXPIP 2025.02.14 10:21 #103 Ernesto Che 发送数据 请求,以绘制 纤维和通道。在您的示例中,Python 返回两个值,但我必须返回多达 12 个不同结构的数据,每个结构有三个坐标点。 一开始,我被 mt5 不能一次性返回描述所有结构的长字符串这一事实所困扰。我通过几次较短的查询进行了交换。一切似乎都能正常工作,但时不时会出现问题。 直觉告诉我这与超时设置有关。能否请您提供一个解决方案? 非常感谢 你好!我也在安装一个插座。我有一个问题--我用 python 编写了一个指标。它可以从 mt5 获取大量数据,而且要多少有多少,但要将数据返回给 mt5 就不那么容易了。在套接字上可以只传输一个字符串,最多可以传输 100 个小字符串,但我需要更多。除了套接字,还有什么其他解决方案? 除了在 Python->MT5 之间进行数据交换的网络/互联网请求,还有什么其他解决方案? 我不想为此使用 MySQL 数据库。我们讨论的是将大约 40 种货币对从 Python 传输到 MT5,其中包含 1000 个重新计算的历史读数,并在 MT5 中进一步构建指标线......我想摆脱 MT5 中的计算,因为 Python 的计算速度更快。因此,我希望看到指标的所有行,而不仅仅是每秒一次通过字符串传输的最后一个条形图。 有人能给我一些有用的建议吗? TCP/IP Socket - MT5 将接收一个字符串,但无论如何都无法容纳 30 000 个数据....。即使是 jason 格式,一个字符串变量也最多只能容纳 100 个字符串。这样一个 Socket 有什么用呢? 原来,对于大数据来说,Python-->MySQL-->MT5 是一条出路 我也想到了这个主意: 使用 Python 中的 multiprocessing.shared_memory 和 MQL5 中的 WinAPI 可以直接从内存中读取数据。 Maxim Kuznetsov 2025.02.14 10:52 #104 Alex Renko #: 除了在 Python->MT5 之间进行数据交换的网络/互联网请求者之外?我不想调用 MySQL DB。 "调用 SQLite"--MT5 已内置SQLite,Python 显然也有SQLite....。 您可以使用套接字及时报告所需的信息(信号、警报等),并将大数据存入 SQLite。也就是说,在 python 中,您可以将所需的一切输入数据库,然后在 "数据更新 "套接字上吹哨。而在 MQL 中,您可以根据哨声重新读取数据库。 数据库本身可以存储在框架光盘上 Alex FXPIP 2025.02.18 03:19 #105 Maxim Kuznetsov #:"调用 SQLite"--MT5 已内置SQLite,Python 显然也有。您可以使用套接字及时报告所需的信息(信号、警报等),并将大数据存入 SQLite。也就是说,在 python 中,您可以将所需的一切输入数据库,然后在 "数据更新 "套接字上吹哨。而在 MQL 中,您可以通过哨声重读数据库数据库本身可以存储在框架光盘上 我明白您的意思了,谢谢您的回答...我想也是 MetaTrader 5 使用自己的编程语言MQL5,它在一个独立进程中运行。这就不允许与操作系统的共享内存直接交互,而其他使用低级 API 的应用程序则可以做到这一点。 壳中壳....20 年来,他们一直无法为 Mac 制作原生版本...... Maxim Kuznetsov 2025.02.18 04:50 #106 Alex Renko #:我明白您的意思,谢谢您的回复....我也这么认为 MetaTrader 5 使用自己的编程语言MQL5,它在一个独立进程中运行。这就不允许与操作系统的共享内存直接交互,而其他使用底层 API 的应用程序则可以做到这一点。 壳中壳....20 年来,他们一直无法为 Mac 制作原生版本...... 没有人禁止使用 DLL,在那里你可以随心所欲。 你可以直接搜索内存(可能不会更快 :-) )。 或者高效的中间解决方案,比如内存键值数据库。 只是在大多数情况下,刹车和瓶颈都在 Python 一方 Stefano Cerbioni 2025.10.09 08:42 #107 我设置了 127.0.0.1:9090 选项,运行python socketserver.py,运行 EA socketclientEA.ex5(将 char 改为 uchar 后),但重新运行时出现了错误。 2025.10.09 10:41:44.665 socketclientEA (#GDAXIm,H1) 连接 localhost:9090 错误 4014 1...4567891011 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
只是想知道为什么我们需要在 OnTick() 中不断调用 socket=SocketCreate() 和 SocketClose()?
它不能保持套接字打开/激活吗?或者说,是否有可能保持套接字打开/激活?
你好!我也在安装一个插座。我有一个问题--我用 python 编写了一个指标。它可以从 mt5 获取大量数据,而且要多少有多少,但要将数据返回给 mt5 就不那么容易了。在套接字上可以只传输一个字符串,最多可以传输 100 个小字符串,但我需要更多。除了套接字,还有什么其他解决方案? 除了在 Python->MT5 之间进行数据交换的网络/互联网请求,还有什么其他解决方案? 我不想为此使用 MySQL 数据库。我们讨论的是将大约 40 种货币对从 Python 传输到 MT5,其中包含 1000 个重新计算的历史读数,并在 MT5 中进一步构建指标线......我想摆脱 MT5 中的计算,因为 Python 的计算速度更快。因此,我希望看到指标的所有行,而不仅仅是每秒一次通过字符串传输的最后一个条形图。
使用 Python 中的 multiprocessing.shared_memory 和 MQL5 中的 WinAPI 可以直接从内存中读取数据。有人能给我一些有用的建议吗?
TCP/IP Socket - MT5 将接收一个字符串,但无论如何都无法容纳 30 000 个数据....。即使是 jason 格式,一个字符串变量也最多只能容纳 100 个字符串。这样一个 Socket 有什么用呢?
原来,对于大数据来说,Python-->MySQL-->MT5 是一条出路
我也想到了这个主意:
除了在 Python->MT5 之间进行数据交换的网络/互联网请求者之外?我不想调用 MySQL DB。
"调用 SQLite"--MT5 已内置SQLite,Python 显然也有SQLite....。
您可以使用套接字及时报告所需的信息(信号、警报等),并将大数据存入 SQLite。也就是说,在 python 中,您可以将所需的一切输入数据库,然后在 "数据更新 "套接字上吹哨。而在 MQL 中,您可以根据哨声重新读取数据库。
数据库本身可以存储在框架光盘上
"调用 SQLite"--MT5 已内置SQLite,Python 显然也有。
您可以使用套接字及时报告所需的信息(信号、警报等),并将大数据存入 SQLite。也就是说,在 python 中,您可以将所需的一切输入数据库,然后在 "数据更新 "套接字上吹哨。而在 MQL 中,您可以通过哨声重读数据库
数据库本身可以存储在框架光盘上
我明白您的意思了,谢谢您的回答...我想也是
MetaTrader 5 使用自己的编程语言MQL5,它在一个独立进程中运行。这就不允许与操作系统的共享内存直接交互,而其他使用低级 API 的应用程序则可以做到这一点。
壳中壳....20 年来,他们一直无法为 Mac 制作原生版本......
我明白您的意思,谢谢您的回复....我也这么认为
MetaTrader 5 使用自己的编程语言MQL5,它在一个独立进程中运行。这就不允许与操作系统的共享内存直接交互,而其他使用底层 API 的应用程序则可以做到这一点。
壳中壳....20 年来,他们一直无法为 Mac 制作原生版本......
没有人禁止使用 DLL,在那里你可以随心所欲。
你可以直接搜索内存(可能不会更快 :-) )。
或者高效的中间解决方案,比如内存键值数据库。
只是在大多数情况下,刹车和瓶颈都在 Python 一方