移动平均线(和任何其他指标)和误差的比较 - 页 4

 
gammaray:
当然感谢你的建议,但我可以自己阅读《帮助》。我再说一遍,计算数学并不与某种特定的编程语言相联系。只是我必须处理的计算错误,这一点你会通过的。

如果你不仅能读懂《帮助》,还能理解它,那么你就是在故意蛊惑人心,顽固地继续以轻视的精神谈论正常化及其潜在应用。包括故意对其应用的危险性进行妖言惑众。

gammaray:

而且我不是在耍小聪明,而是在举反例(包括对你心爱的归一化)。

蛊惑人心的东西就在那里。没有关于规范化的反例。

除了有人会错误地应用它之外。

因此,epsilons的应用可能是不正确的。是的,而且已经提到了蛊惑人心的问题。


P./S.: 这篇文章是关于正常化的,所以我没有提到移动平均线

而且我认为Artem在使用MAs的EA方面可以比我在那些困难的EA方面更能帮助你。

 
Artyom Trishkin:
在每一个刻度上寻找交叉点。有什么问题呢?
因为我的TOR是不同的)再者,我已经写过关于虱子的问题。如果客户没有在图表上看到交叉点,你就没有办法向他解释为什么机器人会进入交易。
 
Andrey Dik:

在比较两个实数时,没有必要对任何东西进行归一化。

如果数字真的相等,它们就会被平等地储存在内存中。实际上,正是因为这一属性,计算机才得以存在。

因此,if(a<b)或if(a==b)形式的比较在任何情况下都是正确的,不需要进行规范化。

如果研究人员的好奇心发现与这一规则相矛盾,这意味着要么他的机器出了问题,要么他的头脑出了问题。两者中的一个。

帮助和文档当然至少应该有时阅读(它们也是由像我们这样的人类写的),但有必要有自己的理智推理。

我绝对同意!这正是我重新修订的内容,出于同样的原因引入了一个非严格的不等式
 
Dina Paches:

如果你不仅能读懂《帮助》,还能理解它,那么你就是在故意蛊惑人心,顽固地继续以轻视的精神谈论正常化及其潜在应用。包括故意对其应用的危险性进行妖言惑众。

蛊惑人心的东西就在那里。没有关于规范化的反例。

不包括有人可能没有正确地使用它的事实。

因此,epsilons的应用可能是不正确的。而蛊惑人心的事情已经提到过了。

已经有了反例(至少在差异的正常化方面也是如此,正如这里所表达的)。我再说一遍:对于那些不想钻研细枝末节的人来说,正常化是最简单的方法。他读过文件,虔诚地相信这一切。我再次重申,计算数学中的编程语言是不相关的。如果在帮助中是这样写的,那并不意味着它是真的(否则就不会有你不喜欢的计算数学和ε问题)。栅栏上也写了很多,但这并不意味着它是最后的真相。你对Halp选项感到满意,你有权利这样做。但这是你的个人选择。而且这并不意味着它解决了我在这里一直想说清楚的所有问题。而把你根本不想理解的东西视为蛊惑人心(同样,你的权利),并不意味着它本身就是蛊惑人心的。我不是在问关于生命意义的修辞问题(其答案只是蛊惑人心),我只是想了解一些我还没有遇到的事情。还是那句话,假设每当你计算这些数值时,这些数值总是相同的。在那里你可以从同样的计算数学中得到一些东西。但是,当价值也不同时,你将无法提出一个通用的算法,即使你是一个巨型的大师。

此外,我只想确认我的理解,即如果机器人不按ticks工作,在一个柱子内获得多个交叉点基本上是不可能的。这已经可以纯粹归功于mql的错综复杂。

P.S. 我不是要和别人无端争论,我不认为我一直是个正确的天才。我只是不喜欢人们试图自作聪明,甚至不看就写东西。这与你个人没有关系。谢谢你的帮助和你对这个问题的想法。但是,IMHO认为,当你在文件中坚持只有一个观点(你全心全意地相信,不接受任何其他观点和例子),而ε不符合你的胃口时,写一些关于耐心的东西是错误的。我希望Artyom也能理解我在这之前的手稿中所写的内容。谢谢大家的答复,如果我在某个地方变得有点暴躁,请原谅我。

P.P.S. 归一化到某个小数位,实际上类似于引入ε,只是符号的顺序相同。

P.P.P.S.如果我们有如此激烈的讨论,我将非常感谢你分享你在这个 话题上的经验,因为适当的答案(特别是关于困扰我的2和3项),事实上,并没有得到。虽然搜罗了许多论坛,但几乎得出的结论是,是的,2分是不可能的。mql的开发者可以考虑这个问题,并提供更多的灵活性,因为这非常不方便(在任何其他编程语言中都有动态改变程序界面的能力,而在这里,事实证明没有(()))。

 
gammaray:

有一些反例(至少在差异的正常化方面,正如这里所表达的)。我再说一遍:对于那些不想钻研复杂问题的人来说,规范化是最简单的方法。他读过文件,虔诚地相信这一切。我再次重申,计算数学中的编程语言是不相关的。如果在帮助中是这样写的,那并不意味着它是真的(否则就不会有你不喜欢的计算数学和ε问题)。栅栏上也写了很多,但这并不意味着它是最后的真相。你对Halp选项感到满意,你有权利这样做。但这是你的个人选择。而且这并不意味着它解决了我在这里一直想说清楚的所有问题。而把你根本不想理解的东西视为蛊惑人心(同样,你的权利),并不意味着它本身就是蛊惑人心的。我不是在问关于生命意义的修辞问题(其答案只是蛊惑人心),我只是想了解一些我还没有遇到的事情。还是那句话,假设每当你计算这些数值时,这些数值总是相同的。在那里你可以从同样的计算数学中得到一些东西。但是,当价值也不同时,你将无法提出一个通用的算法,即使你是一个巨型的大师。

此外,我只想确认我的理解,即如果机器人不按ticks工作,在一个柱子内获得多个交叉点基本上是不可能的。这已经可以纯粹归功于mql的错综复杂。

P.S. 我不是要和别人无端争论,我不认为我一直是个正确的天才。我只是不喜欢人们试图自作聪明,甚至不看就写东西。这与你个人没有关系。谢谢你的帮助和你对这个问题的想法。但是,IMHO认为,当你在文件中坚持只有一个观点(你全心全意地相信,不接受任何其他观点和例子),而ε不符合你的要求时,写一些关于耐心的东西是错误的。我希望Artyom也能理解我在这之前的手稿中所写的内容。谢谢大家的答复,如果我在某个地方变得有点暴躁,请原谅我。

P.P.S. 归一化到某个小数位,实际上类似于引入ε,只是符号的顺序相同。

P.P.P.S.如果我们有如此激烈的讨论,我将非常感谢你分享你在这个 话题上的经验,因为适当的答案(特别是关于困扰我的2和3项),事实上,并没有得到。虽然搜罗了许多论坛,但几乎得出的结论是,是的,2分是不可能的。mql的开发者可以考虑到这一点,并提供更多的灵活性,因为这很不舒服(在任何其他编程语言中都有动态改变程序界面的能力,而在这里却发现没有(()))。



对我来说,在比较双数 时使用NormalizeDouble 函数进行数据转换是文档中规定的两种方法之一,当在代码中编写特定条件时,要让程序条件在准确的位置和方式下运行。 这就是我之前说的。因 此,它不仅是对任何错误的消除。这也是改造数据以满足任何条件的各种周到的方法。

我已经告诉过你,并且正在告诉你,基于我个人在你刚开始学习的编程语言方面的实践经验。出于这个原因,并在这个主题中反复建议,要使用这样一种实用的方式

顺便说一下,我同意你的观点,我不会质疑用这个函数进行归一化可能是任何真实类型数据转换任务的最简单方法。


但是,在转换真实类型的数据时,应该由大家来决定使用文档中推荐的两种方法中的哪一种。

而选择这些方式中的任何一种,都不能决定一个人是否是那种试图弄清任何必要的微妙的人。


我不喜欢epsilons,这不是我说的。不应用任何方法不一定是爱/不喜欢。我也没有坚持只适用两者中的第二种方式。

我的字面意思是说,在实际应用中,与双数类型的数字打交道的特殊性,

P./S.: 碰巧的是,文件中的第一种方法对我来说不太方便,包括基于任务的方法,通常我都是自己解决。因此,我对第一种方式没有很多经验。

但当应用第二种方式(即比较两个实数的归一化差值与条件运算符表达式中的零值)时,任何问题都没有明确地出现。

但是,如果我做了一个非标准化数字的比较(这里我的意思是,也没有使用第一种方式),那么是的,我发现在比较双倍 类型的数字的基础上,条件的工作是不正确的。

此外,我也做了这样的澄清

P./S.: 说到这里,为了以防万一,我将再次澄清,用这里列出的两种 方法中的 第一种方法比较实数,通过比较一些小数值的数字之差,我不能说 比使用归一化更糟 ,当你需要调整比较的水平时(包括,因为对我来说第二种方法更方便,我没有为自己考虑更详细的实际应用)。

也就是说,在转换 双倍数据 时的规范化方面,我就是不需要第一种方式。特别是由于我在使用NormalizeDouble 函数解决各种 问题时的便利性(而不仅仅是在比较中)。



这个网站有一个巨大的累积知识库。

人们已经和正在使用MQL4解决各种不同复杂性的任务。

在MQL4向MQL5靠拢后,第一种的可能性就更大了。

我认为你应该更好地熟悉这种编程语言,不要忽视这里的网站上积累的知识库。在使用中获得实际经验。只有这样,你才能在这种编程语言的任何应用和它的能力方面自信地说出一些话。

 
gammaray:
我有一个不同的ToR)再者,我已经写过关于蜱虫的问题。如果客户没有看到图表上的交叉点,你就没有办法向他解释为什么机器人会进入交易。

在每个tick上获取零点和第一条的MA值--然后,也只有这样,你才能在零点上找到MA值的交叉点。你从零条开盘时 的第一个条形图中提取--那里的MA值是在第一个条形图关闭时出现的,而不是在它形成时。你只是晚读了МАшек的价值观,因此没有看到它们的交叉。正常化与此没有关系。顺便说一下,如果MAs显示的是价格值,那么这些值应该被规范化为_位,而不是猜测需要规范化为什么值......

 
亲爱的论坛成员。请不要在这个论坛上开始争吵。只有在这个主题上。
 
Karputov Vladimir:
亲爱的论坛参与者。请不要在论坛上建立争吵。仅就该主题而言。

我认为这个话题可以结束了。这些声明的作者(而不是主题)没有达成共识。有一些孤立的沙文主义的时刻,这是不受欢迎的。

但是,无论是谁都没有能够证明他们的情况。这就是为什么我关闭了这个话题。进一步的讨论可能会受到惩罚(最多每天禁止)。

虽然如果有会给正常的证据,也是欢迎的。

评委将是我和沃洛佳。

这一点没有讨论。

 
好的。准备听一听版主的指责(我对其他的指责者不屑一顾****)。我希望版主对这些信息有一个逐步的分解。
 

我在这里没有看到所有这些,所以我不知道在这个话题内有什么论点。但是,由于我想这是为了证明我的立场,这与Artem在这篇文章中 的立场相似(以及在这一主题的早期),我将给出下面的一个例子,与在处理实数类型的数字时是否应该以这种或那种方式应用规范化有关。

附有屏幕截图和测试代码的变体。

Artyom在上面的帖子中写道。

И, кстати, раз МА показывают значения цены, то и нормализовать значения нужно до _Digits, а не гадать до какого же значения нормализация нужна...

由于我也相信(正如我认为许多其他人所做的那样),在最常见的 问题方向上,这是一个简单而有效的方法,我将只做这个我自己的小补充。

用小数点后多少位来显示线MA,或只是进行基于任何小数位的计算(同样的比较),用这么多小数位和归一化(四舍五入到某个小数位)。

/*对于一些单独的任务,可能会有 "例外",你可以通过变化来获得所需的结果,例如,将一个小数点后较低的数值,与一个小数点后较高的数值相比较。但是,如果手头的任务需要这样做,那么在我看来,可以很好地建议,如果有必要,就像上面的方法一样, 打印出获得的数值,并将获得的数值与图表上的视觉显示效果进行比较。

如果我们需要将双倍类型的值输出为文本(通过打印、注释、OBJ_LABEL等),那么我们应该使用DoubleToString,因为我们要将数字转换成文本。


现在,从介绍性的解释到清晰的说明。



在截图中。

  • 图表上显示了从标准交付到终端的两个MAs的线条。
  • 两个小段的MA,设置相同,但比图表的小数位数少一个小数位(使用应用iMA 功能的指标绘制,如果有的话,这个指标在Kodobase 中是可用的)
  • 该指标的表格:有MA值、MA值之间的deltas和MA本身(MA本身之间的deltas--表格最后一行的下方)。
  • 终端的 "数据窗口 "有来自标准集和上述指标的MA值。
  • 你可以看到,交易终端的 "专家 "日志显示了测试脚本的数据,其代码附在下面。

测试脚本的数据是使用iMA函数获得的MA值(使用文档中描述的实数类型工作的函数进行转换和不进行转换)。

在数据窗口和图表中,你可以看到小数点后一位的线条在图表的第三个条形图(不包括当前条形图)上的数值已经相等。你也可以看到,从标准集到终端的MA值,画在图表的小数位上,是不相等的,从视觉上看,它们在图表上已经稍稍提前相等了。

也就是说,如果你放大截图或使用所附的测试脚本或自己的代码进行自己的实验,你会看到MA线,其小数点位数与图表中的小数点位数一样,会提前一点交叉。


这也是可以理解的。以此类推,在三位数的图表上,带小数的线比带两位数报价的线要少一个。它允许在 "旧 "的时间点上看到它们,当时终端中的三位或五位数的报价并不宽泛,同时,在交易中具有扩展的小数报价的优势(包括更窄的价差)。

也就是说,基于小数点后数位数较少的数值的线条有较少的 "噪音"。

但如果不采用四舍五入(在这种情况下,使用归一化功能),一个明显局限于特定小数位的数字就会出现更多问题。

或者,如果只是在数字上。

123.4561和123.4556不相等。而他们的差异并不是零。

然而,如果你把它们四舍五入,第一个和第二个数字,都将是相同的,等于123.456。因此,它们之间的差异将是0。

根据要执行的任务,由小数点后四舍五入得出的数值。


在 "专家 "日志的截图中,你可以看到使用iMA输出的MA值,其中有文件中描述的转换,以及没有转换的结果值。测试脚本中的MA设置等同于图表中的指标设置。

在第二张截图中,你可以看到两个MA值之间的deltas,有和没有转换。

下面,正如我提到的,是一个小的测试代码。它没有被优化,但允许用MA值做各种实验,包括改变一些参数。

其中的条数是在这一行中设置的。

#define  ARRAY_SIZE 9



P./S.: 我已经替换了所附的测试脚本。我的帖子里有错误的变体。错了。对不起。

之前附上的截图不是必须的,所以我保持不变。

附加的文件:
test_1.mq4  5 kb