記事"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

 
ありがとう。残念だが、キャスティングはない。
 
fxsaber:
ありがとう。キャスティングがないのは残念だ。

必ずここに例をアップロードするつもりですが、以前はそのような作業がなかったので。

また、もしソケットがテスターで開発されるのであれば、それはとても重要なことです。

 
便利です。パイソンを始めたばかり)
 

歴史を振り返ると、MQL5には大規模な標準数学ライブラリがターミナル内のソースにある:

 

マキシム・ドミトリエフスキー 氏の記事はいつも楽しく読ませてもらっています。私は彼の記事の書き方が好きで、アイデアの実装そのものが簡潔に記述されています。

ありがとう!

 
Igor Makanu:

マキシム・ドミトリエフスキー 氏の記事はいつも楽しく読ませてもらっている。私は彼の記事の書き方が好きで、アイデアの実装が簡潔に記述されている。

ありがとう!

洗練された読者も、初心者の読者もいる。
 
Alexander Fedosov:
だから、経験豊富な読者と初心者の読者の両方、さまざまな種類があります。

人間の注意力は非常に限られた資源であり、経験豊富な読者でも記事の本質を理解するためには「斜め読み」をしなければならない。

私が間違っていなければ、人が新しい情報を消化できるのは最初の15分間だけで、その後は注意力が低下し、新しい知識の効果はなくなってしまう。

もちろん、雑誌や本を読むように、大きな記事を数日間かけて読むことは可能だが、これは私の選択肢ではない。

 

socketclientEA (Si-6.19,M15) 接続 localhost:9090 エラー 4014

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

インジケータから呼び出されると、GetLastError() はエラー 4014 - "System function not allowed to be called" 返します

解決方法

クライアント端末側で、接続先アドレスを許可リストに追加してください。

以下のURLのWebrequestを許可する:

http://localhost

 
MetaQuotes Software Corp.:

新しい記事MetaTrader 5とPythonの統合:データの受信と送信 が掲載されました:

著者マキシム・ドミトリエフスキー

ありがとうございます。)

もっと投稿してください。もっともっと。大好きだ...
 
MT5がついにpythonとインターフェース!