Che diavolo sta succedendo?

 

Si tratta ancora una volta del tester/ottimo...

Notate discrepanze nei risultati dell'ottimizzazione e del singolo test. Riavviato il terminale, cambiato le impostazioni (per essere sicuri). Iniziata l'ottimizzazione.

Ha fatto un solo test...

Come può essere? Da dove viene questa assurdità?

 

Avete garantito che la logica del vostro codice sia la stessa in entrambi i casi?

Non nel senso di "non ho cambiato il codice", ma per garantire che il comportamento tecnico e logico del robot sia invariato.

Questo tipo di affermazione richiede di fornire il maggior numero possibile di dettagli tecnici, comprese le logiche e le condizioni di riproduzione. Più i vostri tentativi di capire e raccogliere più informazioni. Il programma è tuo.

Gridare "Ho scritto qualcosa qui, non l'ho capito, non ho descritto i dettagli, voglio solo esprimere la mia indignazione perché penso che il mio programma, che non so come funziona, sia stato in qualche modo gestito male da qualcun altro" è inutile.

 
Facevo funzionare l'ottimizzatore quando ero giovane e verde, ora sono passati diversi anni da quando ho iniziato a ottimizzare, basta un tester per capire, e l'ottimizzatore ci nutre di illusioni
 
Aleksey Semenov:
Ero solito eseguire l'ottimizzatore quando ero giovane e verde, e ora non lo eseguo più da diversi anni, perché il tester ha solo bisogno di capire, e l'ottimizzatore ci nutre solo di illusioni.

L'ottimizzatore ha un compito chiaro: controllare il campo delle opzioni e dare una serie di parametri per la funzione definita dal trader.

Questo è un compito tecnico, e lui l'ha affrontato e sta facendo un ottimo lavoro.

La qualità e la robustezza dei robot devono essere monitorate.

 
Renat Fatkhullin:

L'ottimizzatore ha un compito chiaro: controllare il campo delle opzioni e dare una serie di parametri per la funzione definita dal trader.

Questo è un compito tecnico, e lui l'ha affrontato e sta facendo un ottimo lavoro.

La qualità e la robustezza dei robot devono essere monitorate.

Ho cancellato tutte le cache. Ripetuto il test di ottimizzazione. Il risultato è lo stesso. Cancella le discrepanze.

Naturalmente, non sono un Expert Advisor, ma non capisco perché l'ottimizzatore ha un 100 quando usa i parametri 3, 5, 20 e il test con gli stessi parametri mostra -20....

La logica EA sia nell'ottimizzatore che nel tester è la stessa. L'hardware è lo stesso. Cosa e come devo fare per ottenere una tale differenza nei risultati?

Renat Fatkhullin:

E avete garantito che la logica del vostro codice non cambierà in entrambi i casi?

Non nel senso di "non ho cambiato il codice", ma nel senso di garantire un comportamento invariato a livello tecnico e logico del robot.

Questo tipo di affermazione richiede di fornire il maggior numero possibile di dettagli tecnici, comprese le logiche e le condizioni di riproduzione. Più i vostri tentativi di capire e raccogliere più informazioni. Il programma è tuo.

Gridare "Ho scritto qualcosa qui, non ho controllato, non ho descritto i dettagli, voglio solo esprimere la mia indignazione perché credo che il mio programma, che non so come funziona, sia stato in qualche modo gestito male da qualcun altro" è inutile.

Consigli su come rilevare questa "variabilità" tra ottimizzazione e test?

Domani posterò i registri. Pulirò tutto e farò l'ottimizzazione e il test. Ricordo la tua lezione )))) Sarò molto attento.


Nel frattempo, buona Grande Vittoria a tutti!!!

Vado a festeggiare ))))

 
Сергей Таболин:

Rimosso completamente tutte le cache. Ripetuto il test di ottimizzazione. Stesso risultato. Cancella le discrepanze.

Naturalmente, non sono un esperto, ma non capisco perché l'ottimizzatore ha un risultato di 100, mentre il test con gli stessi parametri mostra -20....

La logica EA sia nell'ottimizzatore che nel tester è la stessa. L'hardware è lo stesso. Cosa devo fare per ottenere una tale differenza nei risultati?

Per favore, consigliatemi come rilevare questa "variabilità" tra l'ottimizzatore e il tester?

Domani posterò i registri. Pulirò tutto e farò l'ottimizzazione e il test. Ricordo la tua lezione )))) Sarò molto attento.


Nel frattempo, buona Grande Vittoria a tutti!!!

Vado a festeggiare ))))

C'è un piccolo thread nella sezione inglese dove un utente sta facendo la stessa domanda.
La sua ottimizzazione e il suo backtest sono uguali per tutti i suoi EA (tutto è OK), ma un EA è uguale al tuo.
Ha dato il risultato del backtest - potete guardarlo (gli ho dato un'idea a colpo d'occhio - perché è la differenza).

Non ha dato il codice, ma è chiaro che la ragione è nella logica (nel codice) del suo EA (perché ha detto che non ha avuto tali problemi con tutti i suoi altri EA - vedi il suo ultimo post nel thread): https://www.mql5.com/en/forum/338047
 
Basta dimenticare di inizializzare qualcosa nel codice e ci sarà una differenza. Controllare il codice.
 
Andrey Barinov:
Potreste semplicemente dimenticare di inizializzare qualcosa nel vostro codice e ci sarà una differenza. Controllare il codice.

Ho eseguito delle varianti di test molto tempo fa, c'era davvero della spazzatura nelle variabili, lo sviluppatore ha battuto questo all'inizio con i suoi sforzi? Dopo tutto, se c'è della spazzatura nel mezzo del codice, dovrebbe essere sempre lo stesso, giusto?

Non sono un programmatore professionista, è una domanda, non conosco il principio della programmazione a basso livello

 
Sergey Golubev:
C'è un piccolo thread nella sezione inglese dove un utente sta facendo la stessa domanda.
La sua ottimizzazione e il backtest su tutti i suoi EA corrisponde (tutto è OK) e un EA è come il tuo.
Ha dato il risultato del backtest - potete guardarlo (gli ho dato un'idea a colpo d'occhio - perché è la differenza).

Non ha dato il codice, ma è chiaro che la ragione è nella logica (nel codice) del suo EA (perché ha detto che non ha avuto tali problemi con tutti gli altri EA - vedi il suo ultimo post): https://www.mql5.com/en/forum/338047

Tutto è uguale al mio ))))

Andrey Barinov:
Basta dimenticare di inizializzare qualcosa nel codice e ci sarà una differenza. Controllare il codice.

Com'è? È lo stesso lì e lì. Come può esserci una differenza? Soprattutto perché praticamente tutti i dati sono inizializzati in un ciclo. E se qualcosa non è inizializzato lì, si esce con un errore.

Fast235:

Tempo fa ho eseguito delle varianti di test, c'era della spazzatura nelle variabili, lo sviluppatore non ha sconfitto questo all'inizio con i suoi stessi sforzi? Dopotutto, nel mezzo del codice se ci può essere del trash, dovrebbe essere sempre lo stesso, giusto?

Non sono un programmatore professionista, è una domanda.

Questo è esattamente il mio punto. Deve essere lo stesso in entrambi i casi. Anche se ho un bug da qualche parte, deve essere ovunque. Ma a quanto pare, questo difetto (mio) è in qualche modo magicamente corretto. Ma non è assolutamente chiaro dove? O nell'ottimizzatore, o nel tester....


Lontano dalla tavola festiva per un momento )))))))))))

 
Сергей Таболин:

Tutto è uguale al mio ))))

Com'è? È lo stesso lì e lì. Come può esserci una differenza? Soprattutto perché quasi tutti i dati sono inizializzati in un ciclo. Se qualcosa lì non è inizializzato, otterrete un errore.

Questo è quello che voglio dire. Deve essere lo stesso in entrambi i casi. Anche se c'è un bug in qualche posto, deve essere ovunque. Ma a quanto pare, questo difetto (mio) è in qualche modo magicamente corretto. Ma non è assolutamente chiaro dove? O nell'ottimizzatore, o nel tester....


Lontano dalla tavola delle vacanze per un momento )))))))))))

Intendevo le variabili, quando si esegue lo script e invece di 0 contengono i dati dell'ultima esecuzione o qualcosa del genere, non ricordo, era tipo 5 anni fa o qualcosa del genere

e nel tester molto probabilmente ancora una volta hai da qualche parte sfumatura, che tra l'altro dice che MQ ha bisogno di essere migliorato, io personalmente non mi piace tutto nel tester, l'interfaccia per eseguire non piace

 
Сергей Таболин:

Tutto è uguale al mio ))))

Com'è? È lo stesso lì e lì. Come può esserci una differenza? Soprattutto perché praticamente tutti i dati sono inizializzati in un ciclo. E se qualcosa lì non è inizializzato - uscita con un errore.

...

Ho dato a quel compagno lì nel ramo un'idea del perché ha una differenza in questo EA.
Dopo tutto, quando il backtest termina (al momento della fine del backtest), tutte le posizioni aperte sono forzatamente chiuse (solo nel tester).
Se avesse solo scambiato, non sarebbero stati chiusi in quel momento.

Pertanto, qui per lui -

  • O l'ottimizzazione della fiducia (che nel suo caso è preferibile),
  • o ignorare la chiusura forzata delle posizioni aperte nel bestest solo prima che finisca, ma allora non otterrà cifre,
  • o scegliere un intervallo di tempo per il backtest con gli stessi parametri di ottimizzazione, quando l'EA chiuderà tutte le posizioni prima della fine del backtest (scegliendo ...), e poi penso che sarà lo stesso.
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...