Diskussion zum Artikel "Einführung in MQL5: Schreiben eines einfachen Expert Advisor und benutzerdefinierten Indikators" - Seite 3
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
Frage 4: Im Artikel steht Folgendes:
Aber warum setzen wir Null in das Strukturelement request.tp? Weil bei einem schwebenden Kaufauftrag request.tp=0 bedeutet, dass der TP immer unter dem aktuellen Geldkurs liegen wird. Und wie mir scheint, sollte eine Order mit einem solchen TP-Wert entweder wegen eines falsch angegebenen Wertes des TP-Parameters abgelehnt werden oder sofort zum aktuellen Geldkurs ausgeführt werden, nachdem der Server eine solche Order akzeptiert hat.
Frage 5: Im Artikel steht Folgendes:
Im MQL5-Referenzhandbuch heißt es außerdem, dass"SYMBOL_TRADE_STOPS_LEVEL die Mindestspanne in Pips vom aktuellen Schlusskurs für das Setzen von Stop-Aufträgen ist ". Wie es mir scheint, geht es in beiden Fällen um die Erfüllung der Ungleichung
Warum prüft der Expert Advisor Code dann den Abstand zwischen Bid (Ask) und StopLoss auf Überschreitung der minimalen StopLevel Marge?
Ist eine solche Prüfung in allen Fällen erforderlich, oder handelt es sich um eine Besonderheit bei der Umsetzung einer bestimmten Strategie? Kurz gesagt, sollte ich immer den Abstand zwischen Bid (Ask) und StopLoss überprüfen, wenn ich eine Pending-Order platziere, um zu sehen, ob die minimale StopLevel-Marge überschritten wird?
Aber warum setzen wir Null in das Strukturelement request.tp? Denn wenn wir eine schwebende Kauforder haben , dann bedeutet request.tp=0, dass der TP immer unter dem aktuellen Geldkurs liegt. Und wie es mir scheint, sollte eine Order mit einem solchen TP-Wert entweder aufgrund eines falsch angegebenen Wertes des TP-Parameters abgelehnt werden oder sofort zum aktuellen Geldkurs ausgeführt werden, nachdem der Server eine solche Order akzeptiert hat.
Kurz gesagt, sollte ich immer den Abstand zwischen Bid (Ask) und StopLoss überprüfen, wenn ich eine schwebende Order platziere, um zu sehen, ob die minimale StopLevel-Marge überschritten wird?
Es ist immer notwendig, das SL/TP/Entry-Kursniveau von Pending Orders auf die Mindestmarge zu überprüfen, wenn Sie mit der Einstellung von Orders sehr nahe am Markt arbeiten.
Wenn Sie mit Stops oder Pending Orders in einem vernünftigen und vom Markt entfernten Modus arbeiten (Dutzende und Hunderte von Punkten), können Sie eine solche Überprüfung überspringen.
Sie sollten immer das SL/TP/Entry-Preis-Niveau von schwebenden Aufträgen auf minimale Einrückung überprüfen, wenn Sie mit Aufträgen arbeiten, die sehr nahe am Markt liegen.
Klärung der Frage 5.1.
Ich lasse den Expert Advisor drei Niveaus für jede schwebende Order berechnen: Einstiegskurs/SL/TP.
Da im Voraus nicht bekannt ist, wie nah/weit das Einstiegskursniveau im Verhältnis zum aktuellen Marktpreis liegen wird, wirft die Überprüfung des Einstiegskursniveaus auf Einhaltung der Mindestspanne keine Fragen auf.
Aber gegen welches Niveau sollten wir die beiden anderen SL/TP-Niveaus prüfen? Es ist etwas unlogisch, die SL/TP-Niveaus in Bezug auf den aktuellen Marktpreis zu prüfen, da das Einstiegskursniveau ziemlich weit vom aktuellen Marktpreis entfernt sein kann und eine solche Prüfung jede Relevanz verliert. Aus diesem Grund habe ich im Expert Advisor die Bedingung |Einstiegskurs-TP(SL)|>SYMBOL_TRADE_STOPS_LEVEL zur Überprüfung vorgesehen. Im Allgemeinen funktioniert der Expert Advisor mit solchen Bedingungen gut, aber als ich anfing, den EA-Code zu optimieren, fragte ich mich, ob eine solche Prüfung aus der Sicht der Verarbeitung ausstehender Aufträge durch den Server notwendig ist. Der Code des Expert Advisors ist nicht mit der Überprüfung dieser Bedingung überlastet (die Strategie des Expert Advisors selbst erfordert eine solche Überprüfung nicht).
Mit anderen Worten, sollte die schwebende Order mit drei Entry-Preis/SL/TP-Levels immer die SL/TP-Levels auf die Mindestspanne prüfen? Und wenn ja, sollte sie auf eine Mindestmarge in Bezug auf welches Niveau (Preis) geprüft werden?
Etwas fehlt die Möglichkeit, meinen Beitrag zu bearbeiten. Also werde ich hier hinzufügen:
= Für jede Pending Order berechnet der Expert Advisor unabhängig voneinander drei Stufen: Einstiegskurs/SL/TP. Der Zweck "eine Pending Order näher an den Marktzu setzen " wird nicht verfolgt. =
SL und TP in der Pending-Ebene werden vom Einstiegskurs so bewertet, dass sie nicht weniger als ein Mindestniveau davon entfernt sind.
Im MT4 funktioniert es genauso.
SL und TP im Pending-Level werden vom Entry-Kurs aus bewertet, so dass sie mindestens ein Level von diesem entfernt sind.
Im MT4 funktioniert das genauso.
OK, jetzt habe ich alles verstanden. Also, ich kann den EA-Code nicht einfacher machen; zunächst wurde alles gemäß dem Artikel gemacht, d.h. korrekt.
Und ich kenne mich mit MT4 nicht aus, also sind solche Fragen "von einem Dummy". Vielen Dank!
...Überprüfen Sie immer das SL/TP/Entry-Preis-Niveau der schwebenden Aufträge auf eine minimale Einrückung, wenn Sie mit Aufträgen arbeiten, die sehr nahe am Markt liegen.
...SL und TP in der Pending-Ebene werden vom Entry-Preis geschätzt, so dass sie nicht weniger als ein Mindestniveau davon entfernt sind.
Frage 6: Es ist klar, dass bei der Platzierung von Pending Orders die minimale Einrückung überprüft wird. Jetzt haben wir eine Frage zu den Besonderheiten der Überprüfung der Mindestspanne bei der Änderung des TP/SL einer offenen Position.
Situation: Eine offene Position hat einen festen TP und einen "Pull-up" SL, der sich dem festen TP nähert, wenn sich der Preis in eine günstige Richtung bewegt. In Analogie zum Setzen einer Pending Order prüft der Expert Advisor jedes Mal, wenn er einen Auftrag zur Änderung des TP/SL einer offenen Position sendet, die minimale Einrückung in Bezug auf die beiden Niveaus TP und SL.
In der Beschreibung der Funktion PositionModify der Klasse CTrade wird jedoch angegeben, dass der Parameter tp "Der neue Preis, bei dem der Take Profit ausgelöst wird (oder, wenn die Änderung nicht erforderlich ist, der vorherige Wert)" ist.
Dementsprechend lautet die Frage: Wenn eine Änderung des zuvor festgelegten TP-Niveaus nicht erforderlich ist, ist es dann notwendig, beim Senden eines Auftrags zur Änderung des TP/SL einer offenen Position die Mindestspanne dieses TP-Niveaus vom aktuellen (tatsächlichen) Preis zu prüfen? Oder reicht es in einer solchen Situation aus, die Mindestmarge nur in Bezug auf den zu ändernden SL zu prüfen?
Mit anderen Worten: Ist es möglich, bei der Übermittlung eines Auftrags zur Änderung des TP/SL einer offenen Position die Mindestspanne in Bezug auf den TP nicht zu prüfen, wenn dieses TP-Niveau bereits früher festgelegt wurde und keiner Änderung unterliegt, und im Änderungsauftrag einfach den vorherigen TP-Wert anzugeben?
Nachdem Sie die Datei "indicator_TP_de.mql5" heruntergeladen haben, benennen Sie sie bitte in "indicator_TP.mql5" um.