how to bind zeromq (libzmq.dylib) with mql 5 on macOS

how to bind zeromq (libzmq.dylib) with mql 5 on macOS

Manage alerts

Loading saved threads...

yoonamain · External communityPost link
External question — Stack Overflow Stack Exchange Author: yoonamain Original post: https://stackoverflow.com/questions/78656723 License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/ Adaptation: HTML converted to plain text; contact email addresses removed. I am trying to write a trading bot using C++ in vscode which will be connected to metatrader 5 via binding (zeromq) on macOS. But after I installed brew install zeromq and also moved the zmq.h to : " /Users/kiro/Library/Application Support/net.metaquotes.wine.metatrader5/drive_c/Program Files/MetaTrader 5/MQL5/Include/include " and file libzmq.dylib to : "/Users/kiro/Library/Application Support/net.metaquotes.wine.metatrader5/drive_c/Program Files/MetaTrader 5/MQL5/Libraries" I am unable to bind the server, can someone help me? For now I only use the example code to try to connect to the server via binding. When I compile this code, there is no error. But when I drag the script in Metatrader 5 to the chart I get those errors: ''' #import "libzmq.dylib" int zmq_ctx_new(); int zmq_socket(int context, int type); int zmq_bind(int socket, string endpoint); int zmq_recv(int socket, uchar &data[], int len, int flags); int zmq_send(int socket, uchar &data[], int len, int flags); int zmq_close(int socket); int zmq_ctx_term(int context); #import void OnStart() { int context = zmq_ctx_new(); int socket = zmq_socket(context, 4); // ZMQ_REP zmq_bind(socket, "tcp://*:5555"); uchar data[]; ArrayResize(data, 256); while (true) { zmq_recv(socket, data, 256, 0); Print("Received request: ", CharArrayToString(data)); string reply = "World"; uchar replyData[]; StringToCharArray(reply, replyData); zmq_send(socket, replyData, StringLen(reply), 0); } zmq_close(socket); zmq_ctx_term(context); } ''' When I compile it, there is no error. But when I drag the script on chart I get those errors: 2024.06.22 18:18:35.410 mql5 ( EURUSD ,M15) cannot load 'C:\Program Files\MetaTrader 5\MQL5\Libraries\libzmq.dylib' [193] 2024.06.22 18:18:35.413 mql5 (EURUSD,M15) cannot call 'zmq_ctx_new', 'libzmq.dylib' is not loaded 2024.06.22 18:18:35.413 mql5 (EURUSD,M15) unresolved import function call on other hand code in c++ in vscode looks like this '''' #include <zmqpp.hpp> #include <iostream> #include <string> int main() { try { zmqpp::context context; zmqpp::socket socket(context, zmqpp::socket_type::req); std::cout << "Connecting to server..." << std::endl; socket.connect("tcp://localhost:5555"); std::string request = "Hello, MT5"; zmqpp::message message; message << request; std::cout << "Sending message: " << request << std::endl; socket.send(message); zmqpp::message reply; std::cout << "Waiting for reply..." << std::endl; socket.receive(reply); std::string reply_str; reply >> reply_str; std::cout << "Received: " << reply_str << std::endl; } catch (const zmqpp::exception& e) { std::cerr << "ZeroMQ Exception: " << e.what() << std::endl; } catch (const std::exception& e) { std::cerr << "Standard Exception: " << e.what() << std::endl; } catch (...) { std::cerr << "Unknown Exception" << std::endl; } return 0; } '''' and after building the code control + shift +b and ./main in the terminal I get this: Connecting to server... Sending message: Hello, MT5 Waiting for reply... I
Quote
Report

Post Reply

Checking account access…