Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Script di test sulla prima versione dell'algoritmo:
Per una funzione così semplice, avete complicato troppo l'interfaccia. Un sacco di esportazioni inutili, mentre mancano le cose necessarie. Non riesco a capire subito il tuo codice, posso immaginare come si sentono le persone che non sono così brave a programmare.
Ora penserò e proporrò la mia versione di esportazione semplificata e il funzionamento dello script di prova.
Forse l'approccio "evolutivo" di trovare i valori dei parametri dell'equazione FF non ha tanto lo scopo di migliorare l'efficienza della ricerca dei valori, ma piuttosto di modellare via software il processo di evoluzione.
Bene, come l'evoluzione è rappresentata dagli scienziati...
L'approccio è molto coerente nella sua conformità a tutti i canoni evolutivi...
Proposta:
1. una funzione di fitness prende un array di parametri di tipo doppio e restituisce un numero tanto più grande quanto migliore è la scelta dei parametri. Il prototipo della funzione di fitness è il seguente:
2. La funzione di fitness ha alcuni parametri, che sono specificati nella struttura FitnessParams. Una descrizione della struttura è data di seguito:
3. La funzione di fitness e i suoi parametri sono protetti da influenze esterne e sono memorizzati in una libreria indipendente..\Scripts\\\FF\FF.ex5. I valori dei parametri della funzione di fitness e il suo algoritmo stesso sono impostati al momento della compilazione da un arbitro indipendente e non possono più essere modificati da nessuno.
4. Un algoritmo di ottimizzazione personalizzato e uno script di controllo possono trovare i parametri di una funzione di fitness. A questo scopo il file Export.mqh contiene i prototipi necessari di questa funzione e i suoi parametri. Per ottenere i parametri FF, si usa la funzione di esportazione, che si trova anche in ...\Scripts\\\FF\FF.ex5:
void GetFitnessParams(FitnessParams& params);
5. L'algoritmo di ottimizzazione dell'utente si trova in una libreria utente separata e chiusa..\Scripts\\FF\UserFindExtremum.ex5 ed è compilato separatamente, sul lato utente. La funzione FindExtremum deve essere esportata nella libreria utente. Questa funzione sarà chiamata dallo script di controllo. Il prototipo completo della funzione è riportato di seguito:
6. Lo script di controllo carica nel suo spazio di indirizzi la libreria della funzione fitness ..\Scripts\\\FF\FFFF.ex5 con i suoi parametri, e la libreria del membro Find Extremum..\Scripts\FF\FF\UserFindExtremum.ex5. Dopo di che chiama la funzione membro FindExtremum.
7. dopo che la funzione partecipante è stata eseguita, lo script di controllo interroga i parametri della funzione fitness, che contengono il valore massimo trovato dalla funzione partecipante e il numero di chiamate che ha impiegato per trovare quel massimo. Sulla base di questi dati, viene generato un rapporto del risultato del partecipante sotto forma di tabella:
Ilseguente post aggiungerà i file necessari e un esempio di utilizzo
File Export.mqh - un elenco di funzioni disponibili e la struttura dei parametri comune a tutti i partecipanti
File FF.mq5 - esempio di una funzione di fitness come libreria.
File TestFF.mq5 - algoritmo di controllo come script
File UserFindExtremum.mq5 - funzione personalizzata per la ricerca di un estremo sotto forma di libreria. Una ricerca casuale è usata come esempio
File Export.mqh - un elenco di funzioni disponibili e la struttura dei parametri comune a tutti i partecipanti
File FF.mq5 - esempio di una funzione di fitness come libreria.
File TestFF.mq5 - algoritmo di controllo come script
File UserFindExtremum.mq5 - funzione personalizzata per la ricerca di un estremo sotto forma di libreria. Una ricerca casuale è usata come esempio
Per una funzione così semplice, avete complicato troppo l'interfaccia. Un sacco di esportazioni inutili, mentre le cose necessarie al contrario mancano. Non ho capito il tuo codice dalla prima volta, posso immaginare cosa provano le persone che non sono così brave a programmare.
Ci penserò e proporrò la mia versione di esportazione semplificata e lo script di test.
Perché non è necessario?
Che tipo di cose mancano?
Dopo tutto, non solo per rendere la vita il più difficile possibile per i partecipanti così ho fatto tutto, e non il primo giorno ho pensato a tutto, e nemmeno il secondo.
Perché non quelli giusti?
Quali sono quelli che mancano?
Dopo tutto, non solo per rendere la vita il più difficile possibile per i partecipanti così ho fatto tutto, e non il primo giorno ho pensato a tutto, e nemmeno il secondo.
Andrew, non so gli altri, ma personalmente, mi è piaciuto di più l'esempio di Vasily. Senza offesa. Questa è solo la mia percezione soggettiva.
Per essere giusti, propongo di mettere ai voti la questione della scelta dell'interfaccia di connessione (la tua o quella di Vasiliy).
Cosa ne pensate?
Andrew, non so gli altri, ma personalmente ho preferito l'esempio di Vasily. Senza offesa. È solo la mia percezione soggettiva...
Per essere giusti, propongo di mettere ai voti la questione della scelta dell'interfaccia di connessione (la tua o quella di Vasiliy).
Cosa ne pensate?
Perché non quelli giusti?
Quali sono quelli che mancano?
Non è solo per rendere la vita il più difficile possibile ai partecipanti che ho fatto così, e non è stato il primo giorno che ci ho pensato, e nemmeno il secondo.
Nel tuo esempio, il compito della ricerca è parzialmente delegato allo script di controllo. Questo non è corretto. Lo script di controllo dovrebbe chiamare la ricerca e controllare il suo risultato e nient'altro.
Non tutti i parametri FF sono disponibili. Per esempio, come ottenere il passo del parametro (valore 0,1), possibile massimo e minimo? È fantastico, naturalmente, che ogni utente legga questo forum e capisca che il passo risulta essere 0,1, il minimo -10,0 e il massimo +10,0, poi inserisca queste costanti nel suo codice e speri che la funzione FF pensi allo stesso modo. Ma questo non è il modo di farlo in modo positivo.
Molte funzioni di esportazione come ServiceFunc1 sono usate solo in algoritmi di ricerca specifici. Per esempio, non dovrebbero essere usati nella ricerca casuale. Allora perché una libreria di utenti dovrebbe esportarli? Basta separare il compito di test da quello di ricerca per rendersi conto che tutta questa complicata combinazione di funzioni di esportazione non è necessaria.
Ci sono molte altre cose che rendono inutili gli add-on.
Cosa ti piace di più esattamente?