Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 133

 
skyjet:


Aber ich vergleiche 3, 2 und 1 Balken, also ist die Berechnung auf x >=1 beschränkt?

Und bedeutet es, dass Barren mit demselben Preis einfach nicht berücksichtigt werden, ihnen keine Nummern zugeordnet werden?

Durch die Einstellung der Optimierungsparameter: Start 1, Schritt 1, Ende 4; auf H1 und H4 ist die Ergebnisregisterkarte einfach leer, auf D1 wird die gleiche Rentabilität bei unterschiedlicher Anzahl von Balken analysiert.

Vielleicht habe ich Ihre Frage anders verstanden, als Sie sie gemeint haben. In meinem Beispiel werden die Eröffnungskurse zwischen den Takten 3 und 2 sowie 2 und 1 verglichen. Die Takte 3 und 1 werden nicht verglichen. Wenn die verglichenen Werte gleich sind, passiert nichts, es wird einfach zum nächsten Vergleich übergegangen.
Warum x>1 (nicht >=). In der ersten Iteration wird Open[3]==Open[3-1] verglichen, d. h. Open[3]==Open[2]. GUT. Bei der zweiten (x=2), Open[2]==Open[1]. GUT. Es gibt keine dritte Iteration. Bei x>=1 gibt es einen Vergleich Open[1]==Open[0], das ist nicht OK, weil es einen Vergleich mit 0 bar geben wird.
 
T-G:

Fachleute können ohne Sie nirgendwo hingehen.

Hilfe zur Funktion. Damit wird die letzte Anzahl von Verlustaufträgen in der Historie zu einem Plusauftrag gezählt.

D.h. die Historie zeigt 3 letzte Aufträge im Minus, dann 1 im Plus und 2 im Minus.

Diese Funktion sollte die letzten drei (vor der positiven Reihenfolge) zählen

int Number=0;
//---
if (OrdersHistoryTotal()>0)
{  for (int i=OrdersHistoryTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {  if (OrderProfit()<0.0)
         Number+=1;
         else break;
}  }  }
Aufträge, die nur mit einem Defizit abgeschlossen wurden, werden hier gezählt. Ist das Ergebnis = 0 (Null), wird die Zählung unterbrochen.
 
paladin80:
Aufträge, die nur mit einem Defizit abgeschlossen wurden, werden hier gezählt. Ist das Ergebnis = 0 (Null), wird die Zählung unterbrochen.
Es kann vorkommen, dass sie nicht unbedingt in der Reihenfolge erscheinen, in der Sie sie lesen. Um genau und eindeutig zu sein, sollten die Bestellungen in einem zweidimensionalen Array addiert werden: In der ersten Dimension steht die Schlusszeit, in der zweiten der Bestellschein. Anschließend sortieren Sie das Array nach der ersten Dimension, reduzieren es auf drei und überprüfen diese (die letzten drei).
 
chief2000:
Ich möchte meine vorherige Frage umformulieren und ergänzen.
Nachfolgend ist der Code für ein Array mit 4 Elementen zu sehen. Die Anzahl der Elemente im Array ist eine Variable.
Wie kann ich den Code so ändern, dass die Anzahl der verschachtelten "for"-Schleifen variabel wird, d. h. ein "for" pro Array-Element?
Ich danke Ihnen!

int start() { 

   int Array[4]                                       = {1, 2, 3, 4};
   int x1, x2, x3, x4;
   int Array_Size                                  = ArrayRange(Array,0);


   for(x1=0; x1<Array_Size; x1++) {
      Print("Combination                       = ", Array[x1]);

      for(x2=x1+1; x2<Array_Size; x2++) {
         Print("Combination                    = ", Array[x1] + "   " + Array[x2]);

         for(x3=x2+1; x3<Array_Size; x3++) {
            Print("Combination                 = ", Array[x1] + "   " + Array[x2] + "   " + Array[x3]);

            for(x4=x3+1; x4<Array_Size; x4++) {
               Print("Combination              = ", Array[x1] + "   " + Array[x2] + "   " + Array[x3] + "   " + Array[x4]);
            }
         }
      }
   }


   return(0);
}


Als ich mir diese Situation ansah, begann ich mich zu wundern. Wenn eine Reihe von verschachtelten Schleifen verfügbar sind. Wie laufen die Berechnungen ab? Von der am tiefsten verschachtelten oder umgekehrt?

D.h. die erste, die berechnet wird:

 for(x4=x3+1; x4<Array_Size; x4++) {
               Print("Combination              = ", Array[x1] + "   " + Array[x2] + "   " + Array[x3] + "   " + Array[x4]);

Oder von der anderen Seite? Ich möchte verstehen, wie das alles funktioniert.

 
wie man einen EA dazu bringt, die Niveaus der technischen Indikatoren zu berücksichtigen. Zum Beispiel cci. Wenn die Linie über dem Wert 0 liegt, führen Sie Maßnahmen durch. Was ist zu tun?
 
webip:
Wie man einen EA dazu bringt, die Niveaus der technischen Indikatoren zu berücksichtigen. Zum Beispiel, cci. Wenn die Linie höher als 0 ist, dann führen Sie Maßnahmen durch. Was ist zu tun?

Wenn cci größer als Null ist, dann ... Wenn cci kleiner als Null ist. dann ...

Funktion iCCI();

 

Gurus, sagt mir, wie ich ein Problem lösen kann. Für die Berechnung der Differenz zwischen Eröffnungs- und Schlusskurs benötigen wir eine positive Zahl. Steigt der Kurs beispielsweise und zieht man den Schlusskurs vom Eröffnungskurs ab, erhält man eine Minuszahl.

 
artmedia70:

Wenn cci größer als Null ist, dann ... Wenn cci kleiner als Null ist. dann ...

Funktion iCCI();



Nein. Ich kenne die Funktion, aber ich weiß nicht, wie ich sie im Code wiedergeben kann. Wie wäre es damit?

 if(iCCI() > 0)
  {
    //остальной код?
  }
 
Forexman77:

Gurus, sagt mir, wie ich ein Problem lösen kann. Für die Berechnung der Differenz zwischen Eröffnungs- und Schlusskurs benötigen wir eine positive Zahl. Wenn zum Beispiel der Kurs steigt und ich eine negative Zahl vom Eröffnungskurs abziehe, erhalte ich eine negative Zahl.


double MathAbs( doppelter Wert)
Die Funktion gibt den Absolutwert (Modulo-Wert) der übergebenen Zahl zurück
 
hoz:

Als ich mir diese Situation ansah, begann ich mich zu wundern. Wenn eine Reihe von verschachtelten Schleifen verfügbar sind. Wie laufen die Berechnungen ab? Von der am tiefsten verschachtelten oder umgekehrt?

D.h. die erste, die berechnet wird:

Oder von der anderen Seite? Ich möchte verstehen, wie das alles funktioniert...


Sie können die Ergebnisse sehen, die ich zuvor für 4 Zyklen angegeben habe, da der innerste Zyklus einmal ausgelöst wird, um 1234 zu erhalten.