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

 

请告诉我如何将一个数值四舍五入到小数点后4位。

我有一个这样的计算

a_M5_461=(Price1_M5_1-4.61*(Price1_M5_1-Price2_M5_1));


其中Price1_M5_1和Price2_M5_1是报价的值。 然而,a_M5_461不是小数点后四位,而是更多,只要表达式包含4.61的乘法。 我们需要使该值四舍五入到小数点后4位。

请告诉我如何做。我在任何地方都找不到它。

 
FOReignEXchange писал(а)>>

请告诉我如何将一个数值四舍五入到小数点后4位。

我有一个这样的计算

其中Price1_M5_1和Price2_M5_1是报价的值。 然而,a_M5_461不是小数点后四位,而是更多,只要表达式包含4.61的乘法。 我们需要使该值四舍五入到小数点后4位。

请告诉我如何做到这一点。我在任何地方都找不到它。

a_M5_461=NormalizeDouble(Price1_M5_1-4.61*(Price1_M5_1-Price2_M5_1),Digits);
 

非常感谢你。这是你第二次帮忙了。

谢谢你。

 
FOReignEXchange писал(а)>>

非常感谢你。这是你第二次帮忙了。

谢谢你。

这就是你所做的全部指标吗。还是别的什么原因呢?

 
Vinin >> :

这就是指标的全部作用。还是别的什么原因呢?

我正在做。我不着急。这个指标很复杂,但我有兴趣自己做。我喜欢复杂的任务。

 
Vinin >> :

你的选项不起作用。当屏幕上显示一个数值时,会显示8位小数。其中,4个是零。

 
FOReignEXchange писал(а)>>

你的选择没有帮助。当一个数值显示在屏幕上时,会写入8位小数。其中,4个是零。

NormalizeDouble()用于计算,DoubleToStr()用于输出更好。

 
Vinin >> :

NormalizeDouble()用于计算,DoubleToStr()用于输出更好。

是的,它非常合适。再次感谢。

 

请告知错误是什么。


extern int RSI_Periods = 14;
extern int Percent_K   = 14;

// double Buffer1[];
double Buffer1[100000];

start() {

   while( i>=0) {

// ============================================================================================
      double Current_RSI, Lowest_RSI, Highest_RSI;

      Current_RSI    = iRSI(NULL,0, RSI_Periods,PRICE_TYPICAL, i);
      Highest_RSI    = Current_RSI;
      Lowest_RSI     = Current_RSI;

      for(int x= i+1; x<= Percent_K+ i+1; x++){
         Lowest_RSI  = MathMin( Lowest_RSI, iRSI(NULL,0, RSI_Periods,PRICE_TYPICAL, x));
         Highest_RSI = MathMax( Highest_RSI,iRSI(NULL,0, RSI_Periods,PRICE_TYPICAL, x));
      }


      Buffer1[ i]     = (( Current_RSI- Lowest_RSI) / ( Highest_RSI- Lowest_RSI)) * 100;
// ============================================================================================


   Comment(
      "\n",
      "\n", "Buffer1[i+30] = ", Buffer1[ i+30],
      "\n", "Buffer1[i+1] = ", Buffer1[ i+1],
      "\n", "Buffer1[i] = "  , Buffer1[ i],
      "\n",
      "\n"
   );

      i--;
   } // while
}


因此,当指标开始时,Buffer1[i+1]和Buffer1[i+30]显示0。

一段时间后,Buffer1[i+1]开始显示非零值(为什么不是立即?)

但Buffer1[i+30]保持为0。

- 它与什么有关?

 
chief2000 писал(а)>>

请告知错误是什么。

因此,当指标开始时,Buffer1[i+1]和Buffer1[i+30]显示0。

一段时间后,Buffer1[i+1]开始显示非零值(为什么不是立即?)

但Buffer1[i+30]保持为0。

- 这跟它有什么关系?

我等于什么呢?

原因: