#property version "1.00"#property strict
// 调用ZERO-MQ库: MQL-ZMQ from https://github.com/dingmaotu/mql-zmq#include // 设置ZERO-MQ参数extern string PROJECT_NAME = "DWX_ZeroMQ_Example";
extern string ZEROMQ_PROTOCOL = "tcp";
extern string HOSTNAME = "*";
extern int REP_PORT = 5555;
extern int PUSH_PORT = 5556;
extern int MILLISECOND_TIMER = 1; // 1 millisecond// 设置交易输入的参数extern string t0 = "--- Trading Parameters ---";
extern int MagicNumber = 123456;
extern int MaximumOrders = 1;
// 交易时的手数,这里是0.01手,即1000美金extern double MaximumLotSize = 0.01;
// CREATE ZeroMQ ContextContext context(PROJECT_NAME);
// CREATE ZMQ_REP SOCKETSocket repSocket(context,ZMQ_REP);
// CREATE ZMQ_PUSH SOCKETSocket pushSocket(context,ZMQ_PUSH);
// VARIABLES FOR LATERuchar data[];
ZmqMsg request;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit()
{
//---
EventSetMillisecondTimer(MILLISECOND_TIMER); // Set Millisecond Timer to get client socket input
Print("[REP] Binding MT4 Server to Socket on Port " + REP_PORT + "..");
Print("[PUSH] Binding MT4 Server to Socket on Port " + PUSH_PORT + "..");
repSocket.bind(StringFormat("%s://%s:%d", ZEROMQ_PROTOCOL, HOSTNAME, REP_PORT));
pushSocket.bind(StringFormat("%s://%s:%d", ZEROMQ_PROTOCOL, HOSTNAME, PUSH_PORT));
/*Maximum amount of time in milliseconds that the thread will try to send messagesafter its socket h