
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
Im Gegensatz zu MQL5 können statische Arrays in MQL4 ihre Größe ändern.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Neue Version der Plattform MetaTrader 5 build 1595: Zugang zur Kurshistorie
fxsaber, 2017.05.01 16:36
In MT4 gab es schon immer einen Trailing Stop Fehler. Wenn Sie während einer starken Auf- und Abwärtsbewegung der Kurse beobachten,
können Sie sehen, wie sich der SL auf und ab bewegt. Hier gefangen eine kleine Bewegung, passiert viele Male größer
2017.05.22 10:53:38.563 '9898616': Nachlaufstopp #1465775202 -> 1.29765
2017.05.22 10:53:38.483'9898616': Nachlaufstopp #1465775202 -> 1.29764
2017.05.22 10:53:33.236'9898616': Nachlaufstopp #1465775202 -> 1.29763
2017.05.22 10:53:33.130'9898616': Nachlaufstopp #1465775202 -> 1.29764
2017.05.22 10:53:32.813 '9898616': Nachlaufstopp #1465775202 -> 1.29762
Ich habe es bekommen, als SL = 2 war (letzte Ziffer der Einfachheit halber), beim nächsten Tick stieg der Preis und das Terminal gab den Befehl, SL auf 4 zu erhöhen.
Beim nächsten Tick ging es nach unten, aber der SL steht immer noch bei 2. Das Terminal gibt den Befehl, SL auf 3 zu erhöhen.
Der Server, der wie eine Giraffe mit langem Hals aussieht, bearbeitet die erste Bestellung und erhöht SL auf 4. Der Server verarbeitete den zweiten Auftrag und verringerte SL auf 3.
Das Terminal sendet also zusätzliche sinnlose Aufträge, was die Belastung des Servers erhöht.
Darüber hinaus besteht für den Händler das Risiko eines unnötigen Verlustes aufgrund der Rückwärtsbewegung des SL.
Dies gilt auch für Programme, die durch EA oder Skripte abgeschlossen werden . Teilweise korrigieren wir dies, indem wir den SL in Schritten von 3...5 Pips verschieben.
Was ist zu tun? Speichern des Wertes von SL, der bei der letzten OrderModify ausgegeben wurde.
Auf der Grundlage dieses Wertes wird dann die nächste Bestellung berechnet.
Das würde so aussehen: zwei Aufträge weniger an den Server, SL wird nur nach vorne verschoben, was die CPU-Belastung des Computers reduziert.
2017.05.22 10:53:38.563 '9898616': Nachlaufstopp #1465775202 -> 1.29765
2017.05.22 10:53:33.130 '9898616': Nachlaufstopp #1465775202 -> 1.29764
2017.05.22 10:53:32.813 '9898616': Nachlaufstopp #1465775202 -> 1.29762
Bei der Änderung von Aufträgen ist es oft notwendig, den vorherigen TP/SL mit dem neuen zu ändernden Wert zu vergleichen. Wenn wir versuchen, ihn mit dem alten Wert zu ändern, erhalten wir Fehler Nr. 1.
Nehmen wir als Beispiel den Vergleich zwischen dem alten SL (100,03) und dem neuen SL (100,02) für USDJPY (Digits = 2). Dies ist in der Hilfe beschrieben:
Bei der zweiten Methode wird die normierte Differenz zweier reeller Zahlen mit einem Nullwert verglichen. Der Vergleich der Differenz von normierten Zahlen mit Null ist nutzlos, da bei jeder mathematischen Operation mit normierten Zahlen das Ergebnis nicht normiert ist.
Das heißt, der Vergleich muss auf diese Weise durchgeführt werden:
Manchmal kann der Makler aber auch nicht-normierte Preise angeben. Und wir haben zum Beispiel den Preis 100,025 und nicht 100,02. Nachdem wir nach dem obigen Schema verglichen haben, erhalten wir den Unterschied von 0,01, d.h. wir können ihn ändern. Aber nachdem wir für die Änderung normalisiert auf Digits 100.025 bestanden haben, werden wir tatsächlich 100.03 passieren und dementsprechend werden wir Fehler #1 erhalten.
Generell bin ich nach meinen bisherigen Erfahrungen zu dem Schluss gekommen, dass es bei gleichen Ziffern für Änderungen besser ist, dieDifferenz der normierten Zahlen mit Null zu vergleichen (was die Hilfe nicht empfiehlt).
Skript zur Überprüfung:
Im Gegensatz zu OrderProfit() in MT4 speichert OrderCommission() Daten, die nicht auf Cents gerundet sind.
SZZ In OrderPrint() wird die Provision gerundet (wie im GUI).
Im Gegensatz zu OrderProfit() in MT4 speichert OrderCommission() Daten, die nicht auf Cents gerundet sind.
SZZ In OrderPrint() wird die Provision gerundet (wie im GUI).
Was sollte ich also tun, um den richtigen Wert für OrderProfit()+OrderComission()+OrderSwap() zu erhalten?
Was ist demnach zu tun, um den richtigen Wert für OrderProfit()+OrderComission()+OrderSwap() zu erhalten?
Nichts! Dies ist der korrekteste Wert. Dank dieser Provision können wir in der GUI sehen, dass die Gesamtprovision um einen Cent von der Summe der von der GUI angezeigten Zahlen abweicht.
Nichts! Dies ist der korrekteste Wert. Dank dieser Provision können Sie in der grafischen Benutzeroberfläche sehen, dass die Gesamtprovision um einen Cent von der Summe der Zahlen abweicht, die die grafische Benutzeroberfläche anzeigt.
Dann verstehe ich das überhaupt nicht. Was meinen Sie mit "OrderCommission() speichert Daten, die nicht auf Cents gerundet sind"? Wo sind sie abgerundet? Und wie werden sie abgerundet?