文章 "MetaTrader 5 与 Python 的集成:接收和发送数据"

 

新文章 MetaTrader 5 与 Python 的集成:接收和发送数据已发布:

全方位的数据处理需要大量工具,并且经常超出单一应用程序的功能沙箱。 专用编程语言正在用于处理和分析数据,统计和机器学习。 Python 是数据处理的主要编程语言之一。 本文介绍如何使用套接字连接 MetaTrader 5 和 Python,以及如何通过终端 API 接收报价。

我们将编写一个简单的程序,它创建一个套接字服务器,并从客户端(MQL5 程序)接收必要的信息,处理它并发回结果。 这似乎是最有效的交互方法。 假设我们需要使用机器学习函数库,例如 scikit learn,它将计算价格的线性回归并返回坐标,根据这些坐标可以在 MetaTrader 5 终端中绘制一条线。 这是基本的示例。 然而,这种交互也可以用于训练神经网络,用于从终端发送数据(报价),学习并将结果返回给终端。

现在我们可以继续创建一个负责处理套接字操作的类:

class socketserver:
    def __init__(self, address = '', port = 9090):
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.address = address
        self.port = port
        self.sock.bind((self.address, self.port))
        self.cummdata = ''
        
    def recvmsg(self):
        self.sock.listen(1)
        self.conn, self.addr = self.sock.accept()
        print('connected to', self.addr)
        self.cummdata = ''

        while True:
            data = self.conn.recv(10000)
            self.cummdata+=data.decode("utf-8")
            if not data:
                break    
            self.conn.send(bytes(calcregr(self.cummdata), "utf-8"))
            return self.cummdata
            
    def __del__(self):
        self.sock.close()

作者:Maxim Dmitrievsky

 
谢谢。太遗憾了,没有选角。
 
fxsaber:
谢谢。太糟糕了,没有铸造。

我会做的--我肯定会在这里上传一个示例,只是我之前没有这样的任务。

另外,如果套接字能在测试器中得到开发,那就非常有意义了。

 
有用。刚开始学习 Python)
 

对于历史,MQL5 中有一个大型标准数学库,就在终端的源代码中:

 

我总是很乐意阅读@Maxim Dmitrievsky 的文章,我喜欢他写文章的方式--简明扼要地描述想法本身的实现,我不喜欢最近 "长达一公里 "的代码,也不喜欢把每一行都写成 "现在我们将命名变量 XY,我们将在其中存储......"。

谢谢!

 
Igor Makanu:

我总是很高兴地阅读@Maxim Dmitrievsky 的文章,我喜欢他写文章的方法--简明扼要地描述想法的实现,我不喜欢最近 "长达数公里 "的代码,也不喜欢把每一行都写成 "现在我们将命名变量 XY,我们将在其中存储......"。

谢谢!

因此,读者是有差异的,既有资深读者,也有初学者。
 
Alexander Fedosov:
因此,读者有很多种,既有经验丰富的读者,也有初学者。

好吧,好像你是对的,但也不是很对--人的注意力是非常有限的资源,即使是经验丰富的读者,要想深入文章的精髓,也必须 "对角线 "阅读,否则到文章结束时根本无法消化材料。

如果我没记错的话,一个人只能在最初的 15 分钟内消化新材料,然后注意力就会下降,新知识的效果就会失效--正如人们常说的 "少而精"。

当然,也可以把一篇大文章的阅读时间拉长,比如连续几天阅读一本杂志或一本书,但这不是我的选择

 

socketclientEA (Si-6.19,M15) 连接 localhost:9090 错误 4014

https://www.mql5.com/zh/docs/network/socketconnect

从指示器调用GetLastError() 时, 将返回 错误 4014 - "不允许调用系统函数"。

解决办法:

应将连接地址添加到客户端允许的地址列表中(Tools \ Settings \ Expert Advisors 部分)。

允许以下网址的 Webrequest:

http://localhost

 
MetaQuotes Software Corp.:

新文章MetaTrader 5 与 Python 集成:接收和发送数据

作者: Maxim Dmitrievsky马克西姆-德米特里耶夫斯基

最后谢谢你... :)

请发布更多...更多...我喜欢
 
MT5终于和python对接了