MQL5中的初学者问题。专业人士不会路过。 - 页 6

 
_o0O:

特别是没有任何,因此,只欢迎任何问题。

帮助没有包含这种细微差别。DRAW_NONE无论是#属性还是PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE)都不起作用,PlotIndexSetString(0, PLOT_LABEL, "Buff")也不起作用,那么指定clrNONE来实现这一目标的逻辑是什么?

另外,不是每个人都能读懂语言文档。

呈现的代码有一切可以检查和理解的内容。

 
Alexey Viktorov:

另外,不是每个人都知道如何阅读语言文档。

所提供的代码有你需要检查和理解的一切。

你想谈谈吗?

好的。请告诉我在帮助中哪个地方有解决我问题的方法。而你的代码是一个拐杖,没有记录的功能,因为指定clrNONE不渲染缓冲区看起来是妄想。

 
Alexey Viktorov:

你不需要放DRAV_NONE类型,而是放clr_NONE 颜色。

以下是测试代码

解释一下。

limit = rates_total-prev_calculated; // Это тупо для примера. В нормальном индикаторе так делать нельзя!

为什么你不能?为什么用红色加感叹号?

 
_o0O:

如何使某些指标的缓冲区不在 图表上绘制,而在指标的"数据 窗口 "中显示其数值?

我是这样做的。


但指标仍在画一个缓冲区。

你可以在这里看到一个例子。

3TF_RSI_Average
3TF_RSI_Average
  • www.mql5.com
Индикатор Three timeframes RSI Average - отображает в отдельном окне три индикатора Relative Strength Index с заданных таймфреймов и их среднее значение. Имеет десять настраиваемых параметров: RSI period - период расчёта RSIOverbought - уровень перекупленностиOversold - уровень перепроданностиDrawing mode - режим рисованияFirst RSI timeframe...
 
Artyom Trishkin:

你可以在这里看到一个例子。

不,不是这样的。

在你的例子中,4个缓冲区被画出,4个在数据窗口 中。需要的是它们不被画出,而是在数据窗口中并有一个给定的名称。

 
_o0O:

不,不是这样的。

在你的例子中,4个缓冲区被画出来,4个在数据窗口 中。 需要的是它们没有被画出来,而是在数据窗口中,并有一个给定的名称。

如果你专心致志地看呢?有一个禁用显示四个缓冲区中的三个--一个一个地显示。但当你在数据窗口中关闭它们时,它们会继续显示,并以编程方式给出名称--一切都按你的要求进行。还是我误解了这个问题?

 
Artyom Trishkin:

仔细看一下怎么样?有一个选项可以禁止显示四个缓冲区中的三个--一次一个。但是,当你关闭它们时,它们仍然显示在数据窗口中,并带有编程的名称--正如你要求的那样。还是我误解了这个问题?

是的,我看到那里

PlotIndexSetInteger(0,PLOT_DRAW_TYPE,InpShowRSI1)。

InpShowRSI1取值为0或1,这就是它的工作原理。

但我指定了PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE);而它却没有发挥作用

 
_o0O:

是的,我可以看到那里

PlotIndexSetInteger(0,PLOT_DRAW_TYPE,InpShowRSI1)。

InpShowRSI1取值为0或1,这就是它的工作原理。

但我指定了PlotIndexSetInteger(0,PLOT_DRAW_TYPE, DRAW_NONE);但它没有发挥作用

DRAW_NONE == 0

DRAW_LINE == 1

所以你在某个地方有别的东西。从理论上讲,它也应该对你有用。

 
Artyom Trishkin:

解释一下。

为什么你不能?为什么用红色加感叹号?

如果指标计算多个条形,这样的实现将飞出数组。因此,你必须在每一种情况下都绷紧你的头部肌肉...
 
Alexey Viktorov:
如果该指标将计算几个条形,这样的实现将飞到数组之外。因此,在每一种情况下,我们都必须使我们的头部肌肉紧张。

不,你不必如此。一切都在极限>1时进行一次,这是第一次运行和历史加载。如果你有平滑期_sm=10,那么在这种情况下,限制应该减少10。因此。

if(limit>1)
  {
   limit=rates_total-period_sm-1;
   ArrayInitialize(Buffer,InitValue);
  }

InitValue - 初始化缓冲区的值 - 0或EMPTY_VALUE - 根据情况。或者是-100500 ...