文章 "如何创建订购交易机器人的需求规范"

 

新文章 如何创建订购交易机器人的需求规范已发布:

您是否正在运用自己的策略进行交易? 如果您的系统规则可以描述为正规的软件算法,那么最好将交易委托给自动智能系统。 机器人不需要睡觉或食物,也不会受到人类弱点的影响。 在本文中,我们将展示如何在自由职业服务版块订购交易机器人时创建需求规范。

为什么一份准备充分的需求规范很重要?

在订购或开发交易机器人时,您需要制定需求: 机器人要执行的任务,操作的条件,对事故和紧急情况的响应,所需的控制方法等。 交易机器人是程序,会严格遵循底层逻辑。 为了编写动作算法,您应该准备详细的描述。

交易策略的描述以需求规范的形式提供。 您提供的详细信息越多,您 (客户) 和程序员 (订单开发人员) 之间就会更少产生误解。

智能交易系统需求规范的重要部分是明确表述的正式交易规则。 即使您并未订购智能交易系统,只是想自己开发一套,您也应该从定义这些规则开始。 准备需求规范并包括智能交易系统的测试/优化相关点。 添加假设,您将使用这些假设来检验交易策略的品质和稳定性,描述选择最佳参数的准则并解释您认为其很重要的原因。

将所有智能交易系统的开发阶段包括在需求规范中 — 这将使开发人员明晰算法思路,并帮助您在数周,数月甚至数年之后回忆其详细信息。 算法交易不是一个业余爱好,而是一条深入的探索路径,其中所有阶段都需要妥善记录。 每当您需要测试新思路时,交易系统开发日记将非常有用。

需求规范示例

以下是开发 MACD 样本 智能交易系统的需求规范示例,可在 MetaTrader 5 标准包中找到。

1. 交易系统的思路如下: 当 MACD 的主线和信号线在当前趋势方向上相交时入场

2. 趋势 基于指定周期 (InpMATrendPeriod) 的 指数移动平均值 来判断。 如果当前 EMA 值大于前一个,则趋势被视为增长 (ema_current > ema_previous)。 轮替者为,如果当前 EMA 低于前一个,则趋势被认为是下跌 (ema_current < ema_previous)。

3. 交易信号:

  • 买入信号: MACD 主线向上穿过信号线 (macd_current > signal_current && macd_previous < signal_previous)。
  • 卖出信号: MACD 主线向下穿过信号线 (macd_current<signal_current && macd_previous>signal_previous)。 下图显示了买入和卖出案例。


4. 平仓 依据相反的信号: 买入持仓由卖出信号平仓,卖出持仓由买入信号平仓。

5. 开仓 则是当新柱线出现时,按市价执行。 智能交易系统将使用开盘价进行测试,因此无需添加柱线内禁止操作的函数。

6. 用于开仓的附加过滤器:

MACD 主线的绝对值将用于滤除弱信号: 仅当该值大于 open_level (以点数为单位) 时才能确认信号。 信号确认条件如下:

  • 确认买入信号: Abs(macd_current)>open_level
  • 确认卖出信号: macd_current>open_level

7. 用于平仓的附加过滤器:

MACD 主线的绝对值也将用于确认平仓: 如果该值大于 close_level (以点数为单位),则确认信号。 平仓信号确认条件如下:

  • 确认多头平仓信号 — macd_current>close_level
  • 确认空头平仓信号 — Abs(macd_current)>close_level

8. 由止盈平仓 — 在开仓时,止盈价位设定在与开盘价固定距离的价位,以点数指定。 该值在 InpTakeProfit 输入参数中设定。

9. 仓位管理

TrailngStop 用于保护利润。 如果盈利点数超过 InpTrailingStop 参数中指定的数值,则设置止损。 如果价格继续沿盈利方向运动,则止损应在给定距离处尾随。 止损不能向亏损方向运动,即不能增加亏损值。 如果没有保护订单 (止盈或止损) 触发,则该笔持仓应由相反的信号平仓。 没有其它持仓离场的方法可用。

作者:MetaQuotes Software Corp.