文章 "轻松快捷开发 MetaTrader 程序的函数库(第 三十一部分):延后交易请求 - 在特定条件下开仓"

 

新文章 轻松快捷开发 MetaTrader 程序的函数库(第 三十一部分):延后交易请求 - 在特定条件下开仓已发布:

从本文开始,我们将开发一种功能,允许用户在特定条件下利用延后请求进行交易,举例来说,当达到特定时间限制、超出指定利润或由止损平仓时。

该函数库功能允许用户以编程方式创建条件,并遵此条件将交易订单发送到服务器。
例如:

  1. 如果价格跌到指定值以下(与品种属性值有关的两个条件),则在出现或超过特定时间时买入。
  2. 如果超过了指定的利润(与账户资产值有关的一个条件),则部分平仓。
  3. 如果持仓因止损而平仓,则逆向开仓(一个与账户事件属性有关的条件)。

这些示例都很简单,允许会有很多条件及其组合。 在此阶段,我们着手开发因帐户属性、品种和当前帐户上发生事件而产生变化的控制。 来自这三个列表中的条件能够以任意组合设置。
我们先从简单的事情入手 — 控制品种和帐户属性值的变化。 随后将控制帐户事件,并对它们作出反应。

为了把延后请求对象融合为交易逻辑的一部分(在一定条件下发送交易订单),我们需要在此对象中实现附加数据,从而存储延后请求激活条件,及其控制和处理方法。 数据存储将以二维数组的形式制定。 第一个维度用于存储条件编号(根据需要存储多个条件),而第二个维度将包含在第一维中指定编号条件的所有数据 — 条件源类型(品种、帐户或事件),条件本身(为每个源创建枚举),比较方法(>,<,==,!=,>=,<=),所跟踪属性的引用值,及其当前值。

作者:Artyom Trishkin