下载MetaTrader 5
要添加评论,请登录注册
您知道MQL5有结构吗?
MetaQuotes Software Corp.
版主
177446
MetaQuotes Software Corp. 2016.02.25 14:58 

新文章 将指标代码转移至 Expert Advisor 代码。指标结构已发布:

本 文详细介绍将指标代码转移至 Expert Advisor 代码的方式,并详细介绍编写 Expert Advisor 的过程,在此过程中,不调用任何自定义指标,且整个程序代码用于计算 Expert Advisor 中的必要指标值。本文介绍了指标结构的总体方案、Expert Advisor 中指标缓冲区的模拟以及函数 IndicatorCounted() 的替代项。本文面向拥有使用 MQL4 语言进行编程的经验的读者。

为了更好地理解作者的意图,推荐阅读以下材料:

  1. MetaQuotes Software Corp. 创建自定义指标的特点 (Features of Custom Indicators Creation)。https://www.mql5.com/zh/articles/1497
  2. Nikolay Kositsin.在一些指标中多次重新计算空柱 (Multiple Null Bar Re-Count in Some Indicators)。https://www.mql5.com/zh/articles/1411

在讨论本文标题中指示的主题之前,我们最好还是先来看看以下问题:“如果在大多数情况下,使用自定义指标运行的 EA 看起来比其他类似程序更简单易用,自定义指标自身的代码中包含了执行操作的所有必要项目,那么为什么我们还要将指标代码转移到 EA 代码中?特别是我们还考虑到一个事实,即如果代码编写正确,两种情况下的结果将完全相同!”

我认为,在两种情况下这种转移是必要的:

  1. 如果在 EA 计算中,根本没有用到在零柱上计算出的值,我们自然会想要忽略在零柱和第一根柱上的不必要的重新计算。这可将此类 EA 优化所需的时间缩短三倍,对于非常复杂并要占用大量资源的代码来说是相当有用的!
  2. Expert Advisor 用作商业用途时可最大程度防止代码被反编译。

在第二种情况下,显而易见,代码转移是相当合理的。在第一种情况下,大多数时候重新编写自定义指标的代码是很轻松的,无需进行不必要的计算!此类指标自然仅适用于 Expert Advisor,不适用于交易!那么,让我们从此类问题解决方案着手,开始讨论吧。

作者:Nikolay Kositsin

/
要添加评论,请登录注册