Bug: MT5 - laufende EAs werden automatisch willkürlich entfernt - Seite 2

Einloggen oder registrieren, um einen Kommentar zu schreiben
Christian
3327
Christian  
Agent_Mulder:

Hallo Christian,

vielen Dank für deine Rückmeldung. Anbei eine txt-Datei mit Ausschnitten jeweils ein Stück vor und nach dem jeweiligen Remove.


Das war erst eine Datei. Die des Terminals.

Die experten schreiben auch eine .

Poste die mal  .Auffällig ist in der Terminal log nichts.

Agent_Mulder
33
Agent_Mulder  
amando:

wieviele Chartfenster kann man denn pro Instanz offen haben? hab das noch nie probiert.

und wieviele MT installationen hast Du gleichzeig laufen? ich sag mal, das muss ja schon eine Menge sein

Hi Amando,

die maximale Anzahl an Chartfenstern innerhalb einer MT5 Instanz/Installation beträgt genau 99.

Die Anzahl der Instanzen hat wahrscheinlich keine Begrenzung. Ich weiß nicht ob Windows die Anzahl von Prozessen einer Familie irgendwann begrenzt aber vom Standpunkt aus MT5 Installationen gibt es da keine Grenze außer die Hardware selbst. Allerdings muss man bedenken dass bei vielen Fenstern innerhalb einer Instanz + mehrere offene Instanzen selbst 16 GB RAM sehr schnell voll sein können. Sehr RAM-lastig wird es wenn man dann natürlich noch Indikatoren und zusätzlich noch jeweils einen EA auf jedem Fenster laufen hat.

Ich selbst habe immer 26 Chartfenster offen und das mal 3 Instanzen weil ich mehr nicht brauche da es sonst unübersichtlich für mich wird. Zu bestimmten Zeiten habe ich manchmal auch 5 oder 6 Instanzen mit gleichem Inhalt offen. Dort verextremiert sich dann der Fehler. Als ich noch zusätzlich Indikatoren in jedem Fenster hatte, war der Fehler noch häufiger. Mit der Herausnahme wurde es besser.

Agent_Mulder
33
Agent_Mulder  
Carl Schreiber:

Wie sind die Optinen eingestellt: Ctrl-O => (Tab) Experten?

Dann sprich mal mit dem Broker, vielleicht hat der da etwas so eingestellt, dass Du das falsche Signal bekommst?

Du kannst auch versuchen, das bewusst herbeizuführen, wenn Du im Terminal unten rechts einen anderen Serve (mit anderem Ping) auswählst und beobachtest, ob auch dann der EA entfernt wird und dann spiel mit den gezeigten Optionen.

Hallo Carl,

ja die Optionen habe ich auch schon hin- und hergestellt. Das Verhalten bleibt gleich, egal was ich da einstelle. Aber du hast recht ich kann meinen Broker auch mal kontaktieren.

Agent_Mulder
33
Agent_Mulder  
Christian:

Das war erst eine Datei. Die des Terminals.

Die experten schreiben auch eine .

Poste die mal  .Auffällig ist in der Terminal log nichts.

Hi Christian,

da musst du mir auf die Sprünge helfen sorry. Mit den Expertenlogs habe ich mich nie beschäftigt. Wo finde ich diese?

Carl Schreiber
Moderator
10145
Carl Schreiber  

Das Fenster, in dem die Positionen, deren Historie,... stehen, dort gibt es die Tabs Experten und Journal, das sind die Logs.

Rechtes-Mausklick-Menü => Öffnen und das des jew. Tages wählen.

Agent_Mulder
33
Agent_Mulder  
Carl Schreiber:

Das Fenster, in dem die Positionen, deren Historie,... stehen, dort gibt es die Tabs Experten und Journal, das sind die Logs.

Rechtes-Mausklick-Menü => Öffnen und das des jew. Tages wählen.

Hi Carl,

danke dir! Da ist etwas: "array out of range" genau zum Zeitpunkt beim Broker Re-Connect. Habe es auch in den anderen Fällen geprüft, ist immer das gleiche Schema.

Carl Schreiber
Moderator
10145
Carl Schreiber  
Jetzt musst Du nur noch herausfinden, warum der Fehler entsteht. Lass Dir den Index und die Arraygröße ausdrucken - beides passt nicht zusammen.
Christian
3327
Christian  
Carl Schreiber:
Jetzt musst Du nur noch herausfinden, warum der Fehler entsteht. Lass Dir den Index und die Arraygröße ausdrucken - beides passt nicht zusammen.

Oder er startet einen EA mit dem Debugger und setzt den Breakpoint mit bedingung idx > size .

Christian
3327
Christian  

Wollte doch noch ein Beispiel posten wie man den Debugger mit einer Bedingung für den Breakpoint nutzt.

MT5 hinkt da noch etwas hinterher. Sehr viele (fast alle) Debugger können das ab Werk.

So kommst du @Agent_Mulder dem falschen Index sehr einfach bei.


//+------------------------------------------------------------------+
//|                                              break_bedingung.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"


double ProblemArray[];

void OnStart()
  {

   ArrayResize(ProblemArray,10);
   
   for (int idx=0;idx<15;idx++)
   {  
      check_for_break(idx,ArraySize(ProblemArray));
      ProblemArray[idx] = 1; 
   } 
  }


void check_for_break(int index,int size)
{
  if (index > size-1)
   {
     PrintFormat("Zugriffsfehler Array Index: %d > Size: %d  ",index,size);
     PrintFormat("<-  Hier BreakPoint setzen");
     
   }


}
12
Einloggen oder registrieren, um einen Kommentar zu schreiben