如何在Python和MQL4之间传输实时数据



Python代码:

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无法通过端口接收消息数据

Q"如何在python和mql4之间传输实时数据">

开始使用REQ/REP可扩展的正式通信原型要求很高。您的实体模型代码忽略了这个原型的机制,因为没有收到REQ侧消息(您的代码不执行该消息(,REP端将永远不会进入状态(REQ/REP是一个dFSA-分布式有限状态自动机(,其中.send()-方法可以执行(本地API将报告错误状态,显示违反dFSA状态规则的情况(。

使用PUSH/PULL,您的演示代码就不会出现问题。

MQL4端将PUSH,python端将PULL

自从ZeroMQ v2.11被移植为与MQL4一起使用的DLL以来,我一直在使用它,我所有的分布式计算交易项目都很有魅力。

最新更新