簡體   English   中英

如何在 Python 和 MQL4 之間傳輸實時數據?

[英]How to transfer live data between Python and MQL4?

蟒蛇代碼:

import zmq
import sys
   
port ="5555"
print("Connecting to hello world server…")

context = zmq.Context()
socket = context.socket(zmq.REQ)          #  Socket to talk to server
socket.connect("tcp://localhost:%s"%port)

while(1):                                 #  Do requests,
    try:                                  #     waiting each time for a response
        message = socket.recv()

        print(message)
    except:
        pass

MQL4 代碼:

#include <Zmq/Zmq.mqh>
Context context("helloworld");
Socket socket(context,ZMQ_REP);
socket.bind("tcp://*:5555");
ZmqMsg request;
ZmqMsg reply("Trade was executed");
socket.send(reply);
Print("Feedback: Trade was executed");

當我想將數據從 MQL4 發送到 Python 編程語言時發生無限循環,如上所述 Python 無法通過端口接收消息數據

“如何在python和mql4之間傳輸實時數據?”

開始使用REQ/REP可擴展的正式通信原型是相當苛刻的。 你的模型代碼忽略了這個原型的機制,沒有收到REQ端的消息(你的代碼沒有執行), REP端永遠不會進入一個狀態( REQ/REP是一個 dFSA - 一個分布式有限狀態自動機),其中.send()方法可以執行(本機 API 會報告錯誤狀態,顯示違反 dFSA 狀態規則的情況)。

使用PUSH/PULL代替,您的演示代碼不會出現問題。

MQL4 端將PUSH ,python 端將PULL

我使用它是因為 ZeroMQ v2.11 被移植為一個 DLL 以與 MQL4 一起使用,並且我所有的交易項目都非常有魅力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM