![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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 Sie einen Stopp mit einer Genauigkeit von einem Pip verfolgen, wird der Broker aufheulen und die Expert Advisors abschalten :)
Ich denke, das ist besser:
D.h. wir ändern den Auftrag, wenn der neue Stopp um eine bestimmte Anzahl von Spreads (1 - 2) vom alten abweicht.
Ihr Problem ist hier automatisch gelöst.
Nur hier ist das Problem anders - es wird versucht, _den_ gleichen Wert zu setzen... D.h. eine solche Prüfung schützt nicht vor Fehlern, sondern verringert nur deren Wahrscheinlichkeit =)
Höchstwahrscheinlich handelt es sich um einen Fehler im Text des EA.
Ich hatte ein ähnliches Problem, aber ich weiß nicht mehr, wie es behoben wurde.
Das obige Beispiel stellt jedoch sicher, dass alle Fehler im Skript
werden keine Versuche unternommen, denselben Wert einzustellen.
Wahrscheinlich handelt es sich um einen Fehler im Text des Sachverständigen. Ich hatte ein ähnliches Problem, wie es behoben wurde, weiß ich nicht mehr. Das obige Beispiel stellt jedoch sicher, dass bei Fehlern im Skript nicht versucht wird, denselben Wert zu setzen.
Mak, dort befindet sich 1 Textzeile =
Ich habe die Funktion genau so geschrieben, um solche Fehler zu vermeiden, und die Prüfung ist die gleiche, mit dem Unterschied, dass jeder Pip ausgearbeitet wird.
Wenn der Wert gleich ist (der Abstand zwischen dem Preis und dem Stopp ist in diesem Fall gleich 50), sollten Trailing Stops nicht funktionieren.
Außerdem funktioniert es in den meisten Fällen nicht =)))), und manchmal rutscht es aus irgendeinem Grund durch....
Wird abgerundet oder verworfen?
Im Allgemeinen ist es besser, niemals fließende Typen auf Gleichheit zu vergleichen.
Die einzige Ausnahme:
Und über eine Zeile ...
In _TrailingStop gibt es eine Menge Zeilen,
und wenn es sogar 2 sind, gibt es schon einen Grund für Fehler :)
Ich habe es hier bereits teilweise korrigiert: stattdessen
gemacht
und der Rest schien in Ordnung zu sein:
Renat, ich setze generell meine Hoffnungen auf dich =) es ist wahrscheinlich etwas so einfaches wie ein Winkel - und ich merke es einfach nicht...
komposter, du irrst dich :) Wie das löffelbiegende Mädchen sagte: "Die Dinge sind nicht so, wie sie scheinen".
Die folgende Schleife gibt zum Beispiel 5 Zahlen aus:
Wie viel wird im nächsten Zyklus gedruckt, wenn die Grenzen um 1,0 erhöht werden?
Man würde erwarten, dass auch 5 Zahlen gedruckt werden, aber es werden nur 4 (vier) gedruckt. Ist das nicht großartig?
Wenn nach der Schleife eine weitere Zeile hinzugefügt wird:
erhalten wir:
Fast wie bei Ihnen mit einem Anschlag, aber grundlegender :). Das Problem ist so alt wie der erste Computerchip:
Computer verwenden die binäre Arithmetik und Menschen die dezimale Arithmetik. Beim Abrunden treten Artefakte auf.
Das von Mak vorgeschlagene "Aufrunden" hilft, wenn Sie ein grundsätzliches Problem mit dem Runden haben, nicht einen trivialen Fehler.
Viele Leute denken, dass Finanzberechnungen spezielle Dezimalarithmetik-Bibliotheken verwenden MÜSSEN, aber auch diese können Fehler enthalten, manchmal
was manchmal schwerwiegende Folgen haben kann. Übrigens, Renat, welche Implementierung der Arithmetik verwenden Sie?
Ich habe kurz nachgeschaut (ich habe noch nicht nachgeforscht) und den Punkt gefunden, den Sie berechnen.
Versuchen Sie, es zu "entsorgen" und setzen Sie Point. Wahrscheinlich ist das das Problem (der Punkt in MarketInfo wird nicht immer so angezeigt, wie Sie es wünschen).