Errori, bug, domande - pagina 2422

 

bild 2009

I dati ricevuti dai TF superiori nel grafico online differiscono da quelli ricevuti nel tester. Questo bug rende impossibile testare correttamente gli Expert Advisors utilizzando dati da TF superiori.

Riprodotti esempi minimi nell'allegato, lo script per il grafico e l'Expert Advisor per il tester scrive i dati in un file per un ulteriore confronto.

La schermata dei due file corrispondenti mostra differenze significative:

bug

File:
 
Andrey Dik:

bild 2009

I dati ricevuti dai TF superiori nel grafico online differiscono da quelli ricevuti nel tester. Questo bug rende impossibile testare correttamente gli Expert Advisors utilizzando dati da TF superiori.

Riprodotti esempi minimi nell'allegato, lo script per il grafico e l'Expert Advisor per il tester scrive i dati in un file per un ulteriore confronto.

La schermata dei due file corrispondenti mostra differenze significative:

E, sì, questo bug può essere evitato costruendo indipendentemente TF superiori dalla storia dei tick, ma ciò non significa che si possa ignorare il funzionamento errato delle funzioni i(o,h,l,c), iOpen, ecc. nel tester.

 
Andrey Dik:

Avete controllato i miei codici? Non ti piacciono i miei test, scrivi i tuoi test, "correttamente". Quando avete fatto un test per il bug che avete espresso, postatelo qui. Non vuoi andare a controllare? - La mia segnalazione di bug non è per voi, è per gli sviluppatori.
Ho usato MT5 fin dal beta testing della piattaforma, e non sta a voi darmi lezioni.

Non c'è bisogno di eseguire i vostri codici. Davvero non capite il problema?

Lo script legge gli stati del bar per oggi. L'Expert Advisor legge gli stati delle barre al momento del test attuale.

 
Slava:

Non c'è bisogno di eseguire i vostri codici. Davvero non capite il problema?

Lo script legge gli stati del bar a partire da oggi. L'Expert Advisor legge gli stati delle barre al momento del test attuale.

Slava, sotto la pressione della tua autorità ero titubante sulle mie azioni... Ma solo per un momento perché mi sono ricordato che stavo controllando il momento di cui mi hai parlato, mostrando il tempo dei TF superiori insieme ai loro prezzi.

Comunque, specialmente per te, l'ho fatto - ora visualizza in una riga tutto ciò di cui hai bisogno per vedere il problema.... Non volete dire che iTime restituisce il tempo correttamente, ma i prezzi iOpen, iHigh, iLow, iClose - errati e questo è normale?

Inoltre, si prega di prestare particolare attenzione alla linea:

int bar = iBarShift (NULL, tf, time, false);

nella relativa funzione, bar è un indice nella matrice, che si ottiene in base all'ora del tempo, se viene richiesto per oggi, ieri o l'altro ieri, l'indice della barra viene restituito dal tempo richiesto nei parametri della funzione.

Gli esempi allegati mostrano il tempo di TFs, vi consiglio vivamente di eseguirli ancora e assicurarvi di avere il problema da soli, piuttosto che ascoltare i passanti casuali, che non si preoccupano di esaminare il problema, guardare il codice ed eseguirlo.

Non capisco la posizione dell'amministrazione... Voleva mostrare il problema, voleva il meglio, ma risulta come sempre...

File:
 
Pavel Nikiforov:

Ho incontrato un tale problema con il tester: la prima volta che premiamo start tutto il processo va bene, premere subito dopo - niente, nessun errore o test. La cosa divertente è che dopo aver aspettato qualche minuto, il tester funziona di nuovo, ma di nuovo per una volta.

Se si esegue l'ottimizzazione su un certo numero di corse, cede:

EO 2 15:51:28.514 Core 1 passaggio genetico (0, 0) testato con errore "qualche errore dopo il passaggio finito" a 0:00:00.052

PS 2 15:51:28.615 Core 1 passaggio genetico (0, 1) testato con errore "task rifiutato dall'agente tester" in 0:00:00.000

Tale magia solo con un EA, probabilmente il problema con esso e nuovi aggiornamenti, ma dove cercare non è chiaro, prima tutto funzionava (due mesi senza toccarlo).

In generale, l'ho capito. Se qualcuno è interessato, era Sleep(5000); non importa quanti millisecondi si possono usare. In altre parole, Sleep() non dovrebbe influenzare il test e allo stesso tempo "suona" i tick generati per il tempo specificato. Finora non ho trovato alcuna connessione tra Sleep() e un codice specifico dell'Expert Advisor. Questo problema non esiste in altri gufi ma comunque non è mai successo prima e se incontrate problemi simili dovreste farci caso.

 
Andrey Dik:

Slava, sotto la pressione della tua autorità stavo esitando sulle mie azioni... Ma solo per un momento, perché mi sono ricordato che stavo controllando il punto che hai menzionato visualizzando anche il tempo dei TF più vecchi insieme ai loro prezzi.

Comunque, specialmente per te, l'ho fatto - ora emette in una linea tutto ciò di cui hai bisogno per vedere il problema.... Non volete dire che iTime restituisce il tempo correttamente, ma i prezzi iOpen, iHigh, iLow, iClose - errati e questo è normale?

Inoltre, si prega di prestare particolare attenzione alla linea:

nella relativa funzione, bar è un indice nella matrice, che si ottiene in base all'ora del tempo, se viene richiesto per oggi, ieri o l'altro ieri, l'indice della barra viene restituito dal tempo richiesto nei parametri della funzione.

Gli esempi allegati mostrano il tempo dei TF, vi consiglio vivamente di eseguirli ancora e assicurarvi di avere il problema da soli, piuttosto che ascoltare i passanti casuali, che non si preoccupano di esaminare il problema, guardare il codice ed eseguirlo.

Non capisco la posizione dell'amministrazione... Volevo mostrarvi che c'era un problema, volevo il meglio ma è andata a finire come succede sempre...

Ho provato a usare CopyRates () in Expert Advisor, il risultato è stato lo stesso che nel caso di i(), il tempo corrisponde ma i prezzi no.

 

Nell'esempio seguente si verifica un errore quando si cerca di copiare un oggetto con un campo costante, nonostante la presenza dell'operatore sovraccaricato =. E il testo del messaggio di errore non corrisponde nemmeno alla causa dell'errore, perché protetto non ha nulla a che vedere con esso.

class A
{
};

class B
{
  A _data;
 public:
  const A*const Data;
  
  B() : Data(&_data) { }
  
  void operator=(const B &other) { _data= other._data; }
};

struct  C
{
  B b;
};

void OnInit()
{
  B b;
  b=b; // Так работает
  C c;
  c=c; // '=' - not allowed for objects with protected members or inheritance
}
 
Come faccio a scaricare il codice da Russian ME dalla KB in lingua inglese?
 
Andrey Dik:

Slava, sotto la pressione della tua autorità stavo esitando sulle mie azioni... Ma solo per un momento, perché mi sono ricordato che stavo controllando il punto che hai menzionato visualizzando anche il tempo dei TF più vecchi insieme ai loro prezzi.

Comunque, specialmente per te, l'ho fatto - ora emette in una linea tutto ciò di cui hai bisogno per vedere il problema.... Non volete dire che iTime restituisce il tempo correttamente, ma i prezzi iOpen, iHigh, iLow, iClose - errati e questo è normale?

Inoltre, si prega di prestare particolare attenzione alla linea:

nella relativa funzione, bar è un indice nella matrice, che si ottiene in base all'ora, sia che venga richiesto per oggi, per ieri, o l'altro ieri, l'indice della barra viene restituito dall'ora richiesta nei parametri della funzione.

Gli esempi allegati mostrano il tempo di TFs, vi consiglio vivamente di eseguirli ancora e assicurarvi di avere il problema da soli, piuttosto che ascoltare i passanti casuali, che non si preoccupano di esaminare il problema, guardare il codice ed eseguirlo.

Non capisco la posizione dell'amministrazione... Voleva mostrare il problema, voleva il meglio, ma risulta come sempre...

Nessuno è interessato a questo. La cosa principale è il mercato e i segnali funzionano.
 

Buon pomeriggio.

Costruire 2007. Il problema è il seguente. Sto eseguendo nello strategy tester un EA su un futures (non incollato) con visualizzazione. Ottengo il seguente risultato

Ora rimuovo la casella di controllo "Visualization" e ottengo risultati diversi

Prendo altri periodi, compresi gli strumenti. Sia i parametri di profitto che il numero di accordi sono diversi. Inoltre, ho scoperto dopo un confronto dettagliato di accordi che alcuni accordi sono impossibili senza la visualizzazione a livello di logica del consulente. Quindi, i dati corretti possono essere ottenuti solo utilizzando la visualizzazione.

Compagni membri del forum e sviluppatori, cos'è e come affrontarlo? È costoso testare tutto il tempo con la visualizzazione su grandi periodi, perché il processo richiede più tempo che senza la visualizzazione.

Motivazione: