一个没有指标的顾问,这可能吗? - 页 3

 
Алексей Тарабанов:

一个危险的误解。

误解是什么?
如果你需要一个历史阵列,就去做吧。如果你不需要它,就不要做它。
就我个人而言,我主要做一个数组,因为我经常使用内部测试等。但我的数组很少与图表中的条数相等。有时少,有时多。
以一个常见的人字形为例。有不到10%的信息数组元素,其余的都是空的,但整个数组是被枚举的。那么,它是否有效率?显然,使用一个较短的带有值和索引的结构数组更为正确。
 

但我的数组很少与图表中的条数相等。有时少,有时多。

让我担心的是,它可能会更大。

 
Nikolai Semko:
首先,谁能阻止你拥有一个内部数据数组,与指标缓冲区一样,并以同样的方式填充它。
第二,为什么顾问需要所有的历史。通常情况下,最后一个,也许是倒数第二个值。而且我们不需要所有这些指标性的东西。

那么在资源方面,在指标中计算和在专家顾问中计算哪个更合理,哪个更快?

 
Алексей Тарабанов:

但我的数组很少与图表中的条数相等。有时少,有时多。

让我担心的是,它可能会更大。

你的担心是徒劳的,阿列克谢。
,可能在某些情况下这是必要的,古吉伦。
比如说。
我主要使用分钟条形数据或点阵,而不考虑TF。
当你的专家顾问每次改变TF时,都要重新计算所有的缓冲指标,这是非常错误和浪费的。我没有这种情况发生在我身上。
因此,如果我是在一个周的时间框架上,我的数组显然会比图表中的条数大得多。
而且我甚至没有说到虱子。
按照惯例,我有几个结构数组和索引数组,以提高工作效率和节省内存。它们的尺寸可能是不同的。
一般来说,当你通过iCustom使用指标时,你在很多方面都受到很大的限制。
你被硬性约束在等于图表中条数的数组大小。如果你有无限站在那里呢?
你只受制于一种类型的替身。而你甚至不能梦想拥有一系列的结构。
这甚至是可笑的,有颜色指示器。每条8个字节显然是太多了。

此外,你只能通过CopyBuffer访问缓冲区,即使你只需要最后一个条形图,也是非常浪费的。在任何情况下,这种操作都比简单的数组元素访问慢得多。

当然,如果你使用标准的内置指标,如iMA,你不必费心。但尽管如此,我认为我们在这里谈论的是自定义指标。我不认为专业人员在实际交易中使用内置指标。


 
VVT:

在节省资源方面,在指标中计算和在EA中计算哪个更快?

我在上一篇文章中部分地回答了。
这是一个很长的问题,最好问一下开发人员,特别是那些负责多线程的人。

我不是这个问题的专家。但我可以分享我的想法。如果我弄错了什么,如果你知道的正确,请纠正我。
如你所知,每个专家顾问都在一个独立的线程中工作,而一个符号的所有指标(即使在不同的图表中)都在一个共同的线程中工作。
因此,我们可以假设,如果符号没有被指标超载,专家顾问的工作和指标缓冲区的计算将并行运行,甚至在不同的CPU核心中运行,如果操作系统调度程序幸运地为你的指标线程找到一个独立的处理器核心。很可能在这样的计划中,你会得到更有效的结果。我不知道为一个指标线程获得一个独立内核的概率有多大,但我认为它不是很高。
,但还有诸如线程上下文切换速度和其他许多多线程互动的微妙因素。我知道与进程相比,线程的上下文切换速度非常高,但它不是免费的。
此外,正如我之前所说,通过CopyBuffer访问指标缓冲区的元素将比通过其索引访问数组元素更昂贵。
此外,优化不必要的计算、 内部数组的大小以及专家顾问内部 的索引的能力为减少资源消耗提供了巨大的潜力。
当然,你将需要实验和适当的测试来给你问题的完整答案。但我还是更倾向于相信,平均表现更好--都是在一个专家顾问线程中。

 
Dmitry Fedoseev:

并在一个周期内每次运行?EMA将更加有趣。

使用单通道算法来计算指数 加权平均值

马=(1-a)*价格+a*马

 
Dmitry Fedoseev:

一个正常的指标只在开始时计算所有的条数,然后再计算一个条数。在该指标中,很容易以这样的方式制作SMA,即使是在计算1个酒吧的时候,也不需要在MA的整个周期中循环。

当然,我们可以在专家顾问中创建阵列缓冲区。但是,如果有一个特别设计的元素--指标,那又是为了什么?

那么问题出在哪里呢?出现了一个新的酒吧--我们考虑了一下。

 
anim:
我想让专家顾问不与一个指标挂钩。它将计算条形图 并在内部采取买/卖信号。这有可能吗?
当然,这是有可能的,如果你把指标的 公式实施到专家顾问 中去的话!
 
Vladimir Mikhailov:

使用单通道算法来计算指数 加权平均值

马=(1-a)*价格+a*马

这是不正确的!

正确的是。

ma[i]=(1-a)*价格+a*ma[i+1]

即我们需要一个数组,其必要深度取决于参数a。

否则,这将是无稽之谈,至少在过渡过程持续的时间内是如此,这可能需要相当长的时间,这取决于参数a

通过比较指标读数和EA中的相应计算结果,很容易检查这一切。
 
Dmitry Fedoseev:

当然,在专家顾问中也可以从数组中制作缓冲区......。但是,为什么,当有一个特别设计的元素--指标?

我有一个关于跳过指标信号的问题,没有人给出建议

https://www.mql5.com/ru/forum/365021

打印结果显示,事件来自于指标,检查新条形,有前一个条形的数据,而不是新条形的数据。

我同时在3个终端进行了测试,两次跳过都是在三个终端中的一个,可能是随机的。

В моих ТС пропуск сигнала
В моих ТС пропуск сигнала
  • 2021.03.16
  • www.mql5.com
Не люблю создавать новые темы, Небольшие исходные данные: Советник работает в OnChatEvent, 7 символов, циклов нет, прямая передача номера за минусо...