
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
Ich habe kurz nachgeschaut (ich habe noch nicht nachgeforscht) und den Punkt gefunden, den Sie berechnen.
Versuchen Sie, es "wegzuwerfen" und einen dummen Punkt zu setzen. Vielleicht ist das das Problem (die Punkte in MarketInfo werden nicht immer so angezeigt, wie Sie es wünschen).
Das sollte immer so sein...
obwohl man auch versuchen kann, sie zu normalisieren =)
und das ist nicht immer akzeptabel - ein Experte kann mit mehreren Paaren handeln, und der Punkt kann unterschiedlich sein...
Nehmen wir an, orderstoploss = 1.29211 (5 Stellen nach dem Komma)
bid=1.29716 (ebenfalls 5 Stellen )
TrailingStop = 50
point =0.001
dann (bid - TrailingStop * point)=1.29216>1.29211
Richtig, dies setzt voraus, dass aus den Stellen plötzlich 5 werden
Und auch
kann schmerzlos durch
ersetzt werden.
Ich denke, dass es nicht notwendig ist, das Fehlen des Stop-Loss-Niveaus beim Trailing zu überprüfen.
Eigentlich schon, ich korrigiere mich. Wenn wir einen Stop-Loss nur dann setzen, wenn ein Gewinn erzielt wird, und wenn nicht, sind wir bereit, auf einen Margin Call zu warten.
Ich habe nichts anderes gefunden. Bei welchem Paar hat Ihr Trailing-Stop nicht richtig funktioniert und gab es eine starke Bewegung?
Ich konvertiere alles zu Vergleichszwecken in Ganzzahlwerte. Ich speichere und verwende die angegebenen Werte, wo immer ich kann (im Array).
die angegebenen Werte verwenden (in Arrays, Variablen usw.)
D.h. Variablen vom Typ int können Werte von -2147483648 bis 2147483647 annehmen.
Diese Dimensionalität ist für Kreuze gut geeignet.
Dementsprechend können 1,2999 und 1,3000 in 12999 und 13000 umgewandelt werden, und dann können sie sicher verglichen werden,
ohne sich Gedanken über periodische Fehler zu machen.
Ich habe hier ein Beispiel skizziert :)
hier
Ausgabe:
Umschaltpunkt EURUSD,H1: Realer Doppelwert = 1.29999999
Verschiebepunkt EURUSD,H1: Wert des Verschiebepunkts = 13000
Umschaltpunkt EURUSD,H1: Wiederhergestellter Wert = 1.3000
unter
Alternativ dazu.
Hallo.
Ich bringe alles auf ganze Zahlen zum Vergleich
2dev:
Sie haben recht - das ist ein grundlegendes Problem, es ist gefährlich, Fließkommazahlen zu vergleichen.
Bringen Sie Zahlen an wichtigen Stellen immer mit Normalize() auf eine bestimmte Genauigkeit.
Standardisierung auf den Typ double (8 Bytes).
Übrigens, wir erzwingen die Normalisierung aller weitergegebenen Preise in Handelsabfragen, um Fehler zu vermeiden.
Sie können einen Stop-Loss bei 1,2932461 anfordern, aber er wird auf 1,2932 gesetzt.
Bitte prüfen Sie, ob dies der Fehler ist, wenn Sie versuchen, den Stopp zum gleichen Preis neu zu setzen.
3 Leute haben zugeschaut =)) Renat kam und hat einfach mit dem Finger auf den Fehler gezeigt =)))
Ich werde das jetzt natürlich überprüfen, aber höchstwahrscheinlich ist das der Fall... Ich habe "bid - TrailingStop * point" nicht normalisiert, und genau diese Konstruktion ist an der Auftragsänderung beteiligt...
wir sind nicht aufmerksam, meine Herren ;)
Meinen Sie die Normalize(), die Begun vorgeschlagen hat?
Meinen Sie die Normalize(), die Begun vorgeschlagen hat?
Entschuldigung, ich meinte den Standard NormalizeDouble.