如何创建订购交易机器人的需求规范·进阶篇
◍ 念头落不成代码时去哪找人补规范
很多所谓“交易系统”在客户嘴里只是一个念头:进出场靠盘感,风控靠心情。开发一经启动,逻辑缺口立刻暴露,程序员被迫替你补完未提供的分支,这本身就带着返工风险。 若规范缺失导致 EA 行为与预期不符,订单容易走争议仲裁。依据自由职业者规则,仲裁只认需求规范原文,开发期间的任何口头补充都不作数。客户常怪程序员写错,但判决基础只是那张纸。 有些客户规则清晰,却被数学公式、神经网络或机器编程发行器卡住,写不出规范。此时可在自由职业服务的“编程建议”或“其它”分类下单,标题写“为交易机器人订单创建需求规范”,自定初始成本。 有经验的开发者会帮你把策略翻成可读逻辑,建议你贴 MT5 图表截图:指标窗口、画线对象、信号触发位置都标出来。连“动量”“级别反弹”这类说不清的概念,对方也能按经验给出现成思路。 市场从不完全重复,但历史里能找到近似情形。任何市况基本都能用带可变参数的简单模型逻辑化,参数留到 EA 里优化即可。合作产出一份就绪规范,你就能直接拿去订做机器人。
把术语写进需求规范而不是甩链接
交易系统里那些描述市场状态或价格动作的关键词,最好在需求文档里逐条给清定义,别指望程序员靠常识补全。哪怕你觉得「上升趋势」这种词够直白,也值得多写一段,免得后续来回扯皮。 比尔·威廉姆斯对上升的定义很具体:三条鳄鱼线自下而上按蓝、红、绿的顺序排列才算。拉里·威廉姆斯则更朴素——每个新高高于前高,每个回撤低点在前一个低点之上。两种口径都能直接写进文档,不用附外链。 需求里出现的术语用粗体标出,程序员检索时一眼能抓到。截图可以贴在术语旁辅助说明,但别用论坛帖或出版物的网址代替解释。把所有术语当场写透,机器人开发返工率会明显降下来,这步省下的时间比写文档本身多。
「给开发者写订单描述的分寸」
在自由职业版块发单时,描述只需交代交易思路的通用本质,让接单的程序员明白你要什么类型的 EA。核心规则是:绝不在公开订单里写死你的系统逻辑、进出场条件或指标参数组合,否则策略直接曝光。 一个能用的模板是只说信号类别和可选指标框架。例如「开发一款趋势逆转时交易的智能交易系统。逆转信号基于价格行为形态生成。趋势将基于 ADX、鳄鱼和 MACD 确定,而指标选择应在智能交易系统的输入参数中提供」——这句话没给具体阈值,却把架构边界讲清了。 这样写的好处是开发者能搭出可配置的输入面板,你拿到源码后再自己填参数,外汇与贵金属杠杆品种波动剧烈,策略外泄可能引发跟单对冲,高风险下保密就是仓位安全的一部分。
◍ 趋势延续还是均值回归先定调
写 EA 之前先把策略归类:你赚的是趋势延续的钱,还是价格回到均值口袋里的钱。这两类逻辑互斥,混着写只会让止损和加仓互相打架。 对于跟趋势的系统,入场触发必须写死——是突破前高进,还是回踩均线进,不能模棱两可。MT5 里用市价单追突破,和挂限价单等回滚,滑点与成交率能差出 10%~30%,这个得在策略说明里点明。 开仓方式也别偷懒写「合适时机」。明确成三种之一:市价立即成交、突破 K 线收盘确认后跟、或挂单等更优价位。外汇和贵金属杠杆高,模糊的入场定义在实盘会放大穿仓风险,可能一晚就洗掉半月利润。
形态之外还得写清前置条件
像「吞噬」和「针尖柱线」这类简单形态,用算法几句就能描述出来,但它们单独拿来根本撑不起一套能盈利的策略,实际只是用来辅助判断趋势反转的位置。 以上升趋势为例,你不会在任意位置等下跌吞噬,而是先确认上涨结构成立,再等回调中出现该形态才考虑介入,这一步就是所谓的设置(context)。 很多自建 EA 失败,原因不在信号代码写错,而在需求里只写了「出现吞噬就开仓」,没写前置的市况过滤。外汇和贵金属波动受数据驱动,缺了设置条件,假信号概率会明显放大。 所以写策略说明书时,除交易信号外,必须同步写清「什么市况下才允许该信号触发」,否则回测和实盘会差出两个世界。
「把信号讲清楚再写代码」
信号描述最怕一句话带过。比如「价格上穿均线」这种写法,落到 MT5 里至少有两种实现:一种是穿越瞬间触发,另一种是等当根烛条收在均线上方才确认。两者不仅 EA 逻辑不同,回测时要求的逐笔报价生成模式也不一样——瞬时交叉用控制点可能漏信号,收线确认才适合用每笔 tick。 写需求时得把均线类型(SMA/EMA/VIDYA)、周期、附加参数(如 AMA 的平滑系数)都钉死。趋势强度可以用 ADX 量化,但 Ichimoku 这类综合系统不适合塞进信号描述里做硬参数。条件越多,输入变量越膨胀,MQL5 云网络加遗传算法虽能提速,优化结果的数据体量也会变得很难肉眼审。 [CODE]""[/CODE] 实操上,先写个独立指标画买卖箭头比直接堆 EA 更稳。指标只负责标信号,机器人只管下单,两边分开调试。好处是信号数会多于实际成交——比如多头持仓后算法不再查买信号,但指标仍会把所有买点画出来,方便你反推逻辑哪儿错了。 买卖信号建议拆开单独测:多仓在跑时卖信号本就被忽略(除非用于平仓),纯形式验证底层逻辑才不会互相污染。参数也能分开优化,搜完再拼回一个 EA,错误更少、收敛更快,多花点写中间件的时间对正经策略值当。