在我们定义好我们的策略, 并在智能交易系统中将之实现之后, 我们会面对两个可令我们的努力付诸流水的问题。

打开网易新闻 查看精彩图片

  • 最合适的输入值是什么?
  • 这些值的可靠性能保持多久?何时我们需要进行再次优化?

除了预定义参数 (品种, 时间帧, 等等) 之外, 还有其它 (可编辑) 设置: 指标计算周期, 买卖级别, 止盈/止损级别, 等等。这些在 EA 使用时都可能导致一些问题。

是否有可能开发一款能够根据定义的间隔来优化开仓和平仓条件的智能交易系统?

如果我们以模块化的形式实现一个神经网络 (NN) 来分析历史并提供策略, 会发生什么?是否有可能令 EA 每月(每周, 每天或每小时) 进行神经网络优化, 然后继续其工作?因此, 开发一款自我优化 EA 的想法降临了。

这并非首次在交易社区中提及 "MQL 和神经网络" 的话题。然而, 大多情况是讨论如何降低使用外部神经网络来获取数据 (有时手工), 或是通过 МetaTrader 4/МetaTrader 5 的优化器来进行优化。最后, EA 的输入被替换为网络, 譬如, 就像 这篇 文章。

在这篇文章中, 我们不会描述交易机器人。代之, 我们将会开发并实现 (模块化) 一个 EA 布局, 以 MQL5 开发并使用 ALGLIB 库的多层感知器 (MLP) 来执行上述算法。之后, 神经网络将尝试解决两个数学任务, 其结果可轻易地采用不同算法来检验。这将有助于我们根据其内部结构分析 MLP 计划的方案和任务, 并通过简单地更改数据输入模块来获得实现 EA 的准则。此布局应可解决自我优化问题。

我们假定读者熟悉神经网络的一般理论, 包括它们的结构和组织形式, 层数, 每层的神经元数量, 连接和权重, 等等。任何情况下, 必要的信息均可在相关文章中找到。

1. 基本算法

  1. 1. 创建一个神经网络。
  2. 2. 准备输入 (及相应的输出), 下载数据到数组。
  3. 3. 在指定范围内规范化数据 (通常, [0, 1] 或 [-1, 1])。
  4. 4. 训练并优化神经网络。
  5. 5. 计算网络预测, 并依据 EA 策略来应用它。
  6. 6. 自我优化: 返回第二步并在 OnTimer() 函数里包含重复迭代过程。

机器人将根据用户指定的时间段和描述的算法执行定期优化。用户无需为它担心。步骤 5 不包括在重复处理中。即使在优化期间, EA 始终具有预测值。我们看看这是怎么回事。

关注作者 华君量化团队公众号 (huajunea) 更多内容 优秀EA软件开发工程师 下载免费EA自动化软件 在 华君量化团队

华君量化团队从2015年至今研发的EA(智能化程序交易系统)是领先的外汇智能化交易研究团队。专注于金融衍生品技术服务领域 .华君量化团队-致力于开发优秀的外汇EA软件 (huajunea)