Errori, bug, domande - pagina 1885

 
Perché EX5 tale codice
void OnStart() {}

pesa 5Kb?

 
fxsaber:
Perché EX5 tale codice

pesa 5Kb?

Decompilare la protezione?
 
fxsaber:
Localizzato il bug su Metaquotes-Demo

La sceneggiatura si addentra in una profonda riflessione.

Riproducibile.

Probabilmente perché il grafico a tick di questo strumento è "in attesa di aggiornamento".

Quando lo script si ferma, viene visualizzato -1 nel log, cioè non si blocca, ma aspetta che il terminale risponda.

 
fxsaber:
Localizzato il bug su Metaquotes-Demo

La sceneggiatura si addentra in una profonda riflessione.

Tutto funziona correttamente (secondo la documentazione):
In Expert Advisors e script CopyTicks() può aspettare fino a 45 secondi per il risultato: a differenza dell'indicatore, ogni esperto e script lavora nel proprio thread, e quindi può aspettare fino a 45 secondi per il completamento della sincronizzazione. Se durante questo tempo, i tick non saranno sincronizzati nel volume necessario, CopyTicks() restituirà solo i tick disponibili per timeout, e la sincronizzazione continuerà.
2017.05.11 14:41:31.154 Scripts script test_bug (EURUSD,M1) caricato con successo
2017.05.11 14:42:14.742 Scripts script test_bug (EURUSD,M1) rimosso

 

La lunga attesa per i copytick sarà risolta - questo si presenta sui personaggi morti che non hanno avuto tick per molto tempo.

Funzionerà istantaneamente

 
Renat Fatkhullin:

La lunga attesa per i copytick sarà risolta - questo si presenta sui personaggi morti che non hanno avuto tick per molto tempo.

Funzionerà all'istante.

Quali costi di tempo devono essere considerati normali?

Controllato SymbolInfoTick (96 caratteri).

#define _CS(A) ((!IsStopped()) && (A))
#define  TOSTRING(A) #A + " = " + (string)(A)

void OnStart()
{
  ulong MaxInterval = 0;
  MqlTick Tick;
  
  while (_CS(true))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = SymbolsTotal(true) - 1; _CS(i >= 0); i--)
      SymbolInfoTick(SymbolName(i, true), Tick);

    const ulong Interval = GetMicrosecondCount() - StartTime;              
    
    if (Interval > MaxInterval)
    {
      MaxInterval = Interval;
      
      Print(TOSTRING(MaxInterval));
    }
  }
}

Got

MaxInterval = 7631

Normale?

 
fxsaber:

Quali costi di tempo dovrebbero essere considerati come la norma?

SymbolInfoTick controllato (96 caratteri)

Capito

Norm?

45 secondi per strumento morto.
 
Andrey Khatimlianskii:
45 secondi per strumento morto.
Solo quelle vive sono interessanti. Uno per uno 100 pezzi.
 

Ma è normale?

Lo stesso valore viene restituito per diverse situazioni.

Capisco che devo controllare, ma le cose accadono...

posizioni

stampa del risultato


File:
posi.mq5  2 kb
 
Alexandr Bryzgalov:

Ma è normale?

Lo stesso valore viene restituito per diverse situazioni.

Capisco che devo controllare, ma le cose accadono...

posizioni

stampa del risultato



E qual è la domanda?

Dove potete vedere che sotto il numero "i" c'è una posizione con tale e tale biglietto, per tale e tale simbolo? In generale, oltre a visualizzare semplicemente il numero di serie, emette anche il biglietto e il simbolo.