【问题标题】:Metatrader 5 Python Socket/Websocket communication 4014 errorMetatrader 5 Python 套接字/Websocket 通信 4014 错误
【发布时间】:2021-11-05 19:21:48
【问题描述】:

我正在尝试在 python 套接字服务器和 Metatrader 5 智能交易系统之间创建通信接口。

我已经尝试了多种方法和教程,我在网上找到了用于套接字和 websockets 的方法和教程。所有这些方法都会产生相同的问题。

每当我开始对实时/历史数据进行调试时,都会收到代码为 4014 的 Socket 创建错误。根据错误代码,这是“不允许调用函数”错误。

建议使用多个来源以允许来自指定 URL 的 Web 请求。我也为 127.0.0.1 和 localhost 做到了这一点。 (工具 > 选项 > EA 交易)

为什么我得到一个函数不允许调用错误,如何解决这个问题?

专家代码:

int socket=SocketCreate();
  
  
int OnInit()
  {
     if(SocketConnect(socket,"127.0.0.1",9090,1000)) 
       {
        Print("Connected to "," 127.0.0.1",":",9090);
       }  
     else
       {
        Print(GetLastError());
       }

   return(INIT_SUCCEEDED);
  }

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

void OnTick()
{
  SocketClose(socket); 

}

【问题讨论】:

    标签: sockets mql5 mql metatrader5


    【解决方案1】:

    我们过去遇到过类似的问题,并通过将主机名/IP 添加到工具->选项->专家顾问中允许的 URL 列表来解决它。

    您还可以使用MetaApi 服务通过开发人员友好的SDKs 与 MetaTrader 通信,并使用 Javascript、Java 或 Python 编写您的智能交易系统。

    希望这在某种程度上有用。

    【讨论】:

    • 感谢他的回复。不幸的是,添加主机名对我不起作用,同样的错误仍然存​​在,使用不同 SDK 的问题是我无法访问 metatrader 中非常稳定的回测框架。还是我错过了使用不同 API 的一些东西?
    • 你是对的,如果你需要回测,那么回测还是要添加到 MetaApi 中。
    • 不过会非常有用。但目前,我正在寻找某种形式的进程间通信。
    • 嗯,这并不意味着 MetaApi 无法进行回测。它只是没有在 SDK 中提供回测框架。但是,您可以下载历史数据并使用它来回测以 Javascript、Python 或 Java 编码的 EA。不过,此时需要一些额外的编码。
    猜你喜欢
    • 1970-01-01
    • 2014-06-30
    • 2015-04-13
    • 1970-01-01
    • 2017-09-30
    • 2011-10-12
    • 2020-07-15
    • 1970-01-01
    • 2018-10-30
    相关资源
    最近更新 更多