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 musste die Ordermodifikation von der Funktion "int start()" aus aufrufen, wenn auch "If(IsNewCandle())" aufgerufen wird. Daher wird bei JEDEM Stundenschluss die "void OrderModify", die die PENDING-Order modifiziert, wenn der Orderstoploss > iMA-ATR ist, modifiziert und entsprechend kalibriert.
So, das macht jetzt seine Arbeit richtig :) Jetzt lese ich, bis mir die Augen bluten... :)
Das ist das Problem... (ähnlich für OP_SELL)
. . . und wenn Sie eine Fehlermeldung 1 erhalten, liegt das daran, dass OrderStopLoss() == BuyStopPrice ist, so dass Sie die Order so ändern, dass sie denselben StopLoss-Wert hat, daher Fehlermeldung 1, und jetzt fragen Sie sich, wie einerseits OrderStopLoss() == BuyStopPrice und andererseits OrderStopLoss() < BuyStopPrice
Sind Sie dem Link im Beitrag gefolgt und haben ihn gelesen, bis Ihnen die Augen bluteten? Ich wette, das haben Sie nicht... https://www. mql5.com/en/forum/146380 wenn Sie dieses Problem weiterhin ignorieren, wird es Sie immer wieder einholen und Sie werden weiterhin Zeit verschwenden... setzen Sie sich damit auseinander, verstehen Sie es, leiden Sie nicht länger darunter, seien Sie glücklich
except with zero never compare doubles for equality < Könnte das sein, wonach ich bei WHRoeder gesucht habe...?
if (a > b)
if (a >= b)
if (a != b)
außer mit Null niemals Doppelgänger auf Gleichheit vergleichen < Könnte dies das sein, was ich von WHRoeder gesucht habe...?
Um ganz ehrlich zu sein, nein, das verstehe ich nicht... Ich habe allerdings damit experimentiert, es aufzuschreiben und die Vergleiche auszudrucken...
1.51234000001 ist nicht dasselbe wie 1.51234000002, aber vom Standpunkt eines Preises aus gesehen sind beide 1.51234, also gleich ... sie sind also gleich, aber eine ist größer als die andere. Das hat alles mit der Art und Weise zu tun, wie Fließkommazahlen im Binärformat dargestellt werden, es ist ungenau, so dass es im Allgemeinen hier und da einen kleinen Fehler gibt. . .
Sehen Sie sich das an: Fließkommazahlen
Aber warum würde NormalizedDouble, Digits das nicht ausgleichen? Warum werden die zusätzlichen unnötigen Dezimalstellen mit einbezogen? Ich verstehe die Tatsache, dass man NormalizeDouble nicht auf vordefinierte Variablen anwenden muss, aber welchen Sinn hat es, NormalizeDouble auf nicht vordefinierte Variablen anzuwenden und dann zu versuchen, sie zu vergleichen, wenn sie niemals übereinstimmen werden :s?
Seltsam!
Wenn ich "If(Bid > OrderOpenPrice())" machen wollte, würde das nicht funktionieren, oder? Müsste ich die oben genannten Regeln für jede Vergleichsanweisung anwenden, d. h. "If(Bid - OrderOpenPrice() > Point / 2.)"?
Oh, und was If(Bid == OrderOpenPrice()), gibt es etwas, das ich mit dieser Anweisung tun müssen?
Aber warum würde NormalizedDouble, Digits das nicht ausgleichen? Warum werden die zusätzlichen unnötigen Dezimalstellen mit einbezogen? Ich verstehe die Tatsache, dass man NormalizeDouble nicht auf vordefinierte Variablen anwenden muss, aber welchen Sinn hat es, NormalizeDouble auf nicht vordefinierte Variablen anzuwenden und dann zu versuchen, sie zu vergleichen, wenn sie niemals übereinstimmen werden :s?
NormalizeDouble behebt das Problem nicht, es verwandelt 1 .51234000001 nicht in 1.51234, sondern "verwirrt" es nur auf eine andere Art und Weise ... wenn du es also verwendest, hoffst du, dass es alle deine Werte auf dieselbe Art und Weise verwirrt.
Wenn ich "If(Bid > OrderOpenPrice())" machen wollte, würde das nicht funktionieren, oder? Müsste ich die oben genannten Regeln für jede Vergleichsanweisung anwenden, d. h. "If(Bid - OrderOpenPrice() > Point / 2.)"?
Ja, wenn Sie sicher sein wollen, dass Ihr Vergleich ein genaues Ergebnis liefert, ja.
Oh, und was If(Bid == OrderOpenPrice()), gibt es irgendetwas, was ich mit dieser Anweisung tun muss?
Ok, danke - ich habe den OrderModify-Fehler 1 drastisch reduziert - aber ich bekomme immer noch ab und zu ein bisschen? Scheint es, wie es die MA_trail void ist? Auch, wie würde ich richtig schreiben "If(Bid == OrderOpenPrice())?
Deine Augen bluten nicht genug...
Du könntest etwas in der Art machen:
!( MathAbs(FirstPrice - SecondPrice) > HalfAPoint )
Vorsicht mit dem !
Von hier: https://www.mql5.com/en/forum/136997/page4#781986