Fehler, Irrtümer, Fragen - Seite 2081

 
Anatoli Kazharski:

Dieses Problem tritt bei allen Indikatoren auf. Einschließlich derjenigen aus der Standardlieferung. Zum Beispiel: Gleitender Durchschnitt:

//---

Und nachdem sich mehrere Balken gebildet haben:

//---

Versuchen Sie, es in Ihrer Umgebung zu reproduzieren. Ich muss herausfinden, ob ich der Einzige bin, der dieses Problem hat.


Ja, ich bestätige:

Terminal        MetaTrader 5 x64 build 1687 started (MetaQuotes Software Corp.)
Terminal        Windows 10 (Build 16299), x64 based PC, IE 11.00, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 4473 / 8077 Mb, HDD: 330591 / 475588 Mb, GMT+02:00
Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

Animation:

Die Indikatoren verschieben sich nicht

 
Kommentare, die für dieses Thema nicht relevant sind, wurden nach "BUY_LIMIT, ORDER_TIME_DAY" verschoben.
 
Vladimir Karputov:

Ja, ich bestätige:

Animation:

Ich danke Ihnen. Ein Link zu Ihrer Nachricht wurde der Servicedesk-Anwendung als Anhang hinzugefügt. Benötige eine Notfalllösung für diesen Fehler, alle Arbeiten wurden eingestellt.
 

fxsaber:

Beide Terminals haben zwei Registerkarten - Handel und Post. Ich möchte, dass der "Handel" immer aktiv ist. Wenn jedoch eine interne E-Mail (z. B. eine Teilausfüllung) vom Broker eintrifft, wechselt die Registerkarte zu "Mail".

Wie schalte ich dieses furchtbare Ding ab? Nun, eine solche aufdringliche Benachrichtigung sollte es nicht geben, und schon gar nicht an ganz normale Makler-E-Mails, in denen er automatisch Dutzende Male am Tag über die Auftragsausführung informiert. Ich verstehe nicht, warum es manchmal auf "Mail" umschaltet und manchmal nicht.

Wie kann ich sie abschalten? Die Registerkarte "E-Mail" lese ich nie, da es sich um Spam handelt. Um es gelinde auszudrücken, es ist ärgerlich, dass die Terminal-GUI so auf Spam reagiert.


Ich denke, dass ich mit WinApi eine Funktion implementieren kann, um zur gewünschten Registerkarte zu wechseln: Handel, Bilanz, was auch immer.
Versuchen Sie, es selbst zu implementieren, oder bestellen Sie es bei Freiberuflern, ich hoffe, es gibt noch fähige Leute dort.

 
Sergey Dzyublik:

Ich denke, dass Sie mit WinApi eine Funktion implementieren können, um zur gewünschten Registerkarte zu wechseln: Handel, Bilanz, was auch immer.
Versuchen Sie, es selbst zu implementieren, oder bestellen Sie es bei Freelancer, ich hoffe, es gibt dort noch fähige Leute.

Ich habe diese Perversion selbst praktiziert. Ich möchte eine benutzerfreundliche GUI.

 
Aleksey Vyazmikin:

Er hat schon wieder kein Gedächtnis mehr...

Obwohl noch 7 Gigabyte RAM zur Verfügung stehen. Was zum Teufel ist das?

Eröffnen Sie ein Ticket beim Service Desk. Geben Sie den Experten und die Optimierungseinstellungen an.

+ Beschreiben Sie das Betriebssystem, die Bitrate und die Systemkonfiguration.

 
Alexey Da:

Eröffnen Sie ein Ticket beim Service Desk. Fügen Sie die Experten- und Optimierungseinstellungen hinzu.

+ Beschreibung des Betriebssystems, der Bitrate und der Systemkonfiguration.


Ich weiß nicht, wie ich das alles reproduzieren kann - letzte Woche erschien diese Meldung jeden Tag, und der EA funktionierte überhaupt nicht. Und neulich bei der Optimierung... dann funktionierte es nach dem Schließen aller Programme.

Kann es sich um einen Konflikt zwischen Programmen handeln? Ich habe festgestellt, dass der Fehler immer auftrat, wenn der Opera-Browser geöffnet war.

 

In diesem Thread habe ich etwas Interessantes über die Leistung des Befehls Comment() in MT4 und MT5 herausgefunden. In MT5 läuft dieser Befehl ~2000 mal (!!!) langsamer als in MT4.

Hier ist der Testcode, der auf beiden Plattformen läuft:

#property script_show_inputs
#include <Canvas\Canvas.mqh>

input uint   FontSize=12;                                   // размер шрифта
input uint   Count=1000;                                    // размерность цикла
input ENUM_COLOR_FORMAT format=COLOR_FORMAT_ARGB_NORMALIZE; //Способ обработки цвета

void OnStart()
  {
   CCanvas Text;
   ulong ColorScreen=ChartGetInteger(0,CHART_COLOR_BACKGROUND,0);

   Text.FontSet("Arial",FontSize);
   string str="Необходимо подождать.Выполняется проход цикла №: = ";
   int H=Text.TextHeight(str);
   int W=Text.TextWidth(str+"00000");
   if(!Text.CreateBitmapLabel(0,0,"FONT",2,130,W,H,format)) Print("Error creating canvas: ",GetLastError());

   ulong t1=1,t2=1,t0;
   uint j=0;
   color clr=(color)ARGB(255,255^GETRGBR(ColorScreen),255^GETRGBG(ColorScreen),255^GETRGBB(ColorScreen));
   t0=GetMicrosecondCount();
   for(j=0;j<Count;j++)
     {
      Comment(str+IntegerToString(j));
      if (IsStopped()) break;
     }
   t1=GetMicrosecondCount()-t0;

   t0=GetMicrosecondCount();
   for( j=0;j<Count;j++)
     {
      Text.Erase((color)ColorScreen);
      Text.TextOut(0,0,str+IntegerToString(j),clr);
      Text.Update();
      if (IsStopped()) break;
     }
   t2=GetMicrosecondCount()-t0;
      Text.Erase((color)ColorScreen);
      Text.TextOut(0,0,"Время Comment = "+IntegerToString(t1)+" Время Canvas = "+IntegerToString(t2),clr);
      Text.Update();
      Sleep(30000);
     
   Text.Destroy();
   Comment("");
  }
//+------------------------------------------------------------------+

Ist das in Ordnung?

Dateien:
 
Nikolai Semko:

In diesem Thread habe ich etwas Interessantes über die Leistung des Befehls Comment() in MT4 und MT5 herausgefunden. In MT5 läuft dieser Befehl ~2000 mal (!!!) langsamer als in MT4.

Hier ist der Testcode, der auf beiden Plattformen läuft:

Ist das in Ordnung?

Ja, das ist richtig und korrekt.

In MT4 ändert die Kommentarfunktion einfach das interne Kommentarfeld, ohne zu versuchen, es auf dem Chart anzuzeigen. Das heißt, der Kommentar wird irgendwann bei der nächsten regulären Darstellung des Diagramms angezeigt, aber die Änderung des Kommentars selbst führt nicht dazu, dass das Diagramm neu gezeichnet wird. Wenn Sie den Kommentar schnell ändern, wird die Änderung im Diagramm nicht sichtbar sein.

Im MT5 führt die Funktion Kommentar explizit zu einer Neuzeichnung des Charts, da die Anzeige des Kommentars im Chart Priorität hat. Andernfalls ist die Funktion nutzlos.

Das ist genau der Unterschied.


Wenn Sie in MT4 ChartRedraw() nach dem Aufruf von Comment erzwingen, ist das Verhalten immer noch nicht dasselbe wie in MT5. ChartRedraw() in Metatrader 4 ignoriert den Kommentarwert und entscheidet selbst, ob der Chart ab dem letzten Frame aktualisiert werden soll oder nicht. Natürlich, in Abwesenheit von Hunderten von Kursen pro Sekunde, die eine Deaktivierung von Chart-Daten verursachen würde, ChartRedraw entscheidet "warum ein unverändertes Diagramm zeichnen" und überspringt die Zeichnung des Rahmens.

Metatrader 5 verfügt ebenfalls über das gleiche System, aber es gibt viel mehr Fälle, in denen das unbedingte Rendering Vorrang hat.

Bei Terminals handelt es sich um grafische Anwendungen, die Hunderte von Bildern pro Sekunde liefern können und aus Leistungsgründen im sparsamen Anzeigemodus laufen.


Daraus ergeben sich weitere Schlussfolgerungen für die Durchführung von Benchmarks:

  • man kann einen ChartRedraw-Aufruf nicht als echten ChartRedraw betrachten

  • Sie müssen immer wissen und beweisen können, warum ein Chart neu gezeichnet wird" und ob ich das interne Bild des Marktes ungültig mache, so dass das Terminal beschließt, den Chart neu zu zeichnen".

  • Sie sollten in MT5 während der Benchmarks keine mehrfachen Schlussfolgerungen ziehen, sondern immer überlegen, wie Sie das Rendering beeinflussen

  • MT5 hat ein korrekteres System zum Ändern von Objekten auf dem Chart und es ist notwendig, die Konsequenzen von Lese-/Schreibbefehlen beim Mischen klar zu verstehen.
    Es wird empfohlen, Lese- und Schreibbefehle nicht zu mischen und Massenlese- und Massenschreibbefehle getrennt auszuführen.

  • Häufiges Neuzeichnen von Diagrammen in Benchmarks führt zu einer hohen Abhängigkeit der Ergebnisse von der Grafikkarte.
    Einige Tests können sogar dazu führen, dass eher die Grafikkarte als die Algorithmen oder Funktionen getestet werden. Der Test auf einem Laptop und einem Desktop-Computer kann mehrfach unterschiedliche Ergebnisse zeigen, nur weil die Grafikkarte 3-5 mal langsamer ist.

Diese Fehler werden immer wieder von allen gemacht.

 
Renat Fatkhullin:

Ja, das ist richtig und korrekt.

Vielen Dank für die ausführliche Antwort. Das ist so ziemlich das, was ich mir gedacht habe. Es macht alles Sinn.

Grund der Beschwerde: