一、MQL5 Freelance 是什么?
MQL5 Freelance 是 MQL5 生态里用于发布开发需求、寻找 MetaTrader 程序开发者的服务入口。MQL5 官方的 Freelance 页面定位就是为 MetaTrader 平台订购交易机器人、技术指标和算法交易应用,分类里也包括 Experts、Indicators、Scripts、Libraries、Integration、Converting 等类型。平台术语与客户端能力可与 MetaTrader 5官网 说明对照。
简单说,如果你想把某个 MT5 想法做成 EA、指标、脚本或辅助工具,可以在这类平台发布需求,让熟悉 MQL4 / MQL5 的开发者接单。
但它不是「找人帮你赚钱」的地方。它更像是一个技术开发服务市场。你提出规则,开发者按照需求写代码、调试、交付文件。至于这个规则本身在市场中是否有效、是否适合你的账户、能不能承受风险,不是开发者写完代码就能自动解决的。
MQL5 是 MetaTrader 5 的编程语言,官方说明中也提到,它可以用来开发 Expert Advisors、技术指标、脚本和函数库。也就是说,Freelance 解决的是「把想法程序化」的问题,不是替用户判断这个想法是否一定可行。
二、什么时候适合找人定制 EA 或指标?
不是所有想法都适合立刻定制 EA。一般来说,比较适合找人开发的情况有几类。
交易想法不能一步变成 EA:中间需要把规则写清楚、整理成需求文档,再经开发、测试与验收;下图概括这一路径。
规则已经比较清楚
比如你能明确说出:
- 用哪个品种;
- 看哪个周期;
- 入场条件是什么;
- 出场条件是什么;
- 止损止盈怎么处理;
- 是否允许加仓;
- 什么情况下暂停交易;
- 什么情况下不再开新单。
规则越清楚,开发越容易落地。
重复操作很多,想减少手动执行
如果你每天都做同样的图表检查、提醒、订单管理或复盘记录,脚本、指标或 EA 可以帮助减少重复劳动。比如自动提醒、自动画线、批量管理订单、导出数据等,不一定都要做成自动交易 EA,有时做成指标或脚本更合适。
想把已有指标或逻辑程序化测试
有些用户不是要直接实盘,而是想把一套规则做成 EA,用策略测试器看历史表现,或者在模拟账户里观察执行情况。这个场景相对更适合定制。
什么时候不适合急着定制?
如果你的想法还停留在:
- 「看到感觉差不多就进。」
- 「行情强的时候追一下。」
- 「感觉不对就出。」
- 「亏多了就少做,赚了就多做。」
- 「开发者帮我优化到稳定盈利。」
这类描述很难直接写成程序。程序不懂「感觉差不多」,它需要明确条件。
若你其实只需要购买或租用成品、而非从零定制,可先阅读《MT5 Market 购买指标和 EA 前要看什么?授权、试用和风险提醒》,分清「买现成工具」与「找人写代码」两条路径。
三、定制 EA 前应该准备哪些策略规则?
写 EA 最怕需求模糊。你以为自己说清楚了,开发者理解的可能完全不同。开发 EA 前,至少要把下面几类规则写出来。
1. 品种
你打算让 EA 用在哪些品种上?比如只用于 EURUSD,还是黄金、指数、多个外汇货币对都要支持?不同品种的报价位数、点差、合约大小、最小手数、交易时间都可能不同。如果你不写清楚,开发者可能按默认情况写,后面换品种就出现问题。
2. 时间周期
EA 是看 M5、M15、H1,还是 D1?信号来自当前图表周期,还是固定周期?这点很重要。因为同一个指标,在不同周期上数值完全不同。你说「均线金叉入场」,但不说周期,开发者没法知道到底是哪张图上的均线。
3. 入场条件
入场条件要写得像程序能判断的句子。比如:
「当上一根 K 线收盘价高于 20 日均线,并且 RSI 大于 50 时,下一根 K 线开盘后买入。」
这比「价格走强就买」清楚得多。
4. 出场条件
出场条件同样要明确。是固定止盈止损?反向信号出场?时间到出场?盈利达到某个金额出场?还是指标条件变化出场?不要只写「合适的时候平仓」。程序不知道什么叫合适。
5. 止损止盈
止损止盈要写清楚单位和逻辑:
- 按点数;
- 按价格;
- 按账户货币金额;
- 按 ATR 或其他指标;
- 是否允许移动止损;
- 是否使用保本;
- 是否分批止盈;
- 是否没有止损。
如果没有止损,也要明确写出来,并说明是否真的接受这种风险。不要让开发者猜。
6. 仓位规则
仓位规则不能只写「自动控制」。你需要说明:
- 固定手数;
- 按余额比例;
- 按风险百分比;
- 最小手数限制;
- 最大手数限制;
- 连续亏损后是否降低手数;
- 是否允许加仓;
- 是否允许反向持仓。
仓位规则写不清,EA 就很容易和你的预期不一样。
7. 交易时间
是否限制交易时段?是否避开周五收盘前?是否避开新闻前后?是否只在某个服务器时间段运行?MT5 里的时间通常和服务器时间有关,不一定等于你本地时间。需求文档里要说明用哪个时间标准。
8. 风险限制
这部分很多人最容易漏掉,但它很重要。例如:
- 单日最多交易几次;
- 单日最大亏损后停止;
- 最大持仓数量;
- 最大浮亏限制;
- 点差超过多少不交易;
- 滑点允许范围;
- 同一品种是否只允许一单;
- EA 出错时是否停止开单。
这些不是让 EA 变得「稳赢」,而是避免它在异常情况下失控。
四、需求文档应该怎么写?
需求文档不需要写得像论文,但要让开发者看完能直接判断能不能写。可以按这个结构准备。
1. 项目目标
说明你要开发的是:
- EA;
- 指标;
- 脚本;
- 面板工具;
- 现有 EA 修改;
- MT4 转 MT5;
- 指标转 EA。
不要一上来只写「做机器人」。机器人到底要做什么,才是关键。
2. 使用环境
写清楚:
- MT5 还是 MT4;
- 净额账户还是对冲账户;
- 目标品种;
- 目标周期;
- 是否需要多品种;
- 是否需要 VPS 运行;
- 是否依赖第三方指标。
3. 入场规则
用编号写,不要写成一大段感觉描述。例如:
条件 A:上一根 K 线收盘价高于某均线;条件 B:指标数值大于某阈值;条件 C:当前没有同方向持仓;全部满足后,下一根 K 线开仓。
4. 出场规则
写清楚每一种退出情况:止损;止盈;反向信号;时间平仓;盈亏金额限制;手动干预后 EA 是否继续管理。
5. 参数列表
哪些内容要做成可调参数?比如:均线周期;RSI 周期;止损点数;止盈点数;固定手数;最大点差;交易开始/结束时间;Magic Number;允许买入 / 允许卖出开关。参数写清楚,后续测试会方便很多。
6. 异常处理
异常处理不要省。例如:
- 下单失败是否重试;
- 点差过大是否跳过;
- 价格无效是否等待下一根 K 线;
- EA 重启后是否继续管理旧单;
- 手动平仓后是否重新开单;
- 多个图表同时运行如何避免重复下单。
这些看起来麻烦,但是真正运行 EA 时,很多问题都出在这里。
五、为什么「按感觉交易」很难直接写成程序?
很多手动交易者会说:「我平时就是看图感觉位置差不多,然后结合指标和形态判断。」这在人工看盘时可能是一种经验,但程序需要明确条件。
开发者不能把「感觉强」「位置差不多」「快到压力位」「行情不太对」直接写成代码,除非你把它们翻译成可判断的规则。
比如:
「感觉趋势强」可以拆成:价格在 50 均线上方;均线斜率大于某值;ADX 大于某数值;最近 N 根 K 线高点抬高。「位置差不多」可以拆成:距离某水平线小于 X points;距离前高前低小于某范围;距离均线不超过某点数。
这不代表这些规则一定有效,只是它们终于变成了程序能理解的语言。很多 EA 定制失败,不是开发者不会写,而是用户没有把「主观判断」转成「客观条件」。
六、如何和开发者沟通测试、修改和验收?
定制 EA 不是一句「写好了发我」就结束。比较稳妥的流程应该包括需求确认、开发、测试、反馈、修改和验收。
开始前确认需求
在开发前,把需求文档发给开发者,并让对方确认理解。如果开发者对规则有疑问,要先讨论清楚,不要等代码写完再改核心逻辑。
中途确认关键逻辑
复杂 EA 可以分阶段确认:是否能识别信号;是否能正确下单;是否能正确设置 SL/TP;是否能按时间过滤;是否能按最大点差过滤;是否能避免重复开单;是否能识别已有持仓。不要等全部做完才发现最基本的入场规则理解错了。
测试时要记录问题
反馈问题时,不要只说「不对」「没开单」「效果不好」。更有用的反馈是:发生时间;品种;周期;当时指标状态;预期应该发生什么;实际发生了什么;截图;Experts / Journal 日志;回测报告或测试记录。越具体,开发者越容易定位问题。
验收时看功能,不是看收益
验收 EA,应该先看功能是否符合需求,而不是看短期盈利。比如:入场/出场条件是否按文档执行;参数是否可调;风控限制是否生效;异常情况是否处理;日志是否清楚;是否有重复下单问题;是否能在目标账户模式下运行。
开发服务的验收重点是「代码是否按规则工作」,不是「未来是否盈利」。交付的 .ex5 或源码需放进当前 MT5 终端实例的数据文件夹对应子目录并在 Navigator 中加载;路径与刷新方法见《MT5 数据文件夹与 MQL5 路径说明》。
七、为什么要先在模拟账户和策略测试器中验证?
EA 写好后,不要直接放到真实账户。先用策略测试器和模拟账户验证,是基本步骤。
MetaTrader 5 内置策略测试器,可用于对 EA 进行测试和优化;官方自动交易页面也强调平台支持交易机器人、技术指标以及策略测试等自动交易相关功能。
策略测试器能看什么?
它可以帮助你检查:EA 是否能跑完整个历史区间;是否按规则开仓和平仓;是否存在明显逻辑错误;参数变化后行为是否合理;回撤、交易次数、持仓时间等基本表现;日志是否报错。但回测不是未来保证。历史数据质量、点差设置、滑点模拟、参数优化都会影响回测结果。
模拟账户能看什么?
模拟账户更适合观察实时环境下的行为:是否按实时行情执行;是否有延迟;是否在点差扩大时乱开单;是否和经纪商品种规则兼容;是否会频繁报错;是否会重复下单;是否能稳定运行。模拟测试不是为了证明它一定赚钱,而是先确认它不会明显乱动。
八、定制 EA 的常见误区
误区一:开发者能把想法自动变成稳定盈利系统
开发者能写代码,但不能替市场配合你的规则。如果规则本身没有经过验证,代码写得再好,也只是把未验证规则自动执行。
误区二:需求越模糊,开发者越能发挥
这通常只会增加误解。你不写清楚,开发者只能猜。猜错了,后面就会反复修改。
误区三:只要回测好看就可以实盘
回测好看不代表实盘可靠。过拟合、理想点差、样本太少、忽略滑点,都可能让回测结果失真。
误区四:EA 写好就不用管了
EA 需要监控、日志排查、参数管理和版本记录。市场环境变化、平台更新、经纪商规则变化,都可能影响 EA 行为。
误区五:越多功能越好
新手经常想一次性加很多功能:多品种、多周期、加仓、风控、新闻过滤、面板、推送、自动优化。功能越多,逻辑越复杂,错误和沟通成本也越高。更稳妥的方式是先做最小可用版本,确认核心规则没问题,再逐步增加功能。
九、如何避免把开发服务误解成盈利保证?
这点非常重要。Freelance 定制解决的是软件开发问题,不是投资结果问题。开发者的职责通常是把你的规则写成代码,让 EA 按规则运行。至于这个规则是否能在未来市场中表现良好,需要你自己测试和承担风险。
你可以要求开发者:按需求实现功能;提供源码或交付文件;修复明显 bug;解释参数;配合测试;修正和需求不一致的逻辑。
但你不应该把开发服务理解成:保证盈利;保证回撤很低;保证未来有效;保证适合所有账户;保证替你优化出稳赚参数。只要看到有人把「写 EA」包装成「包盈利」,就要谨慎。
十、找开发者前的需求文档清单
在发布需求前,可以先把下面这些写出来:
- 我要开发的是 EA、指标、脚本还是工具?
- 用于 MT5 还是 MT4?
- 目标账户是 Netting 还是 Hedging?
- 适用品种有哪些?
- 使用哪个时间周期?
- 入场条件是什么?
- 出场条件是什么?
- 止损如何设置?
- 止盈如何设置?
- 仓位如何计算?
- 是否允许加仓?
- 是否允许反向持仓?
- 是否限制交易时间?
- 是否设置最大点差过滤?
- 是否有每日亏损限制或最大交易次数?
- 是否需要移动止损、保本、分批平仓?
- 是否依赖其他指标或外部文件?
- 是否需要推送、邮件或日志?
- EA 重启后如何处理已有订单?
- 验收标准是什么?
如果这些问题你还回答不上来,先别急着找开发者。先把规则整理清楚,会比直接谈价格更重要。
十一、总结:先写需求,再找开发者
MT5 Freelance 可以帮助用户把 EA、指标、脚本或工具想法做成程序。MQL5 生态确实提供了面向交易机器人和技术指标的开发服务入口,也有大量熟悉 MetaTrader 的开发者。
但定制 EA 靠不靠谱,很大程度取决于你有没有准备清楚需求。你只说「帮我做个自动交易机器人」,开发者很难知道你真正想要什么。你把入场、出场、止损、仓位、时间、风控、异常处理和验收标准写清楚,沟通就会顺很多。
记住一句话:开发者能把规则写成代码,但不能替你证明规则一定有效。
定制完成后,也不要急着上真实账户。先用策略测试器检查逻辑,再用模拟账户观察实时行为,确认没有明显问题后,再决定下一步。本文不构成投资建议,也不承诺任何收益。
正文结束前附一张找开发者前的检查清单速览图(与第十节条目呼应),发布 Freelance 需求前可逐项核对。
FAQ:Freelance 定制 EA 常见问题
1)Freelance 和 Market 有什么区别?
Freelance 是按你的规则找人写程序;Market 是购买或租用他人已做好的成品。两者都不保证盈利,路径不同。
2)需求只写「做个 EA」可以吗?
不够。至少写清品种、周期、入场出场、止损止盈、仓位与风控,否则沟通成本会很高。
3)开发者要包盈利能信吗?
要谨慎。开发服务解决的是实现规则,不是承诺市场结果。
4)EA 交付后怎么验收?
对照需求文档看功能是否实现,用策略测试器与模拟账户验证行为,并查看 Experts / Journal 日志,而不是只看短期盈亏。
5)规则还模糊,应该先定制还是先整理?
先整理。把主观描述拆成可判断条件,或先用模拟/回测验证思路,再发布 Freelance 需求。