[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 424

 
neu gepostet
Ilya12345:

Hallo zusammen, ich bastle schon seit Tagen an dem Code herum, aber ohne Erfolg! Die Bedingung ist nicht erfüllt. Der Variablen Z wird immer der letzte Wert zugewiesen, in diesem Fall ist es Z=1. Was muss ich tun, damit die Bedingungen funktionieren? Wer kann helfen?

X = MathFloor(KursZiel);
Y = (KursZiel - X);
{
wenn (0 < Y <= 0,03125)
{Z = 0.03125;}

wenn (0,03126 < Y <= 0,0625)
{Z = 0.0625;}

wenn (0,0625 < Y <= 0,09375)
{Z = 0.09375;}

wenn (0,09375 < Y <= 0,125)
{Z = 0.125;}

wenn (0,125 < Y <= 0,15625)
{Z = 0.15625;}

wenn (0,15625 < Y <= 0,1875)
{Z = 0.1875;}

wenn (0,1875 < Y <= 0,21875)
{Z = 0.21875;}

wenn (0,21875 < Y <= 0,25)
{Z = 0.25;}

wenn (0,25 < Y <= 0,28125)
{Z = 0.28125;}

wenn (0,28125 < Y <= 0,3125)
{Z = 0.3125;}

wenn (0,3125 < Y <= 0,34375)
{Z = 0.34375;}

wenn (0,34375 < Y <= 0,375)
{Z = 0.375;}

wenn (0,375 < Y <= 0,40625)
{Z = 0.40625;}

wenn (0,40625 < Y <= 0,4375)
{Z = 0.4375;}

wenn (0,4375 < Y <= 0,46875)
{Z = 0.46875;}

wenn (0,46875 < Y <= 0,5)
{Z = 0.5;}

wenn (0,5 < Y <= 0,53125)
{Z = 0.53125;}

wenn (0,53125 < Y <= 0,5625)
{Z = 0.5625;}

wenn (0,5625 < Y <= 0,59375)
{Z = 0.59375;}

wenn (0,59375 < Y <= 0,625)
{Z = 0.625;}

wenn (0,625 < Y <= 0,65625)
{Z = 0.65625;}

wenn (0,65625 < Y <= 0,6875)
{Z = 0.6875;}

wenn (0,6875 < Y <= 0,71875)
{Z = 0.71875;}

wenn (0,71875 < Y <= 0,75)
{Z = 0.75;}

wenn (0,75 < Y <= 0,78125)
{Z = 0.78125;}

wenn (0,78125 < Y <= 0,8125)
{Z = 0.8125;}

wenn (0,8125 < Y <= 0,84375)
{Z = 0.84375;}

wenn (0,84375 < Y <= 0,875)
{Z = 0.875;}

wenn (0,875 < Y <= 0,90625)
{Z = 0.90625;}

wenn (0,90625 < Y <= 0,9375)
{Z = 0.9375;}

wenn (0,9375 < Y <= 0,96875)
{Z = 0.96875;}

wenn (0,96875 < Y <= 1)
{Z = 1;}
}
W = X + Z;




Ilja12345:

Hallo zusammen, ich bastle schon seit Tagen an dem Code herum, aber ohne Erfolg! Die Bedingung ist nicht erfüllt. Der Variable Z wird immer der letzte Wert zugewiesen, in diesem Fall ist er gleich Z=1. Was muss ich tun, damit die Bedingungen funktionieren? Kann mir jemand helfen?


Versuchen Sie dies

X = MathFloor(PriceTarget);
Y = (PriceTarget - X);
{
if (0 < Y <= 0.03125)
Z = 0.03125;
  else
    if (0.03126 < Y <= 0.0625)
    Z = 0.0625;
      else
        if (0.0625 < Y <= 0.09375)
        Z = 0.09375;
          else
            if (0.09375 < Y <= 0.125)
            Z = 0.125;
              else
                if (0.125 < Y <= 0.15625)
                Z = 0.15625;
                  else
                  if (0.15625 < Y <= 0.1875)
                  Z = 0.1875;
                    else
                      if (0.1875 < Y <= 0.21875)
                      Z = 0.21875;
                        else
                          if (0.21875 < Y <= 0.25)
                          Z = 0.25;
else
if (0.25 < Y <= 0.28125)
Z = 0.28125;
  else
    if (0.28125 < Y <= 0.3125)
    Z = 0.3125;
      else
        if (0.3125 < Y <= 0.34375)
        Z = 0.34375;
          else
            if (0.34375 < Y <= 0.375)
            Z = 0.375;
              else
                if (0.375 < Y <= 0.40625)
                Z = 0.40625;
                  else
                    if (0.40625 < Y <= 0.4375)
                    Z = 0.4375;
                      else
                        if (0.4375 < Y <= 0.46875)
                        Z = 0.46875;
else
if (0.46875 < Y <= 0.5)
Z = 0.5;
  else
    if (0.5 < Y <= 0.53125)
    Z = 0.53125;
      else
        if (0.53125 < Y <= 0.5625)
        Z = 0.5625;
          else
            if (0.5625 < Y <= 0.59375)
            Z = 0.59375;
              else
                if (0.59375 < Y <= 0.625)
                Z = 0.625;
                  else
                    if (0.625 < Y <= 0.65625)
                    Z = 0.65625;
                      else
                        if (0.65625 < Y <= 0.6875)
                        Z = 0.6875;
                          else
                            if (0.6875 < Y <= 0.71875)
                            Z = 0.71875;
else
if (0.71875 < Y <= 0.75)
Z = 0.75; 
  else
    if (0.75 < Y <= 0.78125)
    Z = 0.78125;
      else
        if (0.78125 < Y <= 0.8125)
        Z = 0.8125; 
          else
            if (0.8125 < Y <= 0.84375)
            Z = 0.84375;
              else
                if (0.84375 < Y <= 0.875)
                Z = 0.875;
                  else
                    if (0.875 < Y <= 0.90625)
                    Z = 0.90625;
                      else
                        if (0.90625 < Y <= 0.9375)
                        Z = 0.9375;
                          else
                            if (0.9375 < Y <= 0.96875)
                            Z = 0.96875;
                              else
                                if (0.96875 < Y <= 1)
                                Z = 1;
} 
W = X + Z;
 
sergeev:
übertragen von


versuchen Sie es so.


works!!!! echten Dank!!! vor allem für die Schnelligkeit!
 
Ilya12345:

works!!!! echten Dank!!! vor allem für die Schnelligkeit!


Ungefähr so:

double mK[] ={0,0.03125,0.0625....,1};



 

   for (int i=0;i<(ArraySize(mK)-1);i++)
   
   {
    
     if (y>mK[i] && y<=mK[i+1]) 
        {z=mK[i+1];
         break;
        }
   } 
 

Ich habe zwei Fragen zu globalen Variablen.

Frage 1: Es steht geschrieben, dass sie auf der Festplatte gespeichert sind. Ist die Zugriffszeit auf sie so lang wie beim Lesen von Daten aus einer Datei oder so schnell wie beim Lesen einer gewöhnlichen Variablen?

Frage 2: Es heißt, dass globale Variablen nur vom Typ double sein können, aber was ist, wenn ich Daten anderer Typen speichern möchte, z. B. int oder string?

 
KONDOR:

1. Über die Geschwindigkeit kann ich mich nicht beklagen.

2. Wo steht das? Alle Typen können global sein.

"Sich nicht zu beschweren" ist nicht wirklich ein mathematisches Konzept.

Hier steht es geschrieben:

 
Elenn:

"Sich nicht zu beschweren" ist nicht wirklich ein mathematisches Konzept.

Hier steht es geschrieben:

Sie besagt, dass die globale Variable auf der Festplatte gespeichert und für eine bestimmte Zeit aufbewahrt wird. Während das Programm (Terminal, Anzeiger, Ratgeber) läuft, befinden sich alle Variablen im RAM, d.h. der Wert des G.P. wird erst beim ersten Start des Programms von der Festplatte gelesen.
 
Temnyj:
Sie besagt, dass die globale Variable auf der Festplatte gespeichert und für eine bestimmte Zeit aufbewahrt wird. Während das Programm (Terminal, Indikator, Expert Advisor) läuft, werden alle Variablen im RAM gespeichert, d.h. der Wert von G.P. wird erst beim ersten Start des Programms von der Festplatte gelesen.

Ich danke Ihnen für die Informationen. Was ist mit der zweiten Frage?
 
Elenn:

Ich danke Ihnen für die Informationen. Was ist mit der zweiten Frage?

Die zweite Frage verstehe ich nicht ganz.

Lesen Sie es besser hier.

 
Temnyj:

Die zweite Frage verstehe ich nicht ganz.

Vielleicht möchten Sie ihn hier lesen


Alle Variablen gehen verloren, wenn Sie das Programm beenden (Neustart des Computers usw.). Mit Ausnahme der globalen Variablen, da diese auf der Festplatte gespeichert werden. Sie können aber nur vom Typ double sein. Was ist zu tun, wenn es notwendig ist, Variablen anderer Typen zu speichern (z. B. int oder string)? Was ist hier unklar?

 
Elenn:


Alle Variablen gehen beim Beenden des Programms (Neustart des Computers usw.) verloren. Mit Ausnahme der globalen Variablen, da diese auf der Festplatte gespeichert werden. Sie können aber nur vom Typ double sein. Was ist zu tun, wenn es notwendig ist, Variablen anderer Typen zu speichern (z. B. int oder string)? Was ist hier unklar?

Es gibt globale Variablen der aktuellen Programmebene und globale Variablen der Terminalebene. Erstere werden bei der Deinitialisierung zurückgesetzt, letztere nicht. Sie sprechen eindeutig von Letzterem.

Natürlich wäre es schwierig, z.B. ein Array wie double aus 100 Elementen in solchen Variablen zu verstecken. Es ist besser, sie überhaupt nicht für solche Zwecke zu verwenden.

Verwenden Sie eine Datei zum Speichern von Daten jeder Art. Dort gibt es keine Einschränkungen. Und diese Methode wird von jedermann zu jeder Zeit angewendet.