Fehler, Irrtümer, Fragen - Seite 2763

 

Warum ist das Ergebnis des Skripts 1-2 Sekunden im Bericht, aber mehr als eine Minute?

#include <(MyLib)\CGraphicObjects\CMyButton.mqh>CMyButton but;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("Начали");
// ===================================================================
   int total = 10000;
   for(int i = 0; i < total; i++)
      but.Create("Push" + (string)i, 32, 32, 30, 30);
// ===================================================================
   ulong mass[100];
   ArrayInitialize(mass, 0);
// ===================================================================
   for(int k = 0; k < 100; k++)
     {

      ulong  start = GetMicrosecondCount();

      for(int i = 0; i < total; i++)
         color col = but.ColorBG();

      mass[k] = GetMicrosecondCount() - start;
     }
// ===================================================================
   Print("Массив");
   ulong rez = 0;
   for(int i = 0; i < 100; i++)
      rez += mass[i];

   Print("Старый способ Итог: " + IntegerToString(rez / 100)+" Sec "+ IntegerToString(rez / 100/1000000));

  }
//+------------------------------------------------------------------+

Das Skript funktionierte und vom Start bis zum Entladen verging etwa eine Minute oder mehr.

Aber das Skript schreibt hartnäckig, dass es 1 - 2 Sekunden lang funktioniert hat, was kann den PC so sehr verlangsamen?

2020.06.01 11:34:26.680 Teste Geschwindigkeit (EURUSD,M15) Start

2020.06.01 11:37:34.067 Teste Geschwindigkeit (EURUSD,M15)

2020.06.01 11:37:34.067 Teste Geschwindigkeit (EURUSD,M15) Älteste Strecke Gesamt: 1870971ms Sec 1

2020.06.01 11:39:32.283 Teste Geschwindigkeit (EURUSD,M15)

2020.06.01 11:42:24.664 Teste Geschwindigkeit (EURUSD,M15)

2020.06.01 11:42:24.664 Teste Geschwindigkeit (EURUSD,M15) Alter Weg Summen: 1652839ms Sec 1


 
Vladimir Pastushak:

Warum ist das Ergebnis des Skripts 1-2 Sekunden im Bericht, aber mehr als eine Minute?

Das Skript hat funktioniert, und vom Start bis zum Entladen dauert es etwa eine Minute oder mehr.

Aber das Skript schreibt hartnäckig, dass es 1 - 2 Sekunden lang funktioniert hat, was kann den PC so sehr verlangsamen?

2020.06.01 11:34:26.680 Teste Geschwindigkeit (EURUSD,M15) Start

2020.06.01 11:37:34.067 Teste Geschwindigkeit (EURUSD,M15)

2020.06.01 11:37:34.067 Teste Geschwindigkeit (EURUSD,M15) Älteste Strecke Gesamt: 1870971ms Sec 1

2020.06.01 11:39:32.283 Teste Geschwindigkeit (EURUSD,M15)

2020.06.01 11:42:24.664 Teste Geschwindigkeit (EURUSD,M15) Array

2020.06.01 11:42:24.664 Teste Geschwindigkeit (EURUSD,M15) Alter Weg Gesamt: 1652839ms Sec 1


Denn es wird die Zeit einer Schleifeniteration ausgegeben, nicht die Laufzeit des Skripts.

 
Entwickler, unternehmen Sie etwas gegen die Trades auf dem Chart. Wenn es sehr viele sind, kann man die Tabelle nicht mehr sehen, man muss sie jedes Mal bei einem neuen Geschäft löschen.
 
Alexey Viktorov:

Denn er gibt die Zeit pro Schleifeniteration aus, nicht die Laufzeit des Skripts.

Das Skript verarbeitet 10.000 Objekte in einer Schleife 100 Mal, also insgesamt 1.000.000

Ich verwende mass[k], um die Zeit jedes Durchlaufs der Schleife aufzuzeichnen

dann den durchschnittlichen Durchgang berechnen

ulong rez = 0;

for(int i = 0; i < 100; i++)

rez += Masse[i];

rez /100

Sie haben sich das Drehbuch wohl nicht genau angesehen

 
Hat jemand einen Link zum Archiv der Build 2470? Mein MT will nicht aktualisieren - er sagt, dass es ein neues Build gibt, erstellt einen leeren liveupdate/temp-Ordner in "roaming", aber dann erscheint der Fehler "download 'MT5CLW64' failed" im Log. Normalerweise kommt Google Drive von Andrey Khatimlianskii zur Hilfe ;-), aber bis jetzt sind es nur 2460.
 

Was zum Teufel ist das?

2020.06.01 12:20:03.695 Ticks 'BR-7.20' Container-Lesefehler [Der Vorgang wurde erfolgreich abgeschlossen. (0)

Und im Allgemeinen gibt es in der letzten Version einen Fehler mit CopyTicks.

 
Dmitriy Skub:

Und im Allgemeinen gibt es in der letzten Version einen Fehler mit CopyTicks.

Vor den Berechnungen lade ich immer alle Ticks, die seit den letzten Berechnungen verpasst wurden, über CopyTicksRange. Ich habe keine Probleme festgestellt.

 
fxsaber:

Vor den Berechnungen lade ich mit CopyTicksRange immer alle Ticks, die seit der letzten Berechnung fehlen. Ich habe keine Probleme festgestellt.

Wurde etwas an den CopyTicks-Aufrufformaten oder an irgendwelchen Flags geändert?

EA begann zu hängen, die ruhig war Kopieren der Ticks in eine Datei in Echtzeit für die letzten 5 Jahre.

 
Dmitriy Skub:

Sie haben nichts an den CopyTicks-Aufrufformaten oder irgendwelchen Flaggen geändert?

Ich bin schon vor langer Zeit zu CopyTicksRange gewechselt. Damit ist der Flug normal.

 

In Build 2470, wenn wir den Indikator Handle aus dem Indikator selbst lernen, ist es dann unmöglich, den Indikator zu löschen.

Der Indikator wird aus der Liste der laufenden Indikatoren entfernt, arbeitet aber im Hintergrund.

OnDeinit wird nicht aufgerufen.