初学者的问题 MQL5 MT5 MetaTrader 5 - 页 631

 
Artyom Trishkin:
我很难看清平板电脑上的代码,但答案是--把X的值写在缓冲区里。

录制的。它是有效的。如何在指标中获得小数点后五位的计算结果,就像在经纪人的终端上五位数的报价买入和卖出价格五位数一样,并在其指标中显示?附上一张截图。

我在左边的注释中得到了五个字符,屏幕上有白色的字符,代码是:(但在指标中,当我填充缓冲区时,它仍然显示四个数字 NormalizeDouble (ExtMapBuffer2[0],Digits) - 没有帮助。

  Comment(
              "tickCounter = ", tickCounter, "\n",
              "secondCounter, time_s  = ",    NormalizeDouble(time_s,2) , "\n",
            
              "ExtMapBuffer1[0] = ", DoubleToStr(ExtMapBuffer1[0],Digits) , "\n",
              "ExtMapBuffer2[0] = ", DoubleToStr(ExtMapBuffer2[0],Digits) , "\n",
              "ExtMapBuffer1[1] = ", DoubleToStr(ExtMapBuffer1[1],Digits) , "\n",
              "ExtMapBuffer2[1] = ", DoubleToStr(ExtMapBuffer2[1],Digits) , "\n",
              "ExtMapBuffer1[2] = ", DoubleToStr(ExtMapBuffer1[2],Digits) , "\n",
              "ExtMapBuffer2[2] = ", DoubleToStr(ExtMapBuffer2[2],Digits) , "\n",


 
Roman Shiredchenko:

录制的。它是有效的。如何在指标中获得小数点后五位的计算结果,就像在经纪人的终端上五位数的报价买入和卖出价格五位数一样,并在其指标中显示?附上一张截图。

我试着在左边的注释中用白色符号在屏幕上显示五位数的报价(在指标中,当我填充缓冲区时,它仍然显示四位数 NormalizeDouble (ExtMapBuffer2[0],Digits) - 没有帮助。


IndicatorSetInteger(INDICATOR_DIGITS,_Digits)。


IndicatorDigits(_Digits)。

 

而在这里,对于平均速度具体表示为填充指标阵列ExtMapBuffer_Ave_Speed[0]=NormalizeDouble(X,1)。

但它仍然画出了小数点后4位的零...如何使其显示五个小数位?

 
Alexey Viktorov:

IndicatorSetInteger(INDICATOR_DIGITS, _Digits)。


IndicatorDigits(_Digits)。

森克。这一切都在起作用!
 
Roman Shiredchenko:
Cenk。这一切都在起作用!
对不起,我忘了把它放在OnInit()中。
 
Alexey Viktorov:
对不起,我忘了把它放在OnInit()中。

事实证明,我们这里有一个 "回复 "队列;)

没有时间...

 
Alexey Viktorov. Artyom Trishkin
对不起,我忘记在OnInit()中写了。

这是可以理解的。森克。也许你可以给我一个提示......。

MA已被应用于终端导航器的Tick指标。我如何在EA中获得其数值?

如果你能在哪里读到它,你就可以探出头来了。

我似乎记得...通过iMAOnArray


 
Roman Shiredchenko:

这是可以理解的。森克。可能有一些其他的提示...

MA从终端导航仪应用到刻度指示器。如何在专家顾问中获得其数值?

你可能只是在哪里戳到了你的鼻子,读到了关于它的信息。

我似乎记得...通过iMAOnArray


iMAOnArray应该被输入到tick指标中,并在它的附加缓冲区中输出。

或者,在一个新的指标中,首先你应该把tick指标缓冲区的内容读入计算缓冲区,然后把iMAOnArray放在上面。

 
Artyom Trishkin:

1.iMAOnArray应该被写入Tick指标,并在其中输出到额外的缓冲区。

或者,在一个新的指标中,首先应该将tick指标缓冲区的内容读入计算缓冲区,然后将iMAOnArray应用于它。

谢谢你。Artyom.因此,1.
 

我无法实现来自Bid(绿色--由于MA线的存在,它是不可见的)的MA(金色)第1期数值(在图表上)与其通过iMAonArray()从Bid价格指标缓冲区计算的相同MA(1)数值的平等。

      double MA_0=iMAOnArray(ExtMapBuffer1,0,MA_Period,0,MODE_EMA,0); 
      double MA_1=iMAOnArray(ExtMapBuffer1,0,MA_Period,0,MODE_EMA,1); 
      double MA_2=iMAOnArray(ExtMapBuffer1,0,MA_Period,0,MODE_EMA,2); 
   
       


     if (time_s!=0) 
       Comment(
              "tickCounter = ", tickCounter, "\n",
              "secondCounter, time_s  = ",    NormalizeDouble(time_s,2) ,   "\n",
            
           ...
              "ExtMapBuffer_MA[0] = ", DoubleToStr(MA_0,Digits),"\n",
              "ExtMapBuffer_MA[1] = ", DoubleToStr(MA_1,Digits),"\n",
              "ExtMapBuffer_MA[2] = ", DoubleToStr(MA_2,Digits),"\n",

绿色箭头--数值相等--应该如此。红色箭头--不同的价值。应该和绿色的一样。


最上面的三个箭头应该有数字ONE,但它们是不同的......。你能告诉我出现这种差异的原因吗...