来自一个 "傻瓜 "的问题 - 页 267

 

谁能检查一下指标中的绘图限制是否有效?

PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,r+s-1);

已经从这里 下载了现成的指标,还在为整个故事画图。

更新我已经想明白了。它应该被放在OnCalculate中,并设置足够的值(rate_total-n)。

 
pavelrev:

在工作日,当有报价的时候,也是如此。

有时它滑过,显示你需要的东西,但当你改变TF或得到一个新的报价时,它又开始胡说八道。

好吧,如果没有人意识到这一点,请给文章的作者写信(在评论中),如果他没有回应--给服务台。
 

我想画一个多货币指标的模板。

我已经声明了缓冲区,初始化了它们(EMPTY_VALUE),从哪里提取...。我已经做了一切。在OnInit中。在OnCalculate中--什么都没有。

我运行它,在图表的不同部分的指标窗口中得到垃圾。

有什么问题吗?

还有一件事。当我改变f_comment函数中的参数并重新编译时,注释并没有改变,只有在我删除并将指标重新放到图表上之后,这些改变才会生效。可以吗?

ps重新上传了文件

附加的文件:
 
Silent:

我想画一个多货币指标的模板。

我声明了缓冲区,初始化了(EMPTY_VALUE),从哪里画?我已经做了一切。在OnInit中。在OnCalculate中--什么都没有。

运行它--我在图表的不同部分的指标窗口中得到垃圾。

有什么问题吗?

当我运行这段代码时,我没有看到任何垃圾。尝试从图表中删除指标的所有副本,然后重新加载它们。
 
tol64:
当我运行这段代码时,我没有看到任何垃圾。尝试从图表中删除指标的所有副本,然后再次将它们加载到图表中。
点击时间框架,它并不总是出现,也不是在所有的时间框架上。
 

我已经坐了一个星期了,我把所有的东西都扔掉了,只留下了空数组,但它还是会定期从空缓冲区抽水......。它仍然周期性地在空缓冲区内画图...

 
Silent:

我已经用它工作了一个星期,我抛弃了所有的东西,只留下空的数组,但它还是偶尔从空的缓冲区中提取......。真是一派胡言。

点击了一下时间框架。起初,垃圾出来了。然后它就消失了,不再播放了。

可能是一种难以捕捉的微生物。))但这并不是一个问题。你可以(也应该)只是保持更严格的控制(以防万一)。在计算指标缓冲区 的数值时,不会出现问题。而在值应该是空的地方,只要为某个数组元素重新指定一个已经是空的值。

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Silent:

我已经坐了一个星期了,我把所有的东西都扔掉了,只留下了空数组,但它还是会定期从空缓冲区抽水......。它仍然周期性地在空缓冲区内画图......

发现一个错误。

   SetIndexBuffer(0,USDBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,EURBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,GBPBuffer,INDICATOR_DATA);
   SetIndexBuffer(0,xUSDBuffer,INDICATOR_CALCULATIONS); // 3
   SetIndexBuffer(1,xEURBuffer,INDICATOR_CALCULATIONS); // 4
   SetIndexBuffer(2,xGBPBuffer,INDICATOR_CALCULATIONS); // 5
但在编辑前后,我没有看到任何垃圾。 只是一个空的窗口。
 
tol64:

点击了一下时间框架。起初,垃圾出来了。然后它就消失了,不再播放了。

可能是一种难以捕捉的微生物。))但这并不是一个问题。你可以(也应该)只是保持更严格的控制(以防万一)。在计算指标缓冲区 的数值时,不会出现问题。如果值应该是空的,只需为特定的数组元素重新指定一个空值即可。

Heh...我必须确定它在哪里,是在 INDICATOR_DATA 还是在 INDICATOR_CALCULATIONS 中。

诀窍是,在删除指标后,再把它放在图表上,垃圾就会被画在原来的地方。这也是一种技巧。

控制,这是可以理解的。如果它开始说谎,我还是会从视觉上看到它。但当我调用一些指示时,我是否必须重新计算其数值?

这有点歪了...

MetaDriver

发现一个错误。

但在编辑前后,我没有看到任何垃圾。 只是一个空白的窗口。

谢谢,我在复制的时候错过了。

垃圾出现了,不稳定,不是在所有的TF上(或超出范围,我必须看左边的图表),但它是存在的。

更新它在这里仍然可见,应该是0.000000 0.000000...到处都是


 
Silent:

我已经坐了一个星期了,我把所有的东西都扔掉了,只留下了空数组,但它还是会定期从空缓冲区抽水......。它仍然周期性地在空缓冲区内画图......

不确定,但这可能是原因。

从帮助。

用表达式 ArrayInitialize(array, init_val) 初始化一个数组 并不意味着用相同的值初始化为这个数组分配的储备元素 。随后 在当前保留区用ArrayResize()调整 数组的大小时 会在数组的末尾增加一些元素,这些元素的值是未定义的,而且往往不等于 init_val