Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 250
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 einfach ist, schnell zu überprüfen, ist es in etwa so:
Die Aufträge folgen in der Regel zeitlich aufeinander, dies ist jedoch nicht garantiert. Daher sollte die Chronologie überprüft werden. Aber für Experimente ist das ausreichend.
Wenn es einfach ist, schnell zu überprüfen, ist es in etwa so:
Die Aufträge folgen in der Regel zeitlich aufeinander, dies ist jedoch nicht garantiert. Daher sollte die Chronologie überprüft werden. Aber für Experimente ist das ausreichend.
Ich stimme zu, dass der Zeitpunkt nicht garantiert ist. Deshalb möchte ich alle abgeschlossenen Aufträge bis zum Ticket durchgehen. Ich kenne den Bestellschein und versuche, damit zu rechnen, aber irgendetwas ist schief gelaufen) Was wäre der richtige Weg?
Wenn es einfach ist, schnell zu überprüfen, ist es in etwa so:
Die Aufträge folgen in der Regel zeitlich aufeinander, dies ist jedoch nicht garantiert. Daher sollte die Chronologie überprüft werden. Aber für Experimente ist das ausreichend.
Wenn wir uns die Historie ansehen, wäre es besser, die Aufträge von den kleineren zu den größeren durchzusehen, die zum Zeitpunkt der Neuberechnung geschlossen werden, da die Marktaufträge von den größeren zu den kleineren betrachtet werden, so dass wir die zum selben Tick geöffneten und geschlossenen Aufträge korrekt berücksichtigen können. Ich denke schon)
Wenn es einfach ist, schnell zu überprüfen, dann ist es etwa so:
Als Faustregel gilt, dass die Aufträge zeitlich aufeinander folgen, aber das ist nicht garantiert. Daher ist es sinnvoll, die Chronologie zu überprüfen. Aber für Experimente ist es ausreichend.
Ist der Code von Alexey nicht auch richtig?
In der Historie ist es besser, von weniger zu mehr Aufträgen zu gehen, um diejenigen zu berücksichtigen, die zum Zeitpunkt der Neuberechnung geschlossen werden, es sind die Marktaufträge, die wir von mehr zu weniger zählen, um offene und geschlossene Aufträge zum selben Tick korrekt zu berücksichtigen. Ich denke schon)
Rechnen die Codes von Alexey auch falsch?
Ich habe es nicht ausprobiert. Ich werde es jetzt versuchen. Ich werde Ihnen Bescheid geben.
Wenn es einfach ist, schnell zu überprüfen, ist es in etwa so:
Die Aufträge folgen in der Regel zeitlich aufeinander, dies ist jedoch nicht garantiert. Daher sollte die Chronologie überprüft werden. Aber für Experimente ist es ausreichend.
Ich habe es überprüft und viele Fehler während der Kompilierung erhalten, ich habe sie alle behoben, außer :
if(profit>max)
Diese Zeile verstehe ich nicht ganz. Können Sie das erklären?
Die Idee ist, das Ticket zu ändern, wenn Sie einen bestimmten Gewinn erreicht haben
Der Maximalwert ist die Grenze des Gewinns, ab der das Ticket wechselt. Der Wert wird von Ihnen festgelegt.
Der Maximalwert ist die Grenze des Gewinns, ab der das Ticket wechselt. Sein Wert wird von Ihnen festgelegt.
Das Problem ist ein anderes, wenn ich es richtig verstehe. Es gibt 1, 2 und 3 Aufträge. Ich weiß nicht, wie die offenen Preise gebildet werden. Auftrag 3 ist abgeschlossen, der Gesamtgewinn ist gleich dem Gewinn von Auftrag 3. D.h. wir müssen das Ticket für den Auftrag berechnen, der vor Auftrag 3 eröffnet wurde. Dann ist die Ordnung 2 geschlossen. Wir sollten das Ticket der Bestellung finden, die vor Bestellung 2 geöffnet wurde. Der Gesamtgewinn ist gleich dem Gewinn der Aufträge 2 und 3.
Ich verstehe nicht, warum, aber es scheint die Logik zu sein).
Valery, ich habe die Logik in diesen beiden Sätzen nicht ganz verstanden.
Forum für Handel, automatisierte Handelssysteme und Strategietests
FAQ von Anfängern MQL4 MT4 MetaTrader 4
makssub, 2021.09.01 16:38
Ich sollte die erste Funktion verwenden, um das gewünschte Orderticket zu finden, und die zweite Funktion sollte alle Gewinne aller geschlossenen Orders nach diesem Ticket berechnen. Ich bin nicht an den Gewinnen der vorhergehenden Jahre interessiert. Aber der zweite berechnet sie nicht korrekt. Wenn ein Auftrag eröffnet wird, werden diese 2 Funktionen aufgerufen und daher sollte der Wert gleich 0 sein, ist es aber nicht.
PS hat Ihren Rat befolgt, Arrays aufgegeben)
12. Kasten oben)
Ich habe an alles gedacht und es auf der Grundlage Ihrer Tipps zu meinem eigenen gemacht)
Die Aufgabe bestand darin, einen Verlustauftrag durch andere Aufträge mit Gewinn zu decken.
Wir haben es umgesetzt. Wir haben uns das Ticket des Auftrags, der nach dem verlorenen Auftrag geöffnet wurde, gemerkt; dies war unser Berichtspunkt. Ab diesem Zeitpunkt beginnen wir mit der Berechnung des Gewinns des verlustbringenden Auftrags und des Gewinns der danach geschlossenen Aufträge. Ich möchte Sie daran erinnern, dass der erste Auftrag offen ist und wir ihn schließen, wenn er einen Gewinn erzielt.
wenn ((CalculateProfitHistory() + FirstProfit() >= Gewinn)
{
CloseFirst();
Print ("Schließen Sie den ersten Verlustauftrag");
}