错误、漏洞、问题 - 页 2282

 
TaywinLannister:

伙计们,请告诉我如何在mql5中获得前几个柱子的指标值。

在mql 4中,有一个SAVING变量,但mql 5没有这个变量。帮助

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   int       start_pos,            // откуда начнем 
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

而且还有其他的实现方式。就像毡尖笔一样,颜色不同,但味道是一样的。

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
 
如何从指示器颜色缓冲器 中获取颜色?
 
Vladimir Pastushak:
如何从指示器颜色缓冲器 中获取颜色?
每个缓冲区都有自己的编号。而在CopyBuffer函数中,第二个参数是缓冲区编号。但它将不是颜色,而是颜色数组中的一个索引。但我希望,有了它,你就能自己管理。
 
Alexey Viktorov:
每个缓冲区都有自己的编号。而在函数CopyBuffer中,第二个参数是缓冲区编号。但它将不是颜色,而是颜色阵列中的一个索引。但有了它,希望你能自己处理。

我不明白,你能不能说得更具体一点?

#property indicator_color2  clrBlue, clrRed
SetIndexBuffer(1,upper_line_color,INDICATOR_COLOR_INDEX);   

如何从缓冲区获得颜色 upper_line_color ????

 
Vladimir Pastushak:

我不明白,你能说得更具体些吗?

该代码取自指标

#property indicator_buffers   5
#property indicator_plots     1
#property indicator_type1     DRAW_COLOR_BARS
#property indicator_color1    clrDarkViolet, clrCrimson, clrYellow

该系统生成了一个有三种颜色的阵列。(如果我可以这么说,它是一个隐藏的数组,程序员无法进入)。

   SetIndexBuffer(4, colorBufer, INDICATOR_COLOR_INDEX);

指示器缓冲区 4包含颜色阵列中的颜色索引

     colorBufer[j] = open[j] < close[j] ? 0.0 : open[j] > close[j] ? 1.0 : 2.0;

在这里,颜色索引被写入指标缓冲区,系统使用该索引从数组中列出的颜色中选择一个颜色。

因此,在使用了函数

CopyBuffer(indicator_handle, 4, 0, 1, buffer);

我们将收到声明的数组buffer[] 中最后一个条形的颜色索引。


ps;当我在写的时候,增加了一个问题。我希望这样的澄清已经足够了。我不想纠正它。

 
执行过程中出错
void OnStart()
{
    string text1 = "\0ABCDEF",
           text2 = "\0ABC";
    Print(                text1 == text2,        ":",
           StringCompare( text1,   text2 ) == 0, ":", StringLen(text1), ":", StringLen(text2));
}

结果:真:假:7:4

不同长度的琴弦怎么会突然相等呢?而使用StringCompare 进行比较会产生相反的==结果

 
Alexey Viktorov:

该代码取自指标

该系统生成了一个有三种颜色的阵列。(如果我可以这么说的话,一个隐藏的数组,程序员无法进入)。

指示器缓冲区 4包含来自一个颜色阵列的颜色索引

在这里,颜色索引被输入到指示器缓冲区,系统使用该索引从列出并输入到数组的颜色中选择一种颜色。

据此,在使用了函数

我们收到事先声明的数组buffer[]中最后一个条形的颜色索引。


ps;当我在写的时候,问题被加上了。我希望这样的澄清已经足够了。我不想纠正它。

而在缓冲区中复制的不是颜色,而是0,0 1,0 2,0

经测试无效


我的问题说的是颜色,而不是索引,我们在最后一根柱子上 得到的索引是colorBufer[0],不需要所有这些操作......我怎样才能得到颜色名称或颜色本身作为一个颜色?

 
Vladimir Pastushak:

而颜色被复制到缓冲区而不是0.0 1.0 2.0

经测试无效

经测试,它是有效的。

弗拉基米尔-帕斯图沙克

在我的问题中,写的是颜色,而不是索引,我们在最后一栏 得到索引colorBufer[0],而不需要所有这些机器......如何通过颜色类型准确提取颜色名称或颜色本身?

这被称为 "不要追尾"。我马上就告诉你,你只能得到索引。

 
Alexey Viktorov:

检查过了,可以使用。

而这被称为 "不要弯曲你的尾巴"。我直接告诉你,你只会得到索引。

我马上就写好了颜色......谢谢你的回复......

 
Vladimir Pastushak:

我马上就写好了颜色......谢谢你的回复......仔细阅读问题!!。

不管是什么问题,这就是答案。有两种方法可以设置指示灯显示的颜色。使用第二个。