Errori, bug, domande - pagina 1877

 
kaus_bonus:

qual è il tempo per cancellare la cache dell'agente tester in MT5?



hai chiesto e hai risposto))

Ottengo che il tempo di cancellazione della cache è di 6 min. dopo questo tempo la cartella temporanea dell'agente tester viene cancellata, e poi la preparazione dei dati continua di nuovo.

Questo è ridicolo.

 
Sergey Dzyublik:
Per favore, ditemi se ci sono piani per aggiungere l'uso di template all'unione, in modo da poterlo fare:
Bypass - vedi come questo è implementato in TypeToBytes.
 
L'errore è corretto in questo caso? Come si può bypassare senza rimuovere la cost?
struct STRUCT
{
  const MqlTick Data;
  
  STRUCT( MqlTick &Tick ) : Data(Tick) {} // 'Data' - constructor not defined
};
 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Bug, bug, domande

fxsaber, 2017.04.10 16:23

Creare sovraccarichi di template non necessari che causano errori di compilazione.
template <typename T>
T Func()
{
  T Res;
  
  return(Res);
}

template <typename T>
void Func( T& Value )
{
  T Res = (MqlTick)Value;
}

void OnStart()
{
  Func<string>(); // без этой строки компилируется
  
  MqlTick Tick;
  
  Func(Tick);
}

Il compilatore sta cercando di creare un

void Func( string& );
1595 - mai riparato.
 
Consulente
input int i = 0;

void OnInit() {}

Parametri dell'ottimizzatore 1595

La brute-optimisation ha richiesto 5,5 minuti, il che è a dir poco scorretto.

Tutti i log sono nel file allegato. Per favore, firma se è riproducibile o meno.

File:
Tester.zip  24 kb
 
fxsaber:
1595 - mai riparato.


Rimuovete il calco esplicito di Struct e tutto funziona.

template <typename T>
T Func(){
  T Res;
  return(Res);
}

template <typename T>
void Func( T& Value ){
  T Res = Value;
}

void OnStart()
{
  Func<string>(); 
  
  MqlTick Tick;
  Func(Tick);
}


 
Sergey Dzyublik:


Rimuovete il calco esplicito di Struct e tutto funziona.

Gli sviluppatori hanno confermato l'errore nella SD. Guardate attentamente, il gesso non c'è.
 
fxsaber:
Gli sviluppatori hanno confermato l'errore nella SD. Guardate attentamente, la fusione non c'è.

template <typename T>
void Func( T& Value )
{
  T Res = (MqlTick) Value;
}
Come si chiama allora questa operazione?
 
Sergey Dzyublik:


Rimuovete il calco esplicito di Struct e tutto funziona.

Due domande.

1. cosa registra questo codice?

2. come si collega il cast al bug della selezione del sovraccarico della funzione corretta?

 
Su MT5 1595 32bit funziona tutto alla perfezione (Win7 64bit):


template <typename T>
T Func(){
  T Res;
  Print (__FUNCTION__);
  return(Res);
}

template <typename T>
void Func( T& Value ){
  Print (__FUNCTION__);
  T Res = Value;
}

void OnStart()
{
  Func<string>(); 
  
  MqlTick Tick;
  Func(Tick);
}

Risultato:
2017.04.26 14:51:14.834 WebTest (EURUSD,H4) Func<string>
2017.04.26 14:51:14.836 WebTest (EURUSD,H4) Func<MqlTick>


Nessun bug con la selezione delle funzioni, come può riguardare il fatto che non ce ne sono))