MetaTrader 5 и Python интеграция с использованием сокета - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь установить соединение между MetaTrader 5 и Python с помощью сокета. Серверная часть написана на python, а клиентская часть написана на mql5. Также клиент является экспертом, а не индикатором. Проблема в том, что когда я запускаю и сервер, и клиент, клиент выдает «ошибку 4014». Я очень благодарен, если кто-то может помочь мне решить эту проблему.

enter image description here

 //this is python server code
 import socket

 serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 serv.bind(('127.0.0.1', 9090))
 serv.listen(1)

 while True:
     conn, addr = serv.accept()
     print('client connected to :', addr)
     conn.close()


//This is mql5 client code
//+------------------------------------------------------------------+
//|                                               test_client_EA.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

int socket;
int OnInit()
  {
   socket=SocketCreate();
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
   SocketClose(socket);  
  }

void OnTick()
{
  socket=SocketCreate();
  if(socket!=INVALID_HANDLE) 
  {
     if(SocketConnect(socket,"127.0.0.1",9090,1000)) 
       {
        Print("Connected to "," 127.0.0.1",":",9090);
       }  
     else
       {
        Print("Connection ","127.0.0.1",":",9090," error ",GetLastError());
       }
  SocketClose(socket); 
  }
 else Print("Socket creation error ",GetLastError());
}
...