[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 168

 

Veuillez me dire comment arrondir une valeur à 4 décimales.

J'ai un calcul comme celui-ci

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


où Prix1_M5_1 et Prix2_M5_1 sont des valeurs de cotations. Cependant, a_M5_461 ne correspond pas à quatre décimales, mais à davantage, tant que l'expression contient la multiplication par 4,61. Nous devons faire en sorte que la valeur soit arrondie à 4 décimales.

S'il vous plaît, dites-moi comment faire. Je ne le trouve nulle part.

 
FOReignEXchange писал(а) >>

Veuillez me dire comment arrondir une valeur à 4 décimales.

J'ai un calcul comme celui-ci

où Prix1_M5_1 et Prix2_M5_1 sont des valeurs de cotations. Cependant, a_M5_461 ne correspond pas à quatre décimales, mais à davantage, tant que l'expression contient la multiplication par 4,61. Nous devons faire en sorte que la valeur soit arrondie à 4 décimales.

S'il vous plaît, dites-moi comment faire. Je ne le trouve nulle part.

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

Merci beaucoup. C'est la deuxième fois que vous m'aidez.

Merci.

 
FOReignEXchange писал(а) >>

Merci beaucoup. C'est la deuxième fois que vous m'aidez.

Merci.

C'est tout l'indicateur que vous faites. Ou est-ce quelque chose d'autre ?

 
Vinin >> :

C'est tout ce que fait l'indicateur. Ou est-ce quelque chose d'autre ?

Je le fais. Je ne suis pas pressé. L'indicateur est compliqué, mais j'ai envie de le faire moi-même. J'aime les tâches complexes.

 
Vinin >> :

Votre option ne fonctionne pas. Lorsqu'une valeur est affichée à l'écran, 8 décimales sont indiquées. Parmi ceux-ci, 4 sont des zéros.

 
FOReignEXchange писал(а) >>

Votre option n'est d'aucune utilité. Lorsqu'une valeur est affichée à l'écran, 8 décimales sont écrites. Parmi ceux-ci, 4 sont des zéros.

NormalizeDouble() est utilisé pour les calculs, DoubleToStr() est meilleur pour la sortie ;

 
Vinin >> :

NormalizeDouble() est utilisé pour les calculs, DoubleToStr() est meilleur pour la sortie ;

Oui. Il s'adapte parfaitement. Merci encore.

 

Veuillez indiquer la nature de l'erreur :


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
}


Par conséquent, la mémoire tampon 1[i+1] et la mémoire tampon 1[i+30] affichent 0 lorsque l'indicateur démarre.

Après un certain temps, Buffer1[i+1] commence à afficher une valeur non nulle (pourquoi pas immédiatement ?),

mais le tampon 1[i+30] reste à 0.

- A quoi est-il lié ?

 
chief2000 писал(а) >>

Veuillez indiquer la nature de l'erreur :

Par conséquent, la mémoire tampon 1[i+1] et la mémoire tampon 1[i+30] affichent 0 lorsque l'indicateur démarre.

Après un certain temps, Buffer1[i+1] commence à afficher une valeur non nulle (pourquoi pas immédiatement ?),

mais le tampon 1[i+30] reste à 0.

- Qu'est-ce que ça a à voir avec ça ?

Et ce que j'égale ?