网络授权概述
网络授权是 EA 授权系统的核心方案。EA 在运行时通过联网与服务端通信完成身份校验,支持远程控制授权状态、实时心跳监测、数据统计与动态参数下发,让您对分发的 EA 拥有完全的掌控力。
相比本地加密,网络授权具有以下优势:
- 远程控制:随时启用、禁用或吊销任意账号的授权,风险终端即时失效。
- 实时心跳:EA 运行中定时向服务器上报状态,服务端可实时查看在线情况。
- 硬件锁定:绑定 MT 账号,防止授权被复制到其他电脑使用。
- 数据统计:自动汇总余额与净值变化,量化产品表现。
- 动态参数:运行时向 EA 下发键值参数,无需重新编译即可调整策略。
接入流程
从创建产品到用户使用,共 4 个步骤即可完成网络授权接入:
1创建 EA 产品
登录商户后台,在左侧菜单进入 「EA 列表」,点击「新增 EA」创建产品。
- 名称:便于识别的产品名称,如「动量突破 EA」。
- 标识符:唯一标识,用于 EA 客户端连接时自动关联产品。建议用英文+数字,如
momentum_ea。 - 描述:可选的备注信息。
创建后即可在账号授权、统计等流程中按产品筛选与归类。
2添加授权账号
在 「账号列表」中为终端用户添加网络授权:
- 点击「新增授权」或页面顶部的新增按钮。
- 填写 MT 账号 和 服务器(如
ICMarkets-Demo)。 - 选择关联的 EA 产品。
- 设置 到期时间,到期后 EA 将无法继续运行。
- 在关联的 EA 产品 上按需开启「动态参数下发」(见 EA 列表)。
3整合 EA 源码
将授权校验代码注入到您的 EA 源码中。系统提供两种整合方式:
方式一:网页一键整合(推荐)
访问 本地加密页,粘贴您的 .mq4 / .mq5 源码,系统自动注入授权验证代码,复制整合后的源码即可。
方式二:手动接入
在 EA 的 OnInit 函数中添加授权校验逻辑:
// OnInit 中调用授权校验 int OnInit() { // 网络授权初始化 int auth_result = Auth_Start(); if (auth_result != AUTH_OK) { Print("授权校验失败,EA 停止运行"); return INIT_FAILED; } // 启动心跳(可选,用于在线状态监控) Heartbeat_Start(); // 获取动态参数(EA 已开启动态参数下发时) string params = GetRuntimeParams(); // … 您的原有 OnInit 逻辑 … return INIT_SUCCEEDED; }
网络授权 EA 在运行中会:
- 启动时联网校验账号、密码是否有效,到期时间是否未过。
- 运行时按心跳间隔(如 15 秒)向服务器上报状态。
- 服务器端禁用/吊销授权后,EA 在下次心跳时即可感知并停止运行。
- 后台支持动态参数配置,EA 启动时自动拉取。
4编译与分发
在 MetaTrader 自带的 MetaEditor 中打开整合后的源码:
- 按 F7 编译生成
.ex4(MT4)或.ex5(MT5)。 - 将生成的可执行文件交付给授权用户。
- 用户将 EA 放入 MT4/MT5 的
Experts目录,附到图表上即可运行。
后台管理功能
登录商户后台后,左侧菜单提供以下管理功能:
仪表盘
仪表盘展示总账号、有效授权、吊销/过期与近 24h 在线等概览,以及各 EA 授权数量、产品盈亏与余额/净值走势图表。
账号管理
集中管理所有网络授权账号,支持以下操作:
- 搜索与筛选:按 MT 账号、EA 产品、服务器、状态等条件快速定位。
- 状态管理:将账号设为
active(有效)、disabled(禁用)或revoked(吊销)。禁用/吊销后 EA 在下次心跳时即停止运行。 - 动态参数下发:在「EA 列表」中为每个 EA 开启「动态参数下发」开关(仅 SVIP 可启用该开关)。
- 备注管理:为账号添加备注,便于运营管理。
- 到期互换:将两个账号的到期时间互换,灵活调整。
- 导出 CSV:按筛选条件导出账号列表,用于离线分析。
授权延期
在账号列表中勾选一个或多个账号,点击「延期」按钮,可选择以下延期时长:
- 3 天 / 15 天 — 短期体验或试用延期。
- 1 个月 / 1 季度 / 1 年 — 正式订阅延期。
延期后系统会自动向在线接收端(RECEIVER)推送最新到期时间,用户无需重启 EA 即可生效。
动态参数
为已开启动态参数下发的 EA,向其下所有 MT 授权账号下发运行时键值。参数键名须先在 「源码集成」中勾选并完成整合同步。商户在 「EA 列表」中点击 「动态参数下发」,仅可编辑各键取值及备注(备注不下发 EA)。
参数通过两种通道同步下发:
- HTTP 接口:EA 启动时调用
/api/runtime-params获取。 - TCP 广播:服务端向在线接收端下发最新参数,接收端实时接收。
典型参数示例:lot_size: 0.01、risk_level: 2、max_spread: 30。
仪表盘
提供近 14 日心跳趋势、各 EA 产品的授权账号分布、以及最近心跳明细。帮助您:
- 评估 EA 策略在不同行情下的盈利能力。
- 统计总盈亏与盈利占比。
- 发现异常亏损账号,及时调整参数或风控。
API 接口说明
网络授权模式下,EA 与服务端通过以下接口通信:
查询到期信息
GET /api/expiry?account=MT账号&server=服务器
返回该账号的授权状态和到期时间。EA 启动时调用此接口完成鉴权。
获取动态参数
GET /api/runtime-params?account=MT账号&server=服务器
满足下发条件时返回 JSON;未开启动态参数下发时返回 403。
TCP 通信
TCP 服务持续监听,支持:
- SENDER 握手:发送端连接后由服务端校验授权,下发到期时间和动态参数。
- RECEIVER 广播:服务端向所有在线接收端广播心跳信号和状态变更。
- 心跳格式:
HEARTBEAT|账户|余额|净值|服务器|产品标识
常见问题
EA 启动时提示授权失败怎么办?
请检查:① 该账号是否已在后台添加授权;② 账号状态是否为 active;③ 是否已过到期时间;④ MT4/MT5 是否已开启「允许 WebRequest」。
用户更换电脑后如何处理?
授权按 MT 账号绑定,不受硬件限制。用户只需在新电脑上安装 MT4/MT5,使用同一账号登录即可正常使用。
动态参数修改后 EA 需要重启吗?
不需要。参数修改后,服务端会通过 TCP 广播 PARAMS|{...} 行实时下发,EA 端收到后即可更新运行参数。如果 EA 未连接 TCP,也可以在下一次 HTTP 请求时获取最新参数。
如何查看 EA 是否在线?
在后台「账号列表」中,心跳状态列会显示最近心跳时间。如果超过心跳间隔仍未收到心跳,状态将标记为离线。近 14 日心跳趋势与明细请在「心跳统计」页查看。
试用到期后如何续费?
联系管理员在后台为指定账号执行延期操作。延期后 EA 在下次心跳时即可获取新的到期时间,无需用户手动操作。