Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 103
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Wenn es 7.43 Uhr ist und ich noch nicht im Bett bin... Also wird es wohl Gral geschrieben!
Nein, kein Grund, so zu fluchen :)) Yusuf gab mir den Gral. Ich sitze in meinen Koffern und warte auf Manna vom Himmel, ich fahre auf die Malediven :))
Zeigen Sie mir, was Sie getan haben... Keine Telepathen hier - die sind im Urlaub.
Ich habe den allgemeinen Code des Expert Advisors hochgeladen, um deutlicher zu machen, was er tun soll... Ich weiß, dass es ein Chaos ist, aber ich habe noch nichts anderes gelernt =)))
Ich werde Ihnen noch einmal sagen, wo es dumm ist
einen schwebenden Auftrag öffnen: öffnet entweder einen schwebenden Auftrag ohne den entgegengesetzten oder eine ganze Reihe von schwebenden Aufträgen in einer Richtung.
Es löscht Aufträge: manchmal abends zu einer genau festgelegten Zeit, manchmal an einem Tag, oder es schließt gar nicht ...
Nun, die Bedingung ist:
Wenn die erste offene Pending-Order mit Gewinn schließt, wird die zweite sofort gelöscht - ich bezweifle, dass ich es richtig geschrieben habe, aber ich kann es nicht in der Praxis überprüfen, da ich nicht zwei entgegengesetzte Positionen eröffnen möchte=(((((
Bei der Suche nach dem letzten abgeschlossenen Auftrag sollten wir zuerst den zuletzt abgeschlossenen Auftrag finden, aber die Prüfung, ob er zum Zeitpunkt "Take" abgeschlossen wurde, sollte aus der Schleife herausgenommen werden, da sonst für jeden abgeschlossenen Auftrag geprüft wird, ob er zum Zeitpunkt "Take" abgeschlossen wurde, und wenn dies der Fall ist, wird der Zeitpunkt des ersten zum Zeitpunkt "Take" abgeschlossenen Auftrags in der Schleife gespeichert und nicht der letzte.
Nun, das ist Code-Optimierung. Das Ergebnis wird sich aus meiner Sicht nicht ändern. Es dauert nur länger, sie zu berechnen. Ich habe den Code korrigiert, aber es ist immer noch dasselbe.
Trotzdem stimmt etwas nicht mit ihr.
Ich habe versucht, Ihnen den Code eines EA zu zeigen, ich weiß, es ist ein Chaos, aber ich habe nie gelernt, wie man es auf andere Weise zu tun).
Ich werde Ihnen noch einmal sagen, wo es blöd ist
Pending Orders zu eröffnen: Es wird entweder eine Pending Order ohne die Gegenseite oder eine ganze Reihe von Pending Orders in eine Richtung eröffnet.
Löschung von Aufträgen: löscht sie jedes Mal, manchmal abends zu einer genau festgelegten Zeit, manchmal an einem Tag, oder schließt sie überhaupt nicht...
Nun, die Bedingung:
Wenn die erste offene Pending Order mit einem Gewinn schließt, wird die zweite sofort gelöscht - ich bezweifle auch, dass ich es richtig geschrieben habe, aber ich kann nicht in der Arbeit überprüfen, weil ich nicht zwei entgegengesetzte Positionen öffnen möchte=(((((
Um eine Frage mit einer Frage zu beantworten. Was zum Teufel ist das?
Entschlüsseln Sie es für mich, ich verstehe es nicht :)
Die Prüfung zur Eröffnung einer Position sollte nach dem Versuch, eine Position zu eröffnen, erfolgen. D.h.
Sie platzieren ihn, nachdem Sie eine Bestellung abgeschickt haben.
Der Preis muss höher oder niedriger als der Asc- oder Bid-Preis sein, um die Position zu eröffnen. So verhält es sich auch mit dem Buy:
if (OOP > Ask)
Nun, das ist Code-Optimierung. Das Ergebnis wird sich aus meiner Sicht nicht ändern. Es dauert nur länger, sie zu berechnen. Ich habe den Code korrigiert, aber es ist immer noch dasselbe.
Es ist immer noch etwas faul.
Nein, es geht nicht um Code-Optimierung. Es sucht nur nach genau dem letzten. Wenn wir die Suche nach allen geschlossenen Aufträgen abgeschlossen und den letzten geschlossenen Auftrag gefunden haben, sollten wir erst dann prüfen, ob er durch den Take geschlossen wurde, und wenn er durch den Take geschlossen wurde, ist es nur dann sinnvoll, die Suche nach dem Rest fortzusetzen.
Was erhalten wir, wenn wir innerhalb der Schleife nach einer geschlossenen Schleife suchen? Wir erhalten einen Logikfehler:
Angenommen, wir haben einen Auftrag ausgewählt, der vor einem Jahr abgeschlossen wurde. Seine Zeit wird in jedem Fall größer als -1 sein, so dass wir sie überprüfen, um sie bei take zu schließen (sie wird innerhalb der Schleife überprüft). Ja, es wurde bei der Übernahme geschlossen... Was macht Ihre Funktion als nächstes? Richtig - es funktioniert weiterhin mit diesem Auftrag, der vor einem Jahr an der Marke abgeschlossen wurde. Lassen Sie mich sehen, was sonst noch falsch ist. Bin gerade nach Hause gekommen...
Es wurde geschrieben: 2. Wenn die letzte offene Position beim Take geschlossen wird, dann schließen Sie das Ganze!
Es geht also folgendermaßen:
Wir übergeben der Funktion das zu prüfende Symbol, die magische Zahl und das Delta (Abstand in Pips == Differenz zwischen Take- und Close-Kurs der Order), wie folgt:
Ich habe diese Funktion nicht überprüft, ich habe sie eigenhändig geschrieben. Ich überlasse es also Ihnen , nach Fehlern zu suchen.
Sie können es int machen und Rückgabecodes verwenden. Zum Beispiel, wenn die gesuchte Position nicht existiert oder existiert, aber mit einem Verlust geschlossen wurde, wird -1 zurückgegeben;
wenn sie existiert und mit einem Gewinn geschlossen wurde, aber nicht innerhalb des Deltas, wird 0 zurückgegeben;
wenn sie existiert und mit einem Gewinn geschlossen wurde und bei Take (innerhalb des Deltas), wird 1 zurückgegeben...
Der Spielraum für Phantasie ist enorm...
Wenn wir andererseits prüfen, ob die Einnahme abgeschlossen ist, was erhalten wir dann? Wir erhalten einen Logikfehler:
Angenommen, wir haben einen Auftrag ausgewählt, der vor einem Jahr abgeschlossen wurde. Seine Zeit wird auf jeden Fall größer als -1 sein, also überprüfen wir sie, um sie bei der Aufnahme zu schließen (diese Überprüfung innerhalb der Schleife ist im Code enthalten). Ja, es wurde bei der Übernahme geschlossen...
Wenn wir also eine Schleife über alle Aufträge machen, wird die Schleife trotzdem durch alle Aufträge laufen. Der Zeitpunkt des Abschlusses jeder Bestellung wird mit der zuvor ausgewählten Bestellung verglichen. Aber genau hier haben wir ein Leistungsproblem. TakeProfit wird in der Schleife ständig überprüft, bei jeder geschlossenen Position und nicht nur bei der letzten. Ist es nicht so!?
Richtig.
Aber es gibt Open[], mit einem Eröffnungspreis.
Verstanden, danke :)
Wenn Sie also alle Aufträge durchlaufen, wird der Zyklus auf jeden Fall alle Aufträge durchlaufen. Der Zeitpunkt des Abschlusses jeder Bestellung wird mit der zuvor ausgewählten Bestellung verglichen. Aber genau hier haben wir ein Leistungsproblem. TakeProfit wird in der Schleife ständig überprüft, bei jeder geschlossenen Position und nicht nur bei der letzten. Ist es nicht so?
Wenn wir also eine Schleife über alle Aufträge machen, wird die Schleife sowieso über alle Aufträge laufen. Die Schlusszeit jeder Bestellung wird mit der zuvor ausgewählten Bestellung verglichen. Aber hier haben wir ein Leistungsproblem. TakeProfit wird in der Schleife ständig überprüft, bei jeder geschlossenen Position und nicht nur bei der letzten. Ist es nicht so!?
Das ist eine Störung: