Dies scheint eine mögliche Erklärung zu sein, aber wenn es der Fall ist, ist es nicht normal. Verwenden Sie den asynchronen Modus? Wenn nicht, muss Ihr EA die Antwort des Servers abwarten und dann erst mit der Verarbeitung des nächsten Ticks fortfahren.
Wenn ich das richtig verstanden habe, ist das ein zufälliges Problem und Sie können es nicht reproduzieren?
Sie können versuchen, mehr Debug-Informationen zu drucken, indem Sie diese Zeile nach der Deklaration von m_Trade hinzufügen:
Ich denke, das Problem ist die (zu langsame) Ausführung der PositionSelect(Symbol()) Funktion. Vielleicht kommen die neuen Ticks so schnell herein, dass der EA eine neue Order sendet, bevor er eine Antwort von PositionSelect(Symbol()) erhält. In meinem Code ist es theoretisch unmöglich, eine neue/doppelte Order zu senden, wenn die aktuelle Positionsgröße gleich oder größer ist als die maximal zulässige Positionsgröße, siehe Code.
Der Live-Server (ECN) von Broker X generiert so viele Ticks während eines makroökonomischen Nachrichtenereignisses, dass für jeden Tick, den Sie auf dem Simulationsserver von metaquotes sehen, dieser Server 20, 30 oder 40 Ticks generiert!
PositionSelect(Symbol());
// Check of het model al LONG zit. if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
{
// Check of het model al de maximale size in positie zit. if(PositionGetDouble(POSITION_VOLUME) >= MAX_Trade_Size)
{
return;
}
}
Mein EA kehrt die doppelte Position automatisch um, um die korrekte Positionsgröße als zusätzliches Backup zu erhalten.
Der Live-Server (ECN) von Broker X generiert so viele Ticks während eines makroökonomischen Nachrichtenereignisses, dass für jeden Tick, den Sie auf dem Simulationsserver von metaquotes sehen, dieser Server 20, 30 oder 40 Ticks generiert!
Ja, das liegt daran, dass das DOM aktiv ist.
....
Mein EA kehrt die doppelte Position automatisch um, um die korrekte Positionsgröße als zusätzliches Backup zu erhalten.
Vielen Dank für Ihren Beitrag. Haben Sie dieses Problem bei demselben Broker wie andere, oder ist es brokerunabhängig?
angevoyageur: Ja, das liegt daran, dass das DOM aktiv ist. Vielen Dank für Ihren Beitrag. Haben Sie dieses Problem mit demselben Broker wie andere, oder ist es brokerunabhängig?
Was ist "DOM"???
Nur auf diesem Brokerserver, auf dem Simulationsserver (Metaquotes) habe ich das noch nie erlebt, seit dieser Thread https://www.mql5.com/en/forum/14327 gestartet wurde.
Vor diesem Zeitraum erzeugte der Server von Broker X ungefähr die gleiche Anzahl von Ticks wie der Metaquotes-Server.
Nur auf diesem Brokerserver, auf dem Simulationsserver habe ich das nie erlebt, seit dieser Thread https://www.mql5.com/en/forum/14327 gestartet wurde.
Vor diesem Zeitraum erzeugte der Server von Broker X ungefähr die gleiche Anzahl von Ticks wie der Metaquotes-Server.
DOM = Depth of Market, wenn es aktiviert ist, gibt es viel mehr Tick-Ereignisse.
Ich habe die Anzahl der eingehenden Ticks minimiert, indem ich die Ticks nur zulasse, wenn sich der Preis selbst geändert hat.
// De sum van de BID/LAST staticdouble dPriceSum;
double dOldPriceSum = dPriceSum;
// To be used for getting recent/latest price quotesMqlTick Latest_Price;
SymbolInfoTick(Symbol() ,Latest_Price);
dPriceSum = Latest_Price.bid + Latest_Price.last;
// Check if the price is (not)changed.if(dPriceSum == dOldPriceSum)
{
return;
}
Ich habe die Anzahl der eingehenden Ticks minimiert, indem ich die Ticks nur zulasse, wenn sich der Preis selbst geändert hat.
Und was ist, wenn sich der Briefkurs ändert oder der Geldkurs um 1 Punkt steigt und der letzte Kurs um 1 Punkt fällt? Ein "normaler" Tick ist eine Änderung von Bid und/oder Ask.
angevoyageur: Und was ist, wenn sich der Briefkurs ändert oder der Geldkurs um 1 Punkt steigt und der letzte Kurs um 1 Punkt fällt? Ein "normaler" Tick ist eine Änderung von Bid und/oder Ask.
Das ist ein guter Punkt. Vielleicht sollte ich nur die Veränderung des BID-Preises verwenden.
Ein BAR auf dem Chart basiert auch auf dem BID-Preis?
Für das Triggersignal meines EA bin ich nur an der Änderung des Preises interessiert, auf dem der 1-Minuten-BAR basiert.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Dies scheint eine mögliche Erklärung zu sein, aber wenn es der Fall ist, ist es nicht normal. Verwenden Sie den asynchronen Modus? Wenn nicht, muss Ihr EA die Antwort des Servers abwarten und dann erst mit der Verarbeitung des nächsten Ticks fortfahren.
Wenn ich das richtig verstanden habe, ist das ein zufälliges Problem und Sie können es nicht reproduzieren?
Sie können versuchen, mehr Debug-Informationen zu drucken, indem Sie diese Zeile nach der Deklaration von m_Trade hinzufügen:
Hallo
Seit meiner in Beitraghttps://www.mql5.com/en/forum/14327 beschriebenen Lösung habe ich 1 weiteren Doppelhandel gehabt.
Ich denke, das Problem ist die (zu langsame) Ausführung der PositionSelect(Symbol()) Funktion. Vielleicht kommen die neuen Ticks so schnell herein, dass der EA eine neue Order sendet, bevor er eine Antwort von PositionSelect(Symbol()) erhält. In meinem Code ist es theoretisch unmöglich, eine neue/doppelte Order zu senden, wenn die aktuelle Positionsgröße gleich oder größer ist als die maximal zulässige Positionsgröße, siehe Code.
Der Live-Server (ECN) von Broker X generiert so viele Ticks während eines makroökonomischen Nachrichtenereignisses, dass für jeden Tick, den Sie auf dem Simulationsserver von metaquotes sehen, dieser Server 20, 30 oder 40 Ticks generiert!
Mein EA kehrt die doppelte Position automatisch um, um die korrekte Positionsgröße als zusätzliches Backup zu erhalten.
....
Der Live-Server (ECN) von Broker X generiert so viele Ticks während eines makroökonomischen Nachrichtenereignisses, dass für jeden Tick, den Sie auf dem Simulationsserver von metaquotes sehen, dieser Server 20, 30 oder 40 Ticks generiert!
....
Mein EA kehrt die doppelte Position automatisch um, um die korrekte Positionsgröße als zusätzliches Backup zu erhalten.
Ja, das liegt daran, dass das DOM aktiv ist.
Vielen Dank für Ihren Beitrag. Haben Sie dieses Problem mit demselben Broker wie andere, oder ist es brokerunabhängig?
Was ist "DOM"???
Nur auf diesem Brokerserver, auf dem Simulationsserver (Metaquotes) habe ich das noch nie erlebt, seit dieser Thread https://www.mql5.com/en/forum/14327 gestartet wurde.
Vor diesem Zeitraum erzeugte der Server von Broker X ungefähr die gleiche Anzahl von Ticks wie der Metaquotes-Server.
Was ist "DOM"???
Nur auf diesem Brokerserver, auf dem Simulationsserver habe ich das nie erlebt, seit dieser Thread https://www.mql5.com/en/forum/14327 gestartet wurde.
Vor diesem Zeitraum erzeugte der Server von Broker X ungefähr die gleiche Anzahl von Ticks wie der Metaquotes-Server.
DOM = Depth of Market, wenn es aktiviert ist, gibt es eine Menge mehr Tick-Ereignisse.
Ist es möglich, es zu deaktivieren?
Ist es möglich, sie zu deaktivieren?
Ich habe die Anzahl der eingehenden Ticks minimiert, indem ich die Ticks nur zulasse, wenn sich der Preis selbst geändert hat.
Ich habe die Anzahl der eingehenden Ticks minimiert, indem ich die Ticks nur zulasse, wenn sich der Preis selbst geändert hat.
Und was ist, wenn sich der Briefkurs ändert oder der Geldkurs um 1 Punkt steigt und der letzte Kurs um 1 Punkt fällt? Ein "normaler" Tick ist eine Änderung von Bid und/oder Ask.
Das ist ein guter Punkt. Vielleicht sollte ich nur die Veränderung des BID-Preises verwenden.
Ein BAR auf dem Chart basiert auch auf dem BID-Preis?
Für das Triggersignal meines EA bin ich nur an der Änderung des Preises interessiert, auf dem der 1-Minuten-BAR basiert.