[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 174

 
chief2000:

Die Frage ist nicht mehr, wie man den Code schreibt, sondern auf der Ebene einer Idee - ist es möglich, Mehrfachschleifen zu vermeiden,

was eine große Belastung für den Prozessor darstellt. Es gab z.B. die Idee, die Anzahl der offenen STOP-Aufträge zu verfolgen - wenn die Anzahl um eins gesunken ist, aber der Auftrag nicht gelöscht wurde => einen Marktauftrag eröffnen.

seine Öffnungszeit und sein Typ sollten in einem Array abgelegt werden. Etwa so.

Jede Idee ist willkommen.


Duplizieren Sie nur alle Eigenschaften von Marktaufträgen in Arrays und vergleichen Sie sie mit aktuellen Marktaufträgen. Vergleichen Sie sie nach Ticket und wenn es keine Übereinstimmung nach Auftragsart gibt, bedeutet dies, dass der ausstehende Auftrag ausgelöst wurde, wenn er nicht im Array gefunden wird, ist er in die Historie eingegangen usw.

Kann sich als nützlich erweisen https://www.mql5.com/ru/code/9366

 

Hallo.

Ich bitte wirklich um einen Code, der die letzten beiden Fraktale vergleicht (entweder nach oben oder nach unten).

Für mich ist es immer noch eine Wildnis.

Vielen Dank im Voraus.

 

WIE BERECHNET MAN DIE ANZAHL DER PROFITABLEN LONG-POSITIONEN UND SEPARAT DIE ANZAHL DER PROFITABLEN SHORT-POSITIONEN IM VERLAUF DER ARBEIT EINES EAS?

Die Strategie lautet wie folgt: Wenn die Anzahl der profitablen Long-Positionen seit dem Start des EA (oder besser über die gesamte Kontohistorie) größer ist als die Anzahl der Short-Positionen, dann sollten nur Long-Positionen eröffnet werden dürfen. Und vice versa.

Es ist klar, wie diese Geschäfte zu zählen sind, wenn sie durch den Expert Advisor geschlossen werden: schließen - zählen. Aber wenn eine Position durch TP oder SL geschlossen wird, dann ... ?

Vielleicht hat jemand einen fertigen Code für diese Funktion?

 
splxgf:

Duplizieren Sie nur alle Eigenschaften von Marktaufträgen in Arrays und vergleichen Sie sie mit aktuellen Marktaufträgen. Vergleichen Sie nach Ticket, wenn es eine Unstimmigkeit nach Auftragsart gibt, bedeutet dies, dass der ausstehende Auftrag ausgelöst wurde, wenn er nicht im Array gefunden wird, bedeutet dies, dass er in die Historie eingegangen ist, usw.

Kann nützlich sein https://www.mql5.com/ru/code/9366

Ich danke Ihnen!

 
nemo811:

Hallo.

Ich bitte wirklich um einen Code, der die letzten beiden Fraktale vergleicht (entweder nach oben oder nach unten).

Für mich ist es immer noch eine Wildnis.

Vielen Dank im Voraus.

Im einfachen Fall ist es so etwas wie:

      Fractal_Up[i+3]   = iFractals(NULL, 0, MODE_UPPER, i+3);
      Fractal_Down[i+3] = iFractals(NULL, 0, MODE_LOWER, i+3);


      if(Fractal_Down[i+3]>0) {
         Fractal_Sell_Low_3  = Fractal_Sell_Low_2;
         Fractal_Sell_Time_3 = Fractal_Sell_Time_2;

         Fractal_Sell_Low_2  = Fractal_Sell_Low_1;
         Fractal_Sell_Time_2 = Fractal_Sell_Time_1;

         Fractal_Sell_Low_1  = Fractal_Down[i+3];
         Fractal_Sell_Time_1 = Time[i+3];
      }


      if(Fractal_Up[i+3]>0) {
         Fractal_Buy_Up_3   = Fractal_Buy_Up_2;
         Fractal_Buy_Time_3 = Fractal_Buy_Time_2;

         Fractal_Buy_Up_2   = Fractal_Buy_Up_1;
         Fractal_Buy_Time_2 = Fractal_Buy_Time_1;

         Fractal_Buy_Up_1   = Fractal_Up[i+3];
         Fractal_Buy_Time_1 = Time[i+3];
      }
 
chief2000:

Vielen Dank - wir werden das prüfen.
 
Roger:

Eigentlich ist es unsinnig, solche Fragen an einen erfahrenen Schriftsteller zu stellen :) Es stellt sich heraus, dass Sie nicht reif genug sind, um ein Anfänger zu sein. Wenn Sie also überprüfen wollen, ob die berechneten Stopps und Takes nahe am Eröffnungskurs des Auftrags liegen, werden Sie wahrscheinlich gar nichts lernen.
Aber natürlich nicht... ))) Beratung ist gut )))) Aber es wurde schon lange getestet! Takes und Stops größer als die zulässigen Mindestwerte ... Und im Testgerät funktioniert alles wunderbar! Aber im "Live"-Modus will er keine Positionen öffnen! Vielleicht, lieber ROGER, bin ich noch nicht reif genug, um ein Anfänger zu sein ))))) Aber Sie sollten sich zumindest den Code ansehen, den ich geschrieben habe - wenn es nicht zu viel Mühe macht... Vielleicht finden Sie dort einen Fehler...
 
7sintez:
Warum nicht... ))) Beratung ist gut )))) Nur wurde alles schon vor langer Zeit getestet! Takes und Stops größer als die zulässigen Mindestwerte ... Und im Testgerät funktioniert alles bestens! Aber im "Live"-Modus will er keine Positionen öffnen! Vielleicht, lieber ROGER, bin ich noch nicht reif genug, um ein Anfänger zu sein ))))) Aber Sie sollten sich zumindest den Code ansehen, den ich geschrieben habe - wenn es nicht zu viel Mühe macht... Vielleicht finden Sie dort einen Fehler...
Ich hatte eine solche Wanze in einem Maklerhaus. Es stellte sich heraus, dass wir eine Order mit TP=0 und SL=0 eröffnen und dann die erforderlichen Levels mit OrderModify() setzen sollten. Andernfalls wurde ständig die Fehlermeldung "Die Haltestellen sind zu nah" angezeigt.
 
ikatsko:
Ich hatte ein solches Problem mit einem Maklerunternehmen. Es stellte sich heraus, dass ich eine Order mit TP=0 und SL=0 eröffnen und dann OrderModify() verwenden musste, um die erforderlichen Level zu setzen. Andernfalls wurde ständig die Fehlermeldung "Die Haltestellen sind zu nah" angezeigt.
Ich danke Ihnen...! Vielleicht liegt hier das Problem... Ich habe alles in meinem Code durchgesehen - ich kann den Fehler nicht finden!!!
 

Ich habe bei der Suche keine Antwort gefunden

Wie kann ich aus dem Skript ersehen, welche Indikatoren sich auf dem Chart befinden, welche Parameter und Indikatoren, in welchen Unterfenstern sie sich befinden?

danke