[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 81

 
artmedia70:

Wenn ich Ihre geschweiften Klammern richtig verstanden habe, dann:




nach der Ausführung vonPlaySound("alert.wav");; die folgenden ifs nicht mehr ausgeführt werden?

if (1<2) 
{
   if(2<3)
      {
      if (3<4) PlaySound("alert.wav");  
           { 
            if (X)....
                {
                    if (Y)
                }
            }
       }
}

 
charter:

Der Indikator wird rot, wenn seine Werte sinken, und grün, wenn die Werte steigen.


wirklich... so einfach) Danke!
 
Stomatolog:
Hallo Leute, könnt ihr mir bei meiner Frage helfen? Ich bin neu in MQL4, ich schreibe einen EA, ich mussteint total=OrdersTotal();total<1 schreiben, um zu vermeiden, ein Geschäft bei jedem neuen Tick zu öffnen. Wie man Geschäfte auf allen Währungspaaren öffnet, auf denen der EA installiert ist. Und für ein einziges Währungspaar können Sie mehrere Geschäfte eröffnen.

Um nicht bei jedem Tick zu öffnen und um den EA schneller zu optimieren, verwende ich oft dieses Design:

datetime t;                     // переменная для запоминания значения времени
int start()
{
  if (t == Time[0]) return;     // если "старое" время и текущее совпадают, выходим из start
  else t = Time[0];             // иначе присвоим переменной текущее время

Auf diese Weise wird der Code einmal ausgeführt, wenn ein neuer Balken erscheint.

Lesen Sie, wie Sie MagicNumber in Aufträgen verwenden können. Wenn Sie Total < 1 verwenden, kann der EA einen Auftrag für jedes Währungspaar und für ein Währungspaar öffnen, aber in verschiedenen Fenstern. Ein Beispiel können Sie hier sehen.

 
lottamer:


nachdem PlaySound("alert.wav"); ausgeführt wurde, die folgenden ifs nicht mehr ausgeführt werden?

if (1<2) 
{
   if(2<3)
      {
      if (3<4) PlaySound("alert.wav");  
           { 
            if (X)....
                {
                    if (Y)
                }
            }
       }
}

Ihr Code ist falsch. Öffnende Klammern sollten vor den Operatoren stehen, nicht danach.

//+----------------------------------------------------------------------------+
if (1<2) {                                // Если один меньше два и ...
   if(2<3) {                              // ... два меньше три, ...
      if (3<4) PlaySound("alert.wav");    // Если три меньше четыре - врежем рок в этой дыре ... (С), 
                                          // Далее пойдём проверять остальные условия:
      if (4<5)                            // Если четыре меньше пять и ...
      if (5<6) Print("Истина");           // ... пять меньше шесть - верно, блин...
      }
   }
//+----------------------------------------------------------------------------+

Der Block mit Sound` und Print` wird nur ausgeführt, wenn 1 kleiner als 2 und 2 kleiner als 3 ist. Der Ton wird ausgeführt, wenn 3 kleiner als 4 ist.
Aber Print wird auch ausgeführt, wenn 4 kleiner als 5 und 5 kleiner als 6 ist

 
artmedia70:

Ihr Code ist falsch. Die öffnenden Klammern sollten vor den Operatoren stehen, nicht danach.

Die Blöcke "Sound" und "Print" werden nur ausgeführt, wenn 1 kleiner als 2 und 2 kleiner als 3 ist. Der Ton wird ausgeführt, wenn 3 kleiner als 4 ist.
Aber Print wird auch ausgeführt, wenn 4 kleiner als 5 und 5 kleiner als 6 ist



Es scheint mir, dass, wenn 4>5 und 5<6 bei der gegebenen Eingabe Print immer noch ausgeführt wird, weil die Maschine alle 3 wenn in einer Reihe unabhängig von ihrer TRU-FOLS Ergebnis arbeiten - es gibt KEINE COLLECTIONS!
 
und ist es möglich, eine lokale Variable zur globalen Verwendung abzuleiten?
 
lottamer:

Es scheint mir, dass wenn 4>5 und 5<6 dann mit diesem Eintrag Print immer noch ausgeführt wird, weil die Maschine alle 3 if in a row unabhängig von ihrem TRU-FOLS Ergebnis ausführt - es gibt KEINE COLLECTIONS!
Wenn (4<5) wahr ist, dann wird die folgende Zeile ausgeführt: if(5<6), aber ... wenn (4<5) falsch ist, dann wird das nächste if () mit seinem Ausdruck nicht verarbeitet, und wir gehen zu einer schließenden Klammer von if (2<3) über.
 
lottamer:
aber ist es möglich, eine lokale Variable zur globalen Verwendung abzuleiten?
Das können Sie, solange Sie darauf achten, dass die Logik nicht verletzt wird. Es kann zwei oder mehr lokale Variablen (die jeweils in einer eigenen Funktion deklariert sind) mit demselben Namen wie eine globale Variable geben. Sie müssen vorsichtig sein und auf ihre Sichtbarkeit achten.
 
Wie verbinde ich einen Indikator korrekt mit einem anderen über iCustom()?
Ich habe einen Indikator, bei dem alle 8 Indikator-Arrays belegt sind. Wie wird der zweite Indikator korrekt erstellt, so dass er die Kurve des ersten Indikators in ein Indikator-Array zeichnet?
Beide Indikatoren #property indicator_chart_window.
Die naheliegendste Erklärung ist die Analogie in Form des Codes der beiden verbundenen Indikatoren.
Vielen Dank im Voraus!!!
 
Leo59:
Wie verbinde ich einen Indikator korrekt mit einem anderen über iCustom()?
Ich habe einen Indikator, bei dem alle 8 Indikator-Arrays belegt sind. Wie wird der zweite Indikator korrekt erstellt, so dass er die Kurve des ersten Indikators in ein Indikator-Array zeichnet?
Beide Indikatoren #property indicator_chart_window.
Die naheliegendste Erklärung ist die Analogie in Form des Codes der beiden verbundenen Indikatoren.
Vielen Dank im Voraus!!!

Lesen Sie in den Indikatorpuffer des zweiten Indikators den Puffer des ersten Indikators, von dem Sie die Zeile anzeigen möchten.
Grund der Beschwerde: