文章 "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

 
MT5终于和python对接了
 
Bohao Zhang:
MT5终于和python对接了

并非 MT5 原生支持 Python。

我的理解是用这两种语言分别开发服务器和客户端,然后基于网络协议通信。

这样的话其实用 Python 也好,C/C++/C#/Java 啥的,没区别。

 
运行报错:errer 4014是什么原因~
 
chenjianzhe:
运行报错:errer 4014是什么原因~

Hi, sockets don't work in tester at this time. Also, you mus add localhost to allowed webrequests in mt5 settings


 
运行报错 RuntimeError: No IPC connection
 
Maxim Dmitrievsky #:

Hi, sockets don't work in tester at this time. Also, you mus add localhost to allowed webrequests in mt5 settings



after i add the localhost,it still remind me the error'4014'

原因: