В этом разделе представлены примеры для работы со свойствами графика. Для каждого свойства приведены одна или две законченные функции, которые позволяют задавать/получать значение этого свойства. Эти функции можно использовать в своих MQL4 программах как есть. На рисунке показана графическая панель для наглядной демонстрации того, как изменение...
你没有在开头或其他地方初始化它们,你只是声明了它们
我在使用前写道,即如果你有变量SredRazmax、SredRazmin、Sredn作为数组值的总和,那么为了正确计算总和,你需要将变量归零,然后将数组值相加并保存在该变量中
即
第二,你有一个问题,在指标中,每一个刻度都 会调用OnCalculate() ,这意味着你将在每一个刻度上不断地计算ZigZag的顶部,即大约每秒40-60次。
谢谢,但我试着把它们归零,并试着用OnStart 代替OnCalculate() , 数值仍然在跳动,我不清楚如果ww=0(数组值总是显示),为什么数值会在中间跳动,如何让它不计算每个刻度,只计算数组的数值?
谢谢,但我已经尝试将它们归零,并尝试使用OnStart 而不是OnCalculate( )。
我想我无法解释为什么会这样,问题是OnStart()用于脚本,而OnCalculate()用于指标。 你应该了解MQL中脚本和指标的区别。
我不太清楚你的任务是什么?在代码中,你把整个图表上ZigZag峰值所在的价格加起来,在输出中你写上 "平均价差 "并打印数值(SredRazmax-SredRazmin)/nn,并且对所有条形进行计算。
如果你不使用指标缓冲区 来绘图,为什么需要指标?
我想我无法解释为什么会发生这种情况,关键是OnStart()在脚本中使用,而OnCalculate()在指标中使用,你需要了解脚本与MQL中的指标有何不同。
我不太清楚你的任务是什么?在代码中,你把整个图表上ZigZag峰值所在的价格加起来,在输出中你写上 "平均价差 "并打印数值(SredRazmax-SredRazmin)/nn,并且对所有条形进行计算。
如果你不使用指标缓冲区 来绘图,为什么需要一个指标? 在指标中,缓冲区被附加到条形图上,一旦有新的条形图出现,它们的值就会移动。
说实话,我简化了这个问题(原始公式看起来有点不同),我想我能够理解为什么当数组中的零值保持不变时,平均数的数值会跳动。我有两个循环,一个用于填充数组,另一个用于计算平均数,有一个nn的限制,实际上我想输出一个图形--这是一个标准的之字形,但iCustom在画地狱,平均...从零节点开始,如果它比前一个节点大,就减去前一个节点,从前一个节点减去前一个节点(它将是减号,所以应该乘以减1),所有这些应该相加并除以给定数量的nn。我们得到顶点的平均跨度。进一步说,我想得到 "之 "字形的其他平均数,但我被 "跳跃 "的数值所困。
这大致上是最初的情况。
说实话,我只是简化了这个问题(原来的公式看起来有点不同),我想我可以理解为什么平均数的值会跳跃,如果数组中的零值保持不变。我有两个循环,一个用于填充数组,另一个用于计算平均数,有一个nn的限制,实际上我也想输出一个图形--这是一个标准的之字形,但iCustom画得很好,平均...从零节点开始,如果它比前一个节点大,就减去前一个节点,从前一个节点减去前一个节点(它将是减号,所以应该乘以减1),所有这些应该加起来,除以给定的nn节点数。我们得到顶点的平均跨度。进一步说,我想得到 "之 "字形的其他平均数,但我被 "跳跃 "的数值所困。
这大约是它最初的样子。
我不太明白,现在很晚了,我很困,我按照我看到的情况进行了调整,我对指标在零条上的表现有疑问(我没有检查),但它按照你的公式绘制和显示评论
你能帮助我解决这样的问题吗?(如果可能的话。)
专家顾问在某些条件下会发出警报。有没有可能让触发警报的窗口也变得活跃起来?
你能帮助我解决这样的问题吗?(如果可能的话。)
专家顾问在某些条件下会发出警报。有没有可能让触发警报的窗口也变得活跃起来?
我对该指标在零条上的表现有些怀疑(我没有检查),但它确实在绘制并使用你的公式来输出评论。
是的,谢谢你的时间,它工作了,我一定是做错了什么。但它在注释中没有输出数组(应该只有顶点,对吗?),而且减号和数的计算也不对......,之字形的顶点之间有不同的分布。我们的想法是,从最后一个较大的顶点(刚刚形成)中减去前一个较小的顶点,从前一个较小的顶点中甚至减去较大的顶点,这个数字将是带减号的,我们将其乘以(-1),以此类推,所有这些加起来是n次,除以n次,我们得到平均离开。大约在4个手表上,这将是美元指数的1.69(从到)。此外,我想计算顶部之间的平均条数。我现在将尝试理解你的代码,我做错了什么,为什么没有画出来,为什么没有正确计算......
是的,谢谢你的时间,它确实有效,我一定是做错了什么。但它没有输出注释中的数组(它应该只有顶点,对吗?),而且用减法和数法算错了......,人字形的顶点之间有不同的分布。我们的想法是,从最后一个较大的顶点(刚刚形成)中减去前一个较小的顶点,从前一个较小的顶点中甚至减去较大的顶点,这个数字将是带减号的,我们将其乘以(-1),以此类推,所有这些加起来是n次,除以n次,我们得到平均离开。大约在4个手表上,这将是美元指数的1.69(从到)。此外,我想计算顶部之间的平均条数。我现在将尝试理解你的代码,我做错了什么,为什么没有画出来,为什么没有正确计算......
注释中的顶点不会输出,因为指标缓冲区HZZ[]包含复制的指标缓冲区ZigZag的值,否则我们将无法绘制,我特意将顶点检测分成上下两个条件。
如果你需要知道ZZ的几个顶点,那么你必须创建另一个数组来存储这些数据。 新的指标缓冲区将使其复杂化,因为当一个新条形出现时,与指标缓冲区相连的所有数组将与图表一起 "滑动"。
ZS:代码是我的例子,我认为它需要循环到第一条,而不是到0,将不断重新计算SredRazmax的值,我现在不能检查,在PC上没有终端。
注释中的顶点不会输出,因为指标缓冲区HZZ[]包含复制的指标缓冲区ZigZag的值,否则我们将无法绘制,我特意将顶点检测分成上下两个条件。
如果你需要知道ZZ的几个顶点,那么你必须创建另一个数组来存储这些数据。 新的指标缓冲区将使其复杂化,因为所有连接到指标缓冲区的数组都与图表一起 "滑动"。
ZS:这个代码是我的例子,我认为需要循环到第1条,而不是0,会不断重新计算SredRazmax的值,我现在不能检查,在PC上没有终端。