Problem mit MT4, das ein Geschäft öffnet und es dann sofort wieder schließt - Seite 4

 

Es ist ein kniffliges Problem, weil es schwierig ist, ein einheitliches Muster zu finden.

Dieses Problem tritt nur manchmal auf und kann nicht durchgängig reproduziert werden.

Ich habe den Vorschlag mit den magischen Zahlen in Erwägung gezogen, und obwohl dies zunächst eine Möglichkeit war, lassen weitere Beobachtungen darauf schließen, dass dies nicht wahrscheinlich ist.

Ich reiße mir hier die Haare aus und hoffe, dass jemand anderes dieses Problem schon einmal gesehen hat.

 
peterc005:

Ich habe den Vorschlag mit den magischen Zahlen in Erwägung gezogen, und obwohl es zunächst eine Möglichkeit war, deuten weitere Beobachtungen darauf hin, dass es nicht wahrscheinlich ist.

Welche Beobachtungen im Einzelnen sind es, die definitiv ausschließen, dass ein anderer EA Geschäfte schließt, die nicht zu ihm gehören? Es gibt viele EAs, die die Eingabe einer magischen Zahl zulassen, sie aber intern nicht verwenden oder, noch schlimmer, sie manchmal, aber nicht immer, nur für bestimmte Exit-Bedingungen, nur in einigen Verzweigungen ihrer Dutzenden von verschachtelten Ifs und doppelten Order-Iterationsschleifen verwenden.

Diese Google-Suche

"OrderSymbol() == Symbol()" -OrderMagicNumber

wird eine Menge davon finden, es fängt schon mit dem dritten auf der Liste an (earlybird1, gridmaster_03, und so weiter, das ganze Suchergebnis ist voll davon), sie behaupten, eine magische Zahl zu verwenden, aber intern ignorieren sie sie einfach. Sie werden viele von ihnen finden. Dieses fehlerhafte Codemuster ist überall in den Foren zu finden und wird in vielen EAs kopiert.

 
7bit:

Es geht um einen Mangel am verkauften Produkt, nicht um kriminelle Absichten.

Sicher, Defekt, kein Problem.

"Sabotage" hat jedoch eine andere Bedeutung, die kaum technischer Natur ist, und ist kein Ersatz für das Wort "Mangel".

Ich bin sicher, dass diejenigen, deren Muttersprache nicht Englisch ist, entschuldigt werden können.

 
blogzr3:

"Sabotage" hat jedoch eine andere Bedeutung, die kaum technischer Natur ist, und ist kein Ersatz für das Wort "Defekt".

Der Defekt manifestiert sich darin, dass der eine Roboter den anderen sabotiert. Da es der Roboter ist, der sabotiert, kann ich nicht erkennen, wie ein Roboter eine Absicht haben kann. Der Roboter ist defekt, und das veranlasst ihn, andere Geschäfte zu sabotieren. Nichts anderes habe ich geschrieben oder gemeint. Und der Verkäufer verkauft fehlerhafte Produkte.
 
7bit:
Der Fehler manifestiert sich darin, dass der eine Roboter den anderen sabotiert. Da es der Roboter ist, der sabotiert, kann ich nicht erkennen, wie ein Roboter eine Absicht haben kann. Der Roboter ist defekt, und das veranlasst ihn, andere Geschäfte zu sabotieren. Nichts anderes habe ich geschrieben oder gemeint. Und der Verkäufer verkauft fehlerhafte Produkte.

Die meisten dieser EAs scheinen den ZigZag-Indikator zu verwenden, der ein wahrscheinlicher Übeltäter ist.

Als das Problem das erste Mal mit einem EA namens "Caliber" auftrat, habe ich den EA dekompiliert, um mir den Code anzusehen. Es war ein mieser EA, aber es gab nichts, was verdächtig aussah, und die Logik der Magic Number schien in Ordnung zu sein.

Ich fügte eine zusätzliche Logik hinzu, um zu verhindern, dass der EA mehr als einmal alle 90 Minuten handelt.

Zufälligerweise verbesserte dies auch die Gesamtleistung des EA, denn er neigte dazu, nach kurzer Zeit einen SL zu erreichen und dann einen neuen Handel in dieselbe Richtung einzuleiten. Man könnte meinen, dass es sich bei einem SL von 30 Pips um einen sicheren EA handelt, aber wenn er diesen SL in einer Stunde 4 Mal trifft, ist das nicht gut.

Die Einschränkung von Trades auf diese Weise hat die Leistung des EA in Backtests wirklich verbessert, und nachdem ich die Codeänderungen an den Hersteller geschickt hatte, wurde später ein Update mit meinen Änderungen veröffentlicht.

Jedenfalls testete ich damals meine Änderungen an Calibre auf einem Demokonto, und das Gleiche passierte. Ich konnte sehen, wie Geschäfte sofort eröffnet und geschlossen wurden. Es war nur ein Demokonto, also saß ich einfach da und beobachtete das Geschehen.

In diesem Fall war es ein neues Demokonto, auf dem nur ein EA lief. Dies lässt mt denken, dass es ein MT4-Plattform-Problem ist, und nicht ein MQL4-Problem.

Ich kenne MT4 und MQL4 inzwischen gut und kann die meisten Probleme selbst lösen. Dieses Problem macht mir zu schaffen und ich bitte andere um Vorschläge.


 

Ich wette, es ist ein Indikator/Berechnungsproblem. vielleicht eine Division durch 0, die nur in einigen bestimmten Fällen auftritt.

Wenn Sie den Fehler im Tester wiederholen können, wäre das schon die halbe Miete.

Da Sie wissen, welcher EA das Problem verursacht hat und auch wann es aufgetreten ist, sollte es einfach sein, zu überprüfen, ob es wiederholbar ist.

Wenn Sie anschließend den Fehler wiederholen können, sollte es nicht so schwer sein, das Stück Code zu finden, das den Fehler verursacht.


//z

 

Here is one of the older log files. The problem is obvious from the number of trades opened and closed.

In der Logdatei können Sie sehen, dass MT4 und der Broker Anweisungen zum Öffnen und Schließen der Orders erhalten, aber warum?

Dateien:
 
peterc005:


Eine Sache, die mir in einer Logdatei für ein relevantes Datum auffiel, waren Tausende von Fehlern, die besagten:

09:36:58 HistoryBase: nicht genügend Speicher für 'EURCHF1' in AddTick()

09:36:58 Memory handler: kann 160308896 Bytes Speicher nicht zuweisen

Die Logdatei war nicht 10k, sondern 7Mb groß.

 
peterc005:

Hier ist eine der älteren Protokolldateien. Das Problem ist anhand der Anzahl der geöffneten und geschlossenen Trades offensichtlich.

In der Logdatei können Sie sehen, dass MT4 und der Broker Anweisungen zum Öffnen und Schließen der Orders erhalten, aber warum?

Haben Sie auch das andere Protokoll (das aus dem Ordner experts/logs)? Dieses enthält den Namen des fehlerhaften EA.
 
zzuegg:

da Sie wissen, welcher EA dies verursacht hat

Es ist immer noch nicht bekannt, welcher EA die Ursache ist.


Alles, was wir bisher gesehen haben, sind die Symptome (Geschäfte mehrerer verschiedener EAs werden sofort nach dem Öffnen geschlossen) und ein paar Theorien. Es ist immer noch nicht bekannt, welcher EA diese Trades tatsächlich schließt. Wir benötigen die Experten-Logs im Ordner experts/logs von allen 4 Terminals über den gleichen Zeitraum, um weitere Schlussfolgerungen zu ziehen. Diese Protokolle könnten meine Theorie bestätigen oder widerlegen und sie werden letztendlich zeigen, wer alle Schließungsaufträge sendet.