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

2024-05-19 10:23:47 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: to代码importmessageserverportcontextsocket
1条回答
网友
1楼 · 发布于 2024-05-19 10:23:47

Q : "How to transfer live data between python and mql4?"

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

改用PUSH/PULL,您的演示代码将不会出现问题

MQL4端将PUSH,python端将PULL

我之所以使用它,是因为ZeroMQ v2.11被移植为一个DLL,用于MQL4,并且我所有的交易项目都可以正常工作

相关问题 更多 >

    热门问题