Errori, bug, domande - pagina 2223

 
Nikolai Semko:
Sì, ho già dato questo link alla tua implementazione nel post 22214. Lo dirò di nuovo - penso che questa sia l'opzione più sensata finora. E sembra che non ci sia un'implementazione migliore in termini di carico minimo della CPU e rilevanza del momento di un nuovo tick.

Ci sarà una normale funzionalità nei servizi.

 
fxsaber:

Nei servizi ci sarà la normale funzionalità.

speriamo...

 

Il terminale (1874) smette di mostrare (grafico o interrogazione) la storia delle barre del simbolo personalizzato quando si passa a un altro server di trading. Dopo il riavvio del terminale viene mostrata la storia. Non appena si passa di nuovo a un altro server, la situazione si ripete.


Lacronologia dei tick non soffre quando si cambia server di trading. Questo bug non è presente.

 
template <typename T>
class CLASS
{
public:  
  T Func() { return(0); }
};

class CLASS2 : public CLASS<int>
{
public:
  CLASS2()
  {
    this.Func(); // ALT+G в ME не производит переход на int CLASS<int>:Func()
  }
};

È così che il ME dovrebbe comportarsi?

 

Errore in FileLoad. Se due agenti locali con il flag FILE_COMMON cercano di leggere i dati tramite FileLoad, uno degli agenti fallisce.

È possibile impostare i flag appropriati in FileOpen, ma non in FileLoad. Pertanto, permettete l'accesso al file tramite FileLoad se l'altro FileLoad lo legge.

 

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

Non per gli sviluppatori MT! Con cosa sostituire INIT_PARAMETERS_INCORRECT?

fxsaber, 2018.07.10 20:16

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
  #property tester_file __FILE__

Insetto antico.

 

È possibile mantenere tester_file nella RAM per evitare l'abuso di HDD/SSD? Ci sono milioni di passaggi ed è orribile contare il file così tante volte.


Un tale "RAM-disk" renderebbe molto più difficile il trasferimento non autorizzato di dati personali a terzi.

 

Le nuove cache di ottimizzazione non tengono conto delle modifiche ai file tester_file e Common prima di eseguire l'ottimizzazione.

Ecco un esempio di un tale EA.

 
fxsaber:

Le nuove cache di ottimizzazione non tengono conto delle modifiche ai file tester_file e Common prima di eseguire l'ottimizzazione.

Ecco un esempio di un tale EA.

I vecchi sono stati presi in considerazione o no?

Nulla è cambiato rispetto alle "vecchie" cache di ottimizzazione.

Se si infila un tester_file modificato con lo stesso tempo di modifica del file, il file sarà considerato invariato.

I file comuni non possono essere controllati affatto (e non lo sono mai stati), dato che non si sa quali di essi si usano nel proprio EA

 
Slava:

Se si infila un tester_file modificato con lo stesso tempo di modifica del file, il file sarà assunto come non modificato.

Il tempo di modifica aggiornato non ha effetto sul risultato. Consulente esperto

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
#property tester_file __FILE__ 

sinput int NumPass = 10;

#define  TOSTRING(A) #A

void SetArray( int &Array[], const int Amount )
{
  MathSrand((int)TimeLocal());
  
  for (int i = ArrayResize(Array, Amount) - 1; i >= 0; i--)
    Array[i] = MathRand() * Amount / SHORT_MAX + 1; // Случайное положительное число
}

void OnTesterInit()
{    
  ParameterSetRange(TOSTRING(NumPass), true, 0, 0, 1, NumPass - 1); // Задали Оптимизатору количество проходов = NumPass    
  
  int Array[];
  
  SetArray(Array, NumPass);      
  FileSave(__FILE__, Array);
  
  ArrayPrint(Array);  
}

void OnTesterDeinit()
{
  ChartClose(); // Закрыли чарт Frame-выполнения советника
}

double OnTester()
{
  int Array[];
  
  return((FileLoad(__FILE__, Array) != -1) ? Array[NumPass]: 0);
}


Risultato di due corse consecutive


Segnato in rosso, la seconda corsa corrisponde esattamente ai valori della prima corsa, non della seconda (seconda linea).


Il registro lo conferma

Tester  set "Custom max" as optimization criterion for mathematical calculations
Tester  input parameter 'NumPass' set to: enable=true, value=0, start=0, step=1, stop=9
Tester  cache file 'tester\cache\X2.30.480532BA71563CA64BC267378A0185DD.opt' contains 10 records
Tester  Experts\fxsaber\X2.ex5 math calculations test means no history and no symbol info for EURGBP
Tester  complete optimization started
Tester  optimization already processed, total passes 10
Tester  reading of 10 result records from cache...
Tester  1 blocks of results read from cache in 0 ms
Statistics      optimization done in 0 minutes 00 seconds


Se resetto la cache (ricompilo), la prima esecuzione va bene, più avanti no.