[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 192

 

请给我一个提示。我不明白为什么MathMax 不起作用。

简化版的代码(再简单不过了)也不起作用。变量GBPUSD_High 不起作用 :-( 而GBPUSD_Low 工作正常。

P.S. 我只对指标加载时的条形图上的数值感兴趣。

//+-------------------------------------------------------------------
#属性 indicator_separate_window
#属性 indicator_buffers3
# 属性 indicator_color1 Black
# 属性 indicator_color2 Gray
# 属性 indicator_color3 Gray
//--------------------------------------------------------------------
double GBPUSD[], GBPUSD_High[], GBPUSD_Low[];
//
int init()
{
//--------------------------------------------------------------------

SetIndexBuffer(0
,GBPUSD);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2
);
SetIndexBuffer(1
,GBPUSD_High);
SetIndexStyle(1,DRAW_LINE,STYLE_DOT,1
) ;
SetIndexBuffer(2
,GBPUSD_Low);
SetIndexStyle(2,DRAW_LINE,STYLE_DOT,1);
//--------------------------------------------------------------------

return;
}
//--------------------------------------------------------------------

int start()
{

int Counted_bars, i;
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted() ;
i=Bars-Counted_bars-1;

while
(i>=0)
{
GBPUSD[i]=Close[i];

if (GBPUSD_Low[i]==0) GBPUSD_Low[i]=GBPUSD[i];
GBPUSD_High[i]=MathMax(GBPUSD_High[i],GBPUSD[i]);
GBPUSD_Low[i]=MathMin(GBPUSD_Low[i), GBPUSD[i);
i--;
}
//
return;
}//--------------------------------------------------------------------

要加载,当然要加载到GBPUSD。

 
alderru >> :

请给我一个提示。我不明白为什么MathMax 不起作用。

简化版的代码(再简单不过了)也不起作用。变量GBPUSD_High 不起作用 :-( 而GBPUSD_Low 工作正常。

P.S. 我只对指标加载瞬间的柱状图的数值感兴趣。

当然,我必须把它加载到GBPUSD。

MathMax 与此毫无关系。变体。

while ( i>=0)
{
GBPUSD[ i]=Close[ i];
GBPUSD_High[ i]=High  [ i];
GBPUSD_Low[ i]=Low[ i];

//if (GBPUSD_Low[i]==0) GBPUSD_Low[i]=GBPUSD[i];

GBPUSD_High[ i]=MathMax( GBPUSD_High[ i], GBPUSD[ i]);
GBPUSD_Low[ i]=MathMin( GBPUSD_Low[ i], GBPUSD[ i]);
i--;
}
 
tmp.0 >> :

>>MathMax 与此无关。

正是如此!所以很明显,High总是大于或等于Close,MathMin也是如此;)

 
OneDepo писал(а)>>

正是如此!所以很明显,High总是大于或等于Close,MathMin也是如此;)

作为一个例子,我特意 给出了已经知道的 数值的计算。在原文中,我正在寻找一个完全不同的变量的条形图上的最大值和最小值。当指标被画出时,当然是在形成 条形图的同时重新画出变量的曲线。我正在寻找边界点。

我不明白为什么MathMax 函数自己不工作。MathMin 工作良好;GBPUSD_Low的曲线被画出...

在编程语法 方面,你有什么意见吗?

请安装该指标,告诉我哪里出了问题,为什么GBPUSD_High没有被计算。

 
alderru >> :

作为一个例子,我特意 给出了已经知道的 数值的计算。在原文中,我寻找的是一个完全不同的变量的条形图上的最大值和最小值。当指标显示时,变量的曲线被重新绘制,当然是在条形图形成 期间。我正在寻找边界点。

我不明白为什么MathMax 函数本身不能工作。

从编程图形的 角度,你有什么意见吗?

安装该指标,并告诉我这里有什么问题,为什么GBPUSD_High不被计算。

不要被愚弄。把这个粘贴到你最喜欢的代码部分。

Print (GBPUSD_High[i],":",GBPUSD_Low[i],":",GBPUSD[i]); 
你会在 "专家 "选项卡中有一个顿悟。
 
tmp.0 писал(а)>>

不要被愚弄。你把这个放在你喜欢的代码的地方。

你会在 "专家 "选项卡中有一个顿悟。

那又怎样...

没有顿悟。打印只打印两个值,就像显示指标一样。第三种情况呢?

你甚至尝试过做你建议的事情吗?

 
下一个问题,请 :)
 
tmp.0 писал(а)>>
下一个问题,请 :)

非常聪明。

谢谢你的 "帮助"。

 
alderru >> :

非常聪明。

谢谢你的 "帮助"。

上面已经给了你答案。原因是在赋值运算符的右边部分使用了一个未分配的值。GBPUSD_High[i]在字符串中 等于什么?

GBPUSD_High[i]=MathMax(GBPUSD_High[i],GBPUSD[i]);

也给你看了一个纠正这种情况的选项。把讽刺抛在脑后。


 
OneDepo писал(а)>>

原因是在赋值运算符的右侧使用了一个未赋值的值。

因此,声明指标缓冲区并不意味着单元格值为零。对吗?

因此,MathMax 没有被计算出来,因为其中一个被比较的值(即GBPUSD_High)没有值(根本没有,甚至没有零)。

我明白了。谢谢OneDepo。

我很抱歉,我的简化让大家感到困惑(双关语)。正如我已经提到的,我对High quotes的值不感兴趣,我感兴趣的是我自己的函数在条形上的最大值,指标在形成条形的同时成功地画出了它的曲线并重新浏览。这是我感兴趣的条形图期间指标重绘的范围。

我将考虑一下。

P.S.但为什么MathMin 被认为是没有问题的,条件是相等的,而且声明是相同的?

P.S. 我非常直率。我不能这样做。请给予帮助。