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

 
TEXX:

Guten Tag.

Die Auftragsänderung funktioniert nur teilweise, helfen Sie mir herauszufinden, was das Problem ist.

Code und Protokoll im Anhang. Ich habe in das Protokoll geschrieben, was funktioniert und was nicht.....


Wahrscheinlich aus diesem Grund.

        if (OrderOpenPrice()==!LastSellPrice()) sell_sl = 0;
        if (OrderOpenPrice()==LastSellPrice()) sell_sl = last_sell_sl;

Die zweite Bedingung wird fast nie erfüllt

 
Vinin:


Wahrscheinlich aus diesem Grund.

Die zweite Bedingung wird fast nie erfüllt sein


Wie kann man das schaffen?
 
TEXX:

aber wie soll das funktionieren?

Schlagen Sie das Thema mit einer Suche nach - etwa wie man zwei Zahlen vom Typ double vergleicht...
 
Roman.:

Schlagen Sie das Thema in der Suche nach - etwa wie man zwei Zahlen vom Typ double vergleicht...


Die Normalisierung des Eröffnungskurses hat geholfen, aber die Bedingung für Null und Nicht-Null-Stop.... funktioniert nicht.

DANKE an alle!!! Ich habe es herausgefunden, meine Hände sind einfach falsch, ich habe != falsch geschrieben und das ist der Grund für alle Probleme.

 

Können Sie mir sagen, wie ich den Gesamtgewinn aller offenen Aufträge herausfinden kann?

OPS: Entschuldigung, französische Krankheit - nicht wissenschaftlich...

KontoGewinn()

 

Meine Herren MQL-Kenner, können Sie mir sagen, ob es technisch möglich ist, das Folgende zu tun?

- Wir nehmen 100 (oder eine beliebige andere Anzahl) von Zitaten aus der Vergangenheit und wählen sie nach einem bekannten Prinzip aus;

- Modellieren Sie eine offene Kaufposition auf diesen 100 Stücken und zählen Sie Take Profit und Stop Loss auf, so dass der Gesamtgewinn ein normaler ist (d.h. wir machen eine Anpassung auf 100 separaten Stücken der Geschichte, so dass nur ein Auftrag auf jedem Stück funktioniert, so dass wir insgesamt 100 Aufträge haben), dann machen Sie das gleiche für die Verkaufsposition, mit Aufzählung von Take und Stop, die den Gewinn maximiert;

- wir eröffnen einen echten Handel - Kauf oder Verkauf, mit einem Take und einem Stop, die anhand der Historie ausgewählt werden.

Und all dies geschieht im Rahmen des Expert Advisors.

Der Trick besteht darin, dass wir nicht eine einzige, zusammenhängende Geschichte aufgreifen, sondern eine Reihe von einzelnen, und zwar jedes Mal, wenn wir eine Position schließen, bevor wir eine neue eröffnen. Ich habe wirklich darüber nachgedacht, wie man es logisch machen kann, aber ich weiß nicht, wie man es technisch mit MQL machen kann.

 
alexeymosc:

Meine Herren von MQL, können Sie mir sagen, ob es technisch möglich ist, das Folgende zu tun?

- Wir nehmen 100 (oder eine beliebige andere Anzahl) von Zitaten aus der Vergangenheit und wählen sie nach einem bekannten Prinzip aus;

- Modellieren Sie eine offene Kaufposition auf diesen 100 Stücken und zählen Sie Take Profit und Stop Loss auf, so dass der Gesamtgewinn ein normaler ist (d.h. wir machen eine Anpassung auf 100 separaten Stücken der Geschichte, so dass nur ein Auftrag auf jedem Stück funktioniert, so dass wir insgesamt 100 Aufträge haben), dann machen Sie das gleiche für die Verkaufsposition, mit Aufzählung von Take und Stop, die den Gewinn maximiert;

- wir eröffnen einen echten Handel - Kauf oder Verkauf, mit einem Take und einem Stop, die anhand der Historie ausgewählt werden.

Und all dies geschieht im Rahmen des Expert Advisors.

Der Trick besteht darin, dass wir nicht eine einzige, zusammenhängende Geschichte aufgreifen, sondern eine Reihe von einzelnen, und zwar jedes Mal, wenn wir eine Position schließen, bevor wir eine neue eröffnen. Ich habe wirklich darüber nachgedacht, wie man es logisch machen kann, aber ich weiß nicht, wie man es technisch mit MQL machen kann.

Über die ZigZag-Frakturen. Der Punkt ist, dass sich die Brüche abwechseln, d. h. nach oben, nach unten, nach oben usw.
 
Der EA braucht einen Signalton, wenn alle Aufträge geschlossen sind, bitte helfen Sie, dies zu beheben oder geben Sie eine andere funktionierende Version.

Ich danke Ihnen.

//-----
  static bool First = true;
  static int PreOrdersTotal = 0;
  int NowOrdersTotal = CountTrades();
  if(First)
  {
    PreOrdersTotal = NowOrdersTotal;
    First = false;
    return(0);
  }
  if(UseSound == true && NowOrdersTotal < PreOrdersTotal) {PlaySound(CloseSound);}
  PreOrdersTotal = NowOrdersTotal;
//-----

 
rustein:
Der EA braucht einen Signalton, wenn alle Aufträge geschlossen sind, bitte helfen Sie dieses Problem zu beheben oder geben Sie mir eine andere funktionierende Version.

Ich danke Ihnen.


Wie wir Ihnen helfen können, wenn

- nicht wissen, was die Funktion CountTrades() zurückgibt;

- wir wissen nicht, was die Variable CloseSound enthält;

- es ist nicht bekannt, ob es eine Datei gibt, deren Name (theoretisch) in CloseSound enthalten ist.

 
rustein:
Der EA braucht einen Signalton, wenn alle Aufträge geschlossen sind, bitte helfen Sie, dies zu beheben oder geben Sie eine andere funktionierende Version.

Ich danke Ihnen.


if (OrdersTotal() == 0) {
  if (UseSound)  {
     PlaySound(CloseSound);
   }
   UseSound = false;
} else {
   UseSound = true;
}