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

 
Xaoss1990:

Meine Herren Fachleute, ich brauche wieder Ihre Hilfe!

Unten ist ein Codeschnipsel, der für das Schließen von Geschäften verantwortlich ist, aber die Sache ist die, dass wenn schwebende Aufträge nicht ausgeführt werden, sie nicht gelöscht werden, ich kann nicht herausfinden, warum. Aber wenn ich einen schwebenden Auftrag, der bereits ausgeführt wurde, schließen muss, läuft alles korrekt, und wenn der Auftrag nicht ausgeführt wurde, bleibt er einfach hängen, bis er ausgeführt wird...

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();
orderticket = OrderTicket();

if (OrdersTotal() == 1 && Magic == 111 && OrderType( ) == 0) {
if (H1_BUY_5 == 0 || H1_BUY_1 == 0) {
OrderClose(orderticket, lots, Bid, 5, Yellow);
if (OrdersTotal() == 1) OrderDelete(orderticket, Brown);
}

}



Dies ist die Bedingung, die nur Kaufaufträge auswählt,

if (OrdersTotal() == 1 && Magic == 111 && OrderType( ) == 0)

es gibt also keine Möglichkeit, den schwebenden Auftrag zu entfernen

 
Roger:


Wahrscheinlich, weil man zuerst das Los berechnet und dann

Danke, ich habe die Losberechnung geändert, aber es funktioniert immer noch nicht.
 
Sancho77:
Danke, ich habe die Losberechnung geändert, aber es funktioniert immer noch nicht.


Wie kann es nicht funktionieren, was steht in den Protokollen?

Prüfen Sie, welche Werte np annimmt, hier

if (OrderSelect(np, SELECT_BY_POS, MODE_TRADES)) {
      ClosePosBySelect();}
    }
 
Es gibt keine Fehlermeldungen im Logbuch. Können Sie sich den gesamten EA-Code ansehen? Es sollte 1/3 des Lots geschlossen werden, wenn der Stoploss bereits durch das Schleppnetz auf den Breakeven verschoben wurde.
 
Sancho77:
Es gibt keine Fehlermeldungen im Logbuch. Können Sie sich den gesamten EA-Code ansehen? Es sollte 1/3 des Lots geschlossen werden, wenn der Stoploss bereits durch das Schleppnetz auf den Breakeven verschoben wurde.

Oooooooo wie durcheinander alles ist. Im Allgemeinen ist alles falsch, es ist einfacher, es wegzuwerfen und ein neues zu schreiben. Parameter werden falsch definiert, Funktionen werden falsch aufgerufen, viele unnötige Berechnungen. Gut für eine Anleitung, wie man keinen Code schreibt.
 
Roger:

Oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo unordentlich. Alles in allem ist das alles falsch, es ist einfacher, es wegzuwerfen und ein neues zu schreiben. Parameter werden falsch definiert, Funktionen werden falsch aufgerufen, viele unnötige Berechnungen. Er eignet sich gut für eine Anleitung, wie man keinen Code schreibt.
Ok, fangen wir von vorne an)
 
Sancho77:
...Sollte 1/3 des Lots schließen, wenn ein bereits durch das Schleppnetz auf Break-Even verschobener Stop-Loss ausgelöst wird.
Ich schaue mir das alles an und denke mir - warum sollte man solche Aufgaben übernehmen, wenn man sich der Grundlagen nicht sicher ist? Diese Art des Selbststudiums bringt mehr Nutzen als Schaden. Der Funke des Gedankens ertrinkt in einem Haufen von Fehlern.
 
granit77:
Ich sehe mir das alles an und denke mir - warum sollte man solche Aufgaben übernehmen, wenn man die Grundlagen nicht kennt? Diese Art des Selbststudiums bringt mehr Nutzen als Schaden. Der Funke des Gedankens ertrinkt in einem Haufen von Fehlern.

Wahrscheinlich hat er mehr geschadet als genutzt.
 
Ja, ein Tippfehler.
 

Bitte beraten Sie uns, meine Herren!

Stellen Sie sich die Situation vor: Ein Halt wird ausgelöst, weil die N-te Bedingung eingetreten ist. Aber nach ein paar Kerzenleuchtern ist die N-te Bedingung weggefallen. Mit Hilfe dieser Funktion können Sie das Geschäft wieder öffnen, nachdem die N-te Bedingung weggefallen ist. Das heißt, Sie müssen feststellen, dass ein Stop einige Balken zurück ausgelöst wurde, weil die N-te Bedingung eingetreten ist, und da die N-te Bedingung weggefallen ist, den Handel wieder aufnehmen!

Grund der Beschwerde: