构建新兴的社交技术, 第一部分: 发布您的 MetaTrader 5 信号(基础篇)
📘

构建新兴的社交技术, 第一部分: 发布您的 MetaTrader 5 信号(基础篇)

第 1/3 篇

「在 MT5 上把策略变成可订阅信号」

MetaTrader 5 的信号服务允许交易者把正在运行的实盘账户直接发布成信号源,其他用户付费或免费订阅后,其终端会按约定比例自动跟单。这套机制把‘策略验证’和‘分发’压缩到同一个终端里,省掉了自建跟单服务器的成本。 发布门槛并不高:账户需保持连续交易记录、净值与历史回撤满足平台基础风控线,且在信号标签页完成描述与杠杆披露。2014 年 9 月官方文档显示,单篇信号功能介绍帖在站内获得约 2958 次浏览、6 条互动,说明早期用户对‘一键发布信号’的关注度已具规模。 外汇与贵金属品种波动剧烈、杠杆放大风险,信号订阅不等于收益转移,跟单前应在策略测试器用历史数据跑一遍发布者的交易逻辑,确认最大回撤在自己承受区间内。

◍ 用 MT5 把信号丢到推特前先过一遍人脑

这套思路的核心不是让 EA 自己下单,而是把 MT5 和外部 Web 服务打通,让人工在信号进市场前做最后过滤。底层逻辑来自电脑辅助交易:机器擅长搬数据和跑流程,但二十一世纪的计算机没有认知能力,决策权留在人这里,系统只做决策支持,不替你写死买卖规则。 作者最早想用 RSS 推 EA 的中线或长线信号(明确说了剥头皮系统不适合这套),后来改成直接发到 Twitter,变成一套社交决策支持系统(SDSS)。图例里的架构分两块:第一部分是 Web 服务、MT5 终端和推特之间的通信协议;第二部分才是 MQL5 层,用 RESTful 接口把信号送出去。 原文把内容拆成两篇,本篇只讲 Web 体系结构和通信,MQL5 代码放到续篇,沿用了之前 MQL5-RPC 那套远程调用框架的写法。外汇和贵金属杠杆高、滑点狠,这种信号过滤机制只能降低盲跟风险,不保证信号本身赚钱。 想验证可行性,开 MT5 跑一个长线 EA,把它的信号输出先接本地 Web 服务而不是直接下单,人工确认后再放行——这一步就能看出 HBC 模式和你纯自动化的差别。

SDSS 三层骨架与可扩展缺口

SDSS 的第一层是常驻服务器上的 MetaTrader 5 终端,跑在 24 小时不间断的 VPS 或独立服务器上,与 Twitter 应用之间走 RESTful web 服务,数据交换统一用 JSON。这一层只负责发信号,真正的协议封装留到后续 MQL5 层落地,开 MT5 连 VPS 前先确认 outbound 的 443 端口没被墙。 中间层是个 PHP web 应用,本职是收 MT5 信号、写进 MySQL、再往外发。但它留了个口子:可以接人工过滤的 web 本体,用以人为本计算(HBC)模式给 EA 信号算可靠度。原文只是抛了思路,没给具体表结构和回测,别当成现成模块直接抄。 最外层的 Twitter 本身限制单条 140 字符,信号文本必须压进这个长度,超长就会被截断。做贵金属或外汇信号推送时,这种硬限制会逼你用缩写代号,回看历史容易歧义,属于实盘里的高频踩坑点。

「用 REST 把 MT5 信号丢给外部服务」

做 EA 信号外发,REST 比 SOAP、XML-RPC 都轻。它不强制一套协议规范,客户端和服务器之间用 JSON 交换,描述同一对象时 JSON 占用的字节数总是少于 XML——语法元素更少,响应更快,这对 MT5 终端定时推信号很实用。 我们设计的极简 API 挂在 http://api.sdss-your-startup.com,只用一个 POST 方法:/signal/add。MT5 端把 EA 标识、品种、买卖方向、价位打成 JSON 塞进 POST 实体,服务端收下后存库并对外发布。下面是一段真实结构的请求体示例。 [CODE] { "ea_id": 1, "symbol": "AUDUSD", "operation": "BUY", "value": 0.9281 } [/CODE] 逐行看:ea_id 是发信号的 EA 编号,样例填 1;symbol 为品种字符串,这里用 AUDUSD;operation 标方向,取值 BUY 或 SELL;value 是触发价位,示例 0.9281。外汇与贵金属波动剧烈、杠杆高风险大,实盘推送前先在模拟环境验证字段格式。 单终端假设下不用带终端 ID,若以后扩成多 MT5 终端并发,得加 mt5_id 区分来源。认证不能省——Basic HTTP 加 SSL、令牌或 OAuth 都行,否则这套通信协议就裸奔在公网上了。

MQL5 / C++
{
  "ea_id": class="num">1,
  "symbol": "AUDUSD",
  "operation": "BUY",
  "value": class="num">0.9281
}

常见问题

先在终端的信号选项卡里完成账户绑定与策略描述填写,确认跟单参数公开范围,再提交审核等待通过即可对外发布。
应先人工过一遍开平仓逻辑与风险敞口,避免把异常单或测试单误推出去,造成订阅者误判。
可以,小布能读取你的信号历史与参数,标出连续回撤段和异常单,并提示哪些设置可能让跟单者爆仓。
通常指数据源、策略调度与分发接口三层;个人发布者只需维护好数据源与调度,分发接口可用现成通道。
通过平台提供的网络请求接口写少量脚本,在成交事件里调用外部地址即可,注意鉴权密钥不要硬编码在前端。