Errori, bug, domande - pagina 1866

 
Diario del tester
2017.04.21 09:06:58.342 RTS-6.17,M1: testing of Experts\fxsaber\Test2.ex5 from 2017.04.07 00:00 to 2017.04.08 00:00 started
2017.04.21 09:06:58.342 RTS-6.17 : real ticks begin from 2017.04.05 00:00:00

I tic veri e propri iniziano due giorni prima della data iniziale dell'intervallo del test. È normale?

 
fxsaber:
Diario del tester

I tic veri e propri iniziano due giorni prima della data iniziale dell'intervallo del test. È normale?

Suppongo che questo sia stato fatto intenzionalmente - per essere in grado di calcolare gli indicatori che richiedono una certa quantità di storia per i loro calcoli?
 
Artyom Trishkin:
Posso supporre che questo sia stato fatto di proposito - per essere in grado di calcolare indicatori che richiedono una certa quantità di storia per i loro calcoli?
Le barre sono sufficienti per questo. La cronologia delle zecche è disponibile in qualsiasi profondità.
 
fxsaber:
Diario del tester

I tic veri e propri iniziano due giorni prima della data iniziale dell'intervallo del test. È normale?

Stai supponendo che la storia e i tick siano caricati di nuovo sul tester ogni volta?

Cancellate la cache della cronologia nella cartella del tester, eseguite il test e guardate il log

 
stringo:

Stai supponendo che la cronologia e i tick siano scaricati di nuovo sul tester ogni volta?

Cancellate la cache della cronologia nella cartella del tester, eseguite il test e guardate il log

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

Peculiarità del linguaggio mql5, sottigliezze e trucchi

fxsaber, 2017.04.07 16:00

Nel tester MT5 in modalità "real ticks", la base della storia non sono ticks reali, ma barre M1. Questo significa che se i tick reali non corrispondono alle barre, vengono ignorati e invece vengono generati tick artificiali che sono obbligati a corrispondere alle barre.

Allo stesso tempo, se CopyTicks è richiesto per più di 128K, allora nel tester, saranno presi non dalla cache (tick reali + generati), ma da un database - tick reali. E ottenere una mancata corrispondenza nel tester tra la storia delle zecche e ciò che il tester stava alimentando.

Questa è una compilazione delle risposte ricevute nella SD.
 
fxsaber:
È una compilazione delle risposte ricevute nel SR.
Quindi?
 
stringo:
Quindi?
Dato che CopyTicks è in grado di recuperare i dati dal database condiviso, perché i due giorni in più?
 
fxsaber:
Dato che CopyTicks è in grado di recuperare i dati dal database condiviso, perché i due giorni in più?

Da quale base comune? La base comune di tutti gli agenti tester.

In generale non ci saranno zecche prima della data di inizio del test. Ti ho suggerito di cancellare tutte le cache nel tester, eseguire il test e vedere i log.

 
stringo:

Da quale base comune? Il database comune di tutti gli agenti tester.

In generale non ci saranno zecche prima della data di inizio del test. Ti ho suggerito di cancellare tutte le cache nel tester, eseguire il test e guardare i log.

Capito, grazie. Poi non ho capito bene cosa significasse la SD.
 
Dalla SD.
Мы приняли решение отказаться от приведения неродственных структур

Ora (1589) non compila cose così semplici

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

Come confrontare rapidamente il doppio e il QNaN?

fxsaber, 2016.10.11 10:57

double Nan(long bit_value)
  {
   struct L { long   x; } l; l.x=bit_value;
   struct D { double x; } d=(D)l;
   return(d.x);
  }

double QNaN   =Nan(0x7FF7000000000000);   // QNaN

Ed è diventato impossibile scoprire se il doppio è uguale a QNaN

double QNaN2 = (double)"nan";

void OnStart()
{
  Print(QNaN == QNaN);
}


Risultato

false


Perché avete reso completamente impraticabile la libreria TypeToBytes, che era perfettamente in grado di confrontare il doppio con QNaN

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

Come confrontare rapidamente il doppio e il QNaN?

fxsaber, 2016.10.11 11:14

#include <TypeToBytes.mqh>

void OnStart()
{
   if (_R(QNaN)==QNaN) {
      Alert("QNaN is QNaN");
   } else {
      Alert("Ooops");
   }   
}

Per non parlare dell'enorme numero di altre caratteristiche messe in pratica - esempio.