記事"MetaTrader5 と Python インテグレーション: データの受信と送信"についてのディスカッション

 

新しい記事 MetaTrader5 と Python インテグレーション: データの受信と送信 はパブリッシュされました:

包括的なデータ処理には広範なツールが必要であり、多くの場合、1つのアプリケーションのサンドボックスの範疇を超えています。 専門のプログラミング言語は、データ、統計、機械学習の処理と分析に使用されます。 データ処理の主要なプログラミング言語の1つは Python です。 この記事では、ソケットを使用して MetaTrader5 と Python を接続する方法、およびターミナル API を介してクオートを受け取る方法について説明します。

ソケットサーバーを作成し、クライアント (MQL5 プログラム) から必要な情報を受け取り、処理し、結果を返送する簡単なプログラムを作成します。 これは最も効率的なインタラクションメソッドです。 たとえば、scikit learn のような機械学習ライブラリを使用して、MetaTrader5 ターミナルで線を描画できる価格とリターン座標を使用して線形回帰を計算する必要があるとします。 これはあくまで基本的な例です。 しかし、このような相互作用は、ニューラルネットワークのトレーニング、ターミナルからの it データへの送信 (クオート)、結果の学習とターミナルへの復帰などにも利用できます。

これで、ソケット操作を担当するクラスの作成に進むことができます。

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

理由: