Errori, bug, domande - pagina 2763

 

Perché il risultato dello script è di 1-2 secondi nel rapporto, ma più di un minuto?

#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));

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

Lo script ha funzionato e dall'inizio allo scarico ci vuole circa un minuto o più.

Ma lo script scrive ostinatamente che ha funzionato per 1 - 2 secondi, cosa può rallentare così tanto il PC?

2020.06.01 11:34:26.680 Inizio della velocità (EURUSD,M15)

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

2020.06.01 11:37:34.067 Teste di velocità (EURUSD,M15) Modo più vecchio Totale: 1870971ms Sec 1

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

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

2020.06.01 11:42:24.664 Teste speed (EURUSD,M15) Vecchio modo Totali: 1652839ms Sec 1


 
Vladimir Pastushak:

Perché il risultato dello script è di 1-2 secondi nel rapporto, ma più di un minuto?

Lo script ha funzionato e dall'inizio allo scarico ci vuole circa un minuto o più.

Ma lo script scrive ostinatamente che ha funzionato per 1 - 2 secondi, cosa può rallentare così tanto il PC?

2020.06.01 11:34:26.680 Inizio della velocità (EURUSD,M15)

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

2020.06.01 11:37:34.067 Teste di velocità (EURUSD,M15) Modo più vecchio Totale: 1870971ms Sec 1

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

2020.06.01 11:42:24.664

2020.06.01 11:42:24.664 Teste speed (EURUSD,M15) Vecchio modo Totale: 1652839ms Sec 1


Perché stampa il tempo di un'iterazione del ciclo, non il tempo di esecuzione dello script.

 
Sviluppatori, fate già qualcosa per gli scambi sul grafico. Quando ce ne sono molti, non puoi vedere il grafico, devi cancellarlo ogni volta con un nuovo accordo.
 
Alexey Viktorov:

Perché stampa il tempo per iterazione del ciclo, non il tempo di esecuzione dello script.

Lo script elabora 10.000 oggetti in un ciclo 100 volte, per un totale di 1.000.000

Uso mass[k] per registrare il tempo di ogni passaggio del ciclo

poi calcolare il passaggio medio

ulong rez = 0;

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

rez += massa[i];

rez /100

Non devi aver guardato attentamente lo script

 
Qualcuno ha un link all'archivio della build 2470? Il mio MT non vuole aggiornare - dice che c'è una nuova build, crea una cartella liveupdate/temp vuota in "roaming", ma poi l'errore "download 'MT5CLW64' failed" nel log. Di solito google drive di Andrey Khatimlianskii viene in soccorso ;-), ma finora ce ne sono solo 2460.
 

Che diavolo è questo?

2020.06.01 12:20:03.695 Ticks 'BR-7.20' errore di lettura del contenitore [L'operazione è stata completata con successo (0)

E in generale, c'è qualche bug con CopyTicks nell'ultima versione.

 
Dmitriy Skub:

E in generale, nell'ultima versione c'è qualche errore con CopyTicks.

Prima dei calcoli carico sempre tutti i tick, che sono stati persi dagli ultimi calcoli, tramite CopyTicksRange. Non ho notato alcun problema.

 
fxsaber:

Prima dei calcoli, carico sempre tutti i tick che sono stati persi dall'ultimo calcolo, usando CopyTicksRange. Non ho notato alcun problema.

Hanno cambiato qualcosa nei formati di chiamata di CopyTicks o qualche bandiera?

L'EA ha iniziato a bloccarsi, che stava tranquillamente copiando i tick in un file in tempo reale da 5 anni.

 
Dmitriy Skub:

Non hanno cambiato nulla nei formati di chiamata di CopyTicks o in qualche flag lì?

Sono passato a CopyTicksRange molto tempo fa. Con esso il volo è normale.

 

Nella build 2470, se impariamo l'indicatore Handle dall'indicatore stesso, è poi impossibile cancellare l'indicatore.

L'indicatore viene rimosso dalla lista degli indicatori in esecuzione, ma lavora in background.

OnDeinit non viene chiamato.