You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何与MT5服务器建立WebSocket连接获取实时报价及交易利润数据

MT5实时数据流集成解决方案(无EA替代方案)

一、WebSocket连接ECONNRESET错误排查

  • 端口与服务验证:确认MT5服务器已开启WebSocket服务,默认端口为443(WSS加密)或80(WS明文),需在MT5服务器管理面板中启用WebSocket协议支持。
  • NodeJS代码规范:使用标准WebSocket库(如ws)实现连接,确保握手流程合规,添加重连机制应对临时断开。示例代码:
const WebSocket = require('ws');
const ws = new WebSocket('wss://your-mt5-server:443');

ws.on('open', () => {
  // 发送加密后的登录请求
  ws.send(JSON.stringify({action: 'login', login: 12345, password: 'your-encrypted-pass', server: 'MT5-Server'}));
});

ws.on('message', (data) => {
  const response = JSON.parse(data);
  // 处理报价或账户数据
  console.log(response);
});

ws.on('error', (err) => {
  console.error('连接错误:', err);
  // 3秒后自动重连
  setTimeout(() => { /* 重新初始化WebSocket连接 */ }, 3000);
});
  • 白名单确认:检查MT5服务器的白名单规则是否覆盖WebSocket端口,部分服务器会对API和WebSocket端口设置独立的IP权限。

二、多品种报价与实时利润获取(无EA方案)

1. 官方WebSocket API原生支持

MT5 WebSocket API原生支持多品种订阅与账户状态推送:

  • 多品种订阅:登录成功后,发送包含多个品种符号的订阅请求:
    {"action": "subscribe", "symbols": ["EURUSD", "GBPUSD", "XAUUSD"]}
    
  • 实时利润获取:订阅账户状态更新,服务器会主动推送账户权益、浮动利润等实时数据:
    {"action": "subscribe", "type": "account"}
    
    推送的账户数据中,profit字段即为当前实时交易利润。

2. REST API优化方案(WebSocket备选)

若WebSocket连接仍有问题,可通过REST API实现低延迟拉取:

  • 批量报价拉取:调用/api/quotes接口一次性获取多品种报价,设置500ms以内的轮询间隔,结合本地缓存只处理价格变化数据。
  • 实时利润计算:调用/api/account接口获取账户实时权益,或通过/api/positions接口获取所有持仓,结合最新报价计算浮动利润。

三、单品种代码改造方案

针对你现有的单品种连接代码,可通过以下修改支持多品种与利润获取:

  • 维护一个品种符号数组,循环生成每个品种的订阅请求。
  • 统一消息处理逻辑,通过消息中的symbol字段区分不同品种的报价。
  • 添加账户订阅逻辑,接收并解析服务器推送的实时利润数据。

内容的提问来源于stack exchange,提问作者Umair Ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:07:41