Errori, bug, domande - pagina 1721

 
Alexey Da:

Richiedi sempre un miliardo di zecche? Sono 49 gigabyte solo per array. I tick su Si-12.16 da gennaio ad oggi sono 15789962.

Un piccolo script, basato sul tuo, conta il numero di tic per mese.


e dà questo risultato.


Questo è l'aspetto su disco.


Non importa quanti ordinarne. Anche per ordinare 20000 tick (ventimila) il file per il mese 10 si misura in gigabyte.

Lo script, quando si richiedono 20.000

//+------------------------------------------------------------------+
//|                                                    CopyTicks.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.01"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int  ticks=200000000;  // количество запрашиваемых тиков
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- запросим тики
   int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,0,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
   if(copied>1)
     {
      Print("Тик: ",ExTicks[0].time," bid: ",ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
      Print("Тик: ",ExTicks[copied-1].time," bid: ",ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");
     }
   Print("Size ",((long)copied*sizeof(MqlTick))>>20, " Mb");
  }
//+------------------------------------------------------------------+

hadato un'incredibile crescita di file per il mese 10 - la dimensione è stata misurata in Gigabyte.


Con il terminale spento ho cancellato il file di tick del mese 10 (dimensione circa 7,5GB).

Poi ho eseguito il tuo script

void OnStart()
  {
   MqlTick Ticks[];
   int Amount=CopyTicks(_Symbol,Ticks,COPY_TICKS_ALL,D'2016.01.01'*1000,ulong(100000000));
   MqlDateTime str;
   TimeToStruct((Ticks[0].time_msc-Ticks[0].time_msc%1000)/1000,str);
   char m=(char)str.mon;
   long n=StringToTime(StringFormat("01.%d.2016",m+1))*1000;
   int pos=0;
   for(int i=0;i<Amount;i++)
     {
      if(Ticks[i].time_msc>=n || i==Amount-1)
        {
         PrintFormat("Month %d: %d ticks, %d Mb",m,i-1-pos,(sizeof(MqlTick)*(i-1-pos))>>20);
         m++;
         n=StringToTime(StringFormat("01.%d.2016",m+1))*1000;
         pos=i;
        }
     }
  }

Tutto si è rivelato ok, nessuna gigantomania nelle dimensioni - molto strano.

Poi ho eseguito di nuovo il tuo script (parametri di input 20000). Tutto si è stabilizzato - ma il file stava ancora crescendo a dimensioni inimmaginabili al mattino! L'ho visto io stesso e ho fatto l'esperimento!


Per quanto riguarda il numero di miliardi di tick - anche un trilione - il terminale non darà più di quello che ha.

 
Karputov Vladimir:

Tutto si è stabilizzato - ma il file stava ancora crescendo ad una dimensione incredibile al mattino! L'ho visto io stesso e ho condotto l'esperimento!

La differenza con il momento attuale è che allora l'esperimento fu condotto in un mercato chiuso.
 

Ora esegue lo script.

Il risultato è

2016.10.05 11:05:03.374 Test (Si-12.16,M5)      (Amount*sizeof(MqlTick))>>20 = 72 Mb Ticks[0].time = 2016.10.03 09:45:02 Ticks[Amount-1].time = 2016.10.05 11:05:55 

Tutto funziona come dovrebbe. Onore e lode per la compressione del formato 72/5 di ~15 volte.

Bisogna capire perché un bug così merdoso appare su un mercato chiuso.

A propositoAlexey Da, perché il tuo 201610.tkc è più grande del mio?

 
fxsaber:

Ora esegue lo script.

Il risultato è

Tutto funziona come dovrebbe. Onore e lode per la compressione del formato 72/5 di ~15 volte.

Dobbiamo capire perché un bug così merdoso appare su un mercato chiuso.

A propositoAlexey Da, perché hai 201610.tkc più grande del mio?

Schermata di apertura.

Su BCS la dimensione è simile alla tua.

Ma non della stessa dimensione.

A quali accessi è collegato? Ho


 

fxsaber:

Dobbiamo scoprire perché un bug così merdoso appare su un mercato chiuso.

Karputov Vladimir efxsaber

Il sistema non è stato testato e può verificarne le prestazioni e l'affidabilità. Si prega di formare un ticket a servicedesk con la descrizione più completa, log, screenshot e timestamp.

 
Alexey Da:

Screenshot dell'apertura.

Su BCS la dimensione è simile alla tua.

Ma non della stessa dimensione.

Ho notato che 201609.tkc è 36Mb in Opening e 32Mb in BCS. Ma la storia è la stessa! Perché è così?

Beh, e anche se ci sono stati aggiornamenti del server a settembre, sicuramente non ci sono stati a ottobre. Perché l'apertura di ottobre è più grande?

In quali accessi siete collegati? L'ho fatto.

Sempre.

authorized on BCS-MetaTrader5 through Access Server #1 (ping: 49.30 ms)
 
Alexey Da:

Karputov Vladimir efxsaber

Per favore, inviateci una richiesta. Formate un ticket a servicedesk con la descrizione più completa, i log, gli screenshot e l'indicazione del tempo.

Purtroppo i registri sono andati persi. Pertanto non posso fornire alcuna informazione.

L'unica cosa che ricordo con certezza è che al momento del bug i primi tick che lo script ha prodotto erano 2016.10.04 09:45.

E quando tutto funziona come dovrebbe essere, è 2016.10.03 09:45.

Esattamente le uniche linee che sono sopravvissute

NE      0       08:43:43.928    Test (Si-12.16,M1)      (Amount*sizeof(MqlTick))>>20 = 0 Mb Ticks[0].time = 2016.10.04 09:45:04 Ticks[Amount-1].time = 2016.10.04 10:02:38 
JP      0       11:03:37.815    Test (Si-12.16,M5)      (Amount*sizeof(MqlTick))>>20 = 0 Mb Ticks[0].time = 2016.10.03 09:45:02 Ticks[Amount-1].time = 2016.10.03 10:02:18 

Superiore - l'insetto stava apparendo con tutte le sue forze.

Più in basso - l'insetto è stato messo a tacere.

 
Alexey Da:

Karputov Vladimir efxsaber

Per favore, inviateci una richiesta. Formate un ticket a servicedesk con la descrizione più completa, i log, gli screenshot e l'indicazione del tempo.

Richiesta interna .../view/1580221
 

In MT4 è molto comodo che il Navigator->Favourites mostri i programmi insieme al loro percorso di ricerca.

Per esempio, fxsaber\Test.

In MT5 non è così conveniente. Si prega di aggiungere.

 
I commenti non pertinenti a questo argomento sono stati spostati in "Domanda sulla modalità di riempimento degli spazi vuoti".