Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 98

 
Andrey Sokolov:
Wenn wir sowohl Kauf- als auch Verkaufsabschnitte im Code haben, wird der Stop nach Auslösung der schwebenden Order aus irgendeinem Grund in jede Preisrichtung korrigiert. Und wenn es nur einen Kauf- oder Verkaufsteil des Codes gibt, wird der Stopp nur dann wie vorgesehen korrigiert, wenn sich der Preis davon entfernt.

Bereinigen Sie also den Code, er enthält eine Menge Fehler. Zum Beispiel muss für jede Aktion mit einer Bestellung diese zuerst mit der FunktionOrderSelect() ausgewählt werden, diese Bedingung ist nicht überall in Ihrem Code erfüllt. Bei der Änderung eines Auftrags sollten dann die Parameter, die unverändert bleiben, in ihrer ursprünglichen Form übergeben werden und nicht durch Null ersetzt werden.

Das heißt, anstelle vonOrderModify(ticket, price, sl,0,0, Blue) benötigen wirOrderModify(ticket, price, sl,OrderTakeProfit(),OrderExpiration(), Blue).

Wir sollten nicht hoffen, dass das Ticket für immer gespeichert wird, das ist nicht wahr, vor allem, wenn mehrere Bestellungen geöffnet werden und ihre Tickets in dieselbe Variable geschrieben werden. Und versuchen Sie dann, den Auftrag mit einem unbekannten Ticket zu ändern oder zu löschen.

 
Andrey Sokolov:
Wenn es beide Teile des Codes gibt, sowohl für den Kauf als auch für den Verkauf, dann wird nach dem Auslösen der schwebenden Order ihr Stop aus irgendeinem Grund in jede Preisrichtung korrigiert. Und wenn es nur einen BUY- oder SELL-Teil des Codes gibt, wird der Stop wie vorgesehen nur dann korrigiert, wenn sich der Preis von ihm wegbewegt.
Erstellen Sie zunächst verschiedene Variablen für den Kauf und Verkauf von Tickets
 
Vitalie Postolache:

Zum Beispiel muss für jede Aktion auf einer Bestellung diese zuerst mitOrderSelect() ausgewählt werden, eine Bedingung, die nicht überall erfüllt ist.

So wird sie ausgewählt, die Funktion am Ende. Oder was ist falsch?
 
Vitalie Postolache:

Bei der Änderung des Auftrags müssen dann die Parameter, die unverändert bleiben, in ihrer ursprünglichen Form übergeben werden, ohne sie zu löschen.

Das heißt, anstelle vonOrderModify(ticket, price, sl,0,0, Blue) sollten SieOrderModify(ticket, price, sl,OrderTakeProfit(),OrderExpiration(), Blue) verwenden.

Gewinn und Verfallszeitpunkt fehlen dort, daher ist es Null. Ist sie falsch?
 
Sergey Gritsay:
Erstellen Sie zunächst verschiedene Variablen für den Kauf und Verkauf von Tickets
Vitalie Postolache:

Man kann nicht hoffen, dass ein Ticket für immer im Speicher bleibt, das stimmt nicht, vor allem nicht, wenn mehrere Aufträge geöffnet werden und deren Tickets in dieselbe Variable geschrieben werden. Und dann wird versucht, einen Auftrag mit einem unbekannten Ticket zu ändern oder zu löschen.

Ich danke Ihnen.

Das war in der Tat das Problem. Aber das habe ich schon getan, bevor ich hier gefragt habe, anscheinend musste ich schlafen gehen.

 

Ich bin neu hier, aber ich arbeite schon eine Weile daran.

Ich habe einen guten Eindruck, dass es gut funktioniert, aber ich habe einen Drawdown, was ich tun sollte, wenn ich weniger Drawdown haben möchte.

Auf dem Screenshot ist ein Verkaufsgeschäft geöffnet.

 
Denizrip:

Ich bin neu hier, aber ich arbeite schon eine Weile daran.

Ich habe einen guten Eindruck, dass es gut funktioniert, aber ich habe einen Drawdown, was ich tun sollte, wenn ich weniger Drawdown haben möchte.

Auf dem Screenshot ist ein Verkaufsgeschäft geöffnet.

Sie hätten Kaufen statt Verkaufen eröffnen sollen und bei 1,0620 Verkaufen, dann hätten wir keinen Slippage gehabt.
 
Denizrip:

Ich bin neu hier, aber ich arbeite schon eine Weile daran.

Ich habe einen guten Eindruck, dass es gut funktioniert, aber ich habe einen Drawdown, was ich tun sollte, wenn ich weniger Drawdown haben möchte.

Ich habe auf dem Screenshot einen Verkaufshandel eröffnet.

Bauen Sie eine Zeitmaschine, dringend. Kommen Sie ein wenig früher als die Zeit des Verkaufs zurück, klatschen Sie sich ab und anstatt zu verkaufen, kaufen Sie :)

Aber im Ernst, der "Preis ist gestiegen", und zwar viel früher als die Zeit, die der Pfeil auf dem Bild anzeigt. Die Position hätte also umgedreht werden müssen, anstatt zu warten, bis der Kurs weiter steigt.

Oder auf den Durchschnitt, wo der letzte Pfeil ist, wenn die Anzahlung ausreichend ist. Das ist, wenn der Stopp-Loss Sie anwidert, aber sonst - Stopp-Loss Regeln.

 
Denizrip:

Ich bin neu hier, aber ich arbeite schon eine Weile daran.

Ich habe einen guten Eindruck, dass es gut funktioniert, aber ich habe ein Problem mit Drawdown, was ich tun sollte, wenn ich weniger Drawdown möchte.

Ich habe auf dem Screenshot einen Verkaufshandel eröffnet.

2 Varianten:

ein Ende zu setzen, bevor es zu einem Schleppnetz wird

oder einen Verlust auffangen und den Moment genießen

 

Vitaly Muzichenko:

.... und jemanden für den Handel, so dass Sie mehr als einen Zyklus verwenden können.

Ich danke Ihnen.

Grund der Beschwerde: