回到首页 / 免费试用生成 EA

EA 加密与在线授权:怎么把 EA 交给客户又不被复制

做外汇 EA 的人几乎都会遇到同一个问题:程序写得不错,卖出去没几天就被人拷走、转卖,甚至拿去做“破解版”低价甩卖。这篇把 MT4/MT5 的 EA 加密与在线授权讲清楚——怎么加密、能限制什么、客户怎么用、哪些情况会踩坑。

一、为什么“直接发 ex4/ex5”等于没保护

把编译好的 EA 直接发给客户,看似已经看不到源码,但实际风险有三层:

所以真正管用的做法不是“把文件藏起来”,而是让程序离开你的授权服务器就跑不起来。

二、加密 + 在线授权是怎么工作的

思路很朴素:把原始 EA 包一层受控的启动壳,程序每次加载时先联网找授权服务器核对“这枚授权码还能不能用、允许几台机器用、参数是多少”,核对通过才把真正的交易逻辑放出来运行。

环节发生什么谁来管
加密打包把 EA 文件(EX4/EX5,可带配套 DLL)做成受控程序站方 / 管理员后台
签发授权码每个客户一枚授权码,可设到期时间、可绑定账号数量管理员后台
客户使用把授权码填进 EA 参数,程序联网自检 → 通过才开始交易客户端
远程参数手数、加仓间距等参数由后台下发,你改了客户不用重新编译管理员后台

三、加密后能限制哪些事

1)限制到期时间

授权码可以设成 7 天、30 天、一年或永久。到期后程序在自检环节就被拒,客户即使把文件留着也没用;想继续用就得找你续期。这是收租式卖法的基础。

2)限制使用账号 / 机器数量

可以限定“这枚码只允许 1 个交易账号使用”,也可以放开到 2~3 个账号同时用。超出上限时,新机器会在自检面板上显示明显的提示,你在后台能一眼看到这条申请,再决定放行还是拒绝。

3)限制只能收你下发的参数

加密后的 EA 有一个重要特性:必须拿到服务器下发的参数才允许运行。手数、止损止盈、加仓规则这些关键参数写在你这边,客户在 MT 里看到的参数面板可以只显示一部分,真正生效的是后台那一份。这样对方改参数、拿别人的参数去跑都无效,也避免“参数抄错导致乱下单”的纠纷。

4)防止文件被搬走

受控程序离开授权环境就失效,拷到别的窗口、别的机器、别的 MT 终端都用不了——这才是“加密”真正要挡住的事,而不是把文件名改得看不懂。

四、客户拿到加密 EA 之后怎么用

  1. 把加密后的 EA(以及随附的 DLL,如果有)按说明放进 MT4/MT5 的 MQL4/Experts 或 MQL5/Experts 目录;
  2. 在 MT 菜单「工具 → 选项 → 智能交易系统」里勾选“允许 WebRequest 指定的 URL”,把授权服务器地址填进去(这一步不能省,否则程序连不上服务器);
  3. 把 EA 挂到图表上,在参数里填入你给他的授权码;
  4. 等他看到自检提示“正常”,程序就开始正常工作;如果不正常,面板会直接写清原因(到期、超出机器数、没放行网址、没收到参数等)。

五、常见问题

断网了 EA 还能跑吗?

短暂网络抖动会走宽限逻辑,不会立刻停;但长期联系不到授权服务器,程序会按保护策略停止交易。这样做是为了防止有人靠“断网”绕过授权。

客户换电脑怎么办?

换机器后会变成一条新的待审批记录,你在后台放行即可,授权码和参数都不用重新发。要是你希望“换机器直接可用”,把允许的账号数量调大就行。

我的 EA 本身带 DLL,加密后还能释放吗?

可以。部分 EA(例如多空对冲类)需要把配套 DLL 释放到指定目录才能运行,加密时把 EA 和 DLL 一起上传,程序会按原有方式把 DLL 释放出来,加密只是不让它被搬走。

MT4 和 MT5 都支持加密吗?

支持。MQL4(.mq4/.ex4)与 MQL5(.mq5/.ex5)分别处理,指标文件同样可以加密。

想省掉自己写 EA 这一环?本站可以直接用中文描述交易逻辑生成 MQL4/MQL5 源码,生成后就能走上面的加密与授权流程。见 《MT4/MT5 EA 编程入门》。