[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 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개는 0입니다.

 
FOReignEXchange писал(а) >>

귀하의 옵션은 도움이 되지 않습니다. 화면에 값을 표시할 때 소수점 이하 8자리가 기록됩니다. 이 중 4개는 0입니다.

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]은 Indicator가 시작될 때 0을 표시합니다.

일정 시간이 지나면 Buffer1[i+1]이 0이 아닌 값을 표시하기 시작합니다.

Buffer1[i+30]은 0으로 유지됩니다.

- 그 이유는 무엇입니까?

 
chief2000 писал(а) >>

무엇이 잘못되었는지 알려주세요:

결과적으로 Buffer1[i+1] 및 Buffer1[i+30]은 Indicator가 시작될 때 0을 표시합니다.

일정 시간이 지나면 Buffer1[i+1]이 0이 아닌 값을 표시하기 시작합니다.

Buffer1[i+30]은 0으로 유지됩니다.

- 그 이유는 무엇입니까?

나는 무엇과 동등합니까?