[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 168

 

Bitte sagen Sie mir, wie ich einen Wert auf 4 Dezimalstellen abrunden kann.

Ich habe eine Berechnung wie diese

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


wobei Preis1_M5_1 und Preis2_M5_1 Werte von Kursen sind. Allerdings sind a_M5_461 nicht vier Dezimalstellen, sondern mehr, solange der Ausdruck die Multiplikation mit 4,61 enthält. Der Wert muss auf 4 Dezimalstellen gerundet werden.

Bitte sagen Sie mir, wie ich es machen soll. Ich kann sie nirgends finden.

 
FOReignEXchange писал(а) >>

Bitte sagen Sie mir, wie ich einen Wert auf 4 Dezimalstellen abrunden kann.

Ich habe eine Berechnung wie diese

wobei Preis1_M5_1 und Preis2_M5_1 Werte von Kursen sind. Allerdings sind a_M5_461 nicht vier Dezimalstellen, sondern mehr, solange der Ausdruck die Multiplikation mit 4,61 enthält. Der Wert muss auf 4 Dezimalstellen gerundet werden.

Bitte sagen Sie mir, wie ich es machen soll. Ich kann sie nirgends finden.

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

Ich danke Ihnen vielmals. Dies ist bereits das zweite Mal, dass Sie uns geholfen haben.

Ich danke Ihnen.

 
FOReignEXchange писал(а) >>

Ich danke Ihnen vielmals. Dies ist das zweite Mal, dass Sie uns geholfen haben.

Ich danke Ihnen.

Ist das der einzige Indikator, den Sie machen? Oder ist es etwas anderes?

 
Vinin >> :

Ist das alles, was der Indikator tut. Oder ist es etwas anderes?

Ich tue es. Ich bin nicht in Eile. Der Indikator ist kompliziert, aber ich bin daran interessiert, ihn selbst zu erstellen. Ich mag komplexe Aufgaben.

 
Vinin >> :

Ihre Option funktioniert nicht. Wenn ein Wert auf dem Bildschirm angezeigt wird, werden 8 Dezimalstellen angezeigt. Davon sind 4 Nullen.

 
FOReignEXchange писал(а) >>

Ihre Option ist nicht hilfreich. Wenn ein Wert auf dem Bildschirm angezeigt wird, werden 8 Dezimalstellen geschrieben. Davon sind 4 Nullen.

NormalizeDouble() wird für Berechnungen verwendet, DoubleToStr() ist besser für die Ausgabe;

 
Vinin >> :

NormalizeDouble() wird für Berechnungen verwendet, DoubleToStr() ist besser für die Ausgabe;

Ja. Es passt perfekt. Nochmals vielen Dank.

 

Bitte teilen Sie uns mit, wo der Fehler liegt:


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
}


Infolgedessen zeigen Puffer1[i+1] und Puffer1[i+30] 0 an, wenn der Indikator startet.

Nach einiger Zeit beginnt Puffer1[i+1] einen Wert ungleich Null anzuzeigen (warum nicht sofort?),

aber Puffer1[i+30] bleibt 0.

- Worauf bezieht sie sich?

 
chief2000 писал(а) >>

Bitte teilen Sie uns mit, wo der Fehler liegt:

Infolgedessen zeigen Puffer1[i+1] und Puffer1[i+30] 0 an, wenn der Indikator startet.

Nach einiger Zeit beginnt Puffer1[i+1] einen Wert ungleich Null anzuzeigen (warum nicht sofort?),

aber Puffer1[i+30] bleibt 0.

- Was hat das mit der Sache zu tun?

Und was bedeutet das?

Grund der Beschwerde: