Campionato di ottimizzazione degli algoritmi. - pagina 4

 
Dmitry Fedoseev:
Guardate il metodo universale di cui sopra. E se una chiamata una tantum tramite un intermediario, che richiederebbe un adattamento molto serio della funzione di ricerca, è esattamente quello che nessuno farà.
Non esagerare. C'è una soluzione. Pensate a come potete sbarazzarvi della chiamata interna a FF dalla vostra libreria di algoritmi.
 
Andrey Dik:
Non esagerare. C'è una soluzione. Pensate a come potete sbarazzarvi della chiamata interna a FF dalla vostra libreria di algoritmi.
Non dovresti nemmeno pensarci, non c'è motivo di sprecare sforzi per questo.
 
Dmitry Fedoseev:

...

Non ci sono altre opzioni. A meno che non si possa passare un puntatore a una funzione, se possibile (ma finora nessuno ha suggerito dove guardare nell'aiuto). Il membro deve avere una capacità completa di chiamare una funzione ff.

È stato menzionato qui con un esempio:Nuova versione della piattaforma MetaTrader 5 build 1325: Trading con hedging e test con tick reali >>>.

Esempio:

MQL5: per facilitare l'organizzazione dei modelli di eventi, è stato aggiunto il supporto per i puntatori alle funzioni.

Per dichiarare un puntatore a una funzione, definite il tipo "puntatore a funzione", per esempio:

typedef int (*TFunc)(int,int);

TFunc è ora un tipo e potete dichiarare una variabile puntatore di funzione:

TFunc func_ptr;

Potete memorizzare l'indirizzo di una funzione nella variabile func_ptr in modo da poterla chiamare in seguito:

int sub(int x,int y) { return(x-y); }
int add(int x,int y) { return(x+y); }
int neg(int x)       { return(~x);  }

func_ptr=sub;
Print(func_ptr(10,5));

func_ptr=add;
Print(func_ptr(10,5));

func_ptr=neg;           // ошибка: neg не имеет тип  int (int,int)
Print(func_ptr(10));    // ошибка: должно быть два параметра

I puntatori alle funzioni possono essere memorizzati e passati come parametro. Non si può ottenere un puntatore a un metodo non statico di una classe.

 

Ecco il mio metodo della classe, per esempio:

      void Evolution(){ 
         

         for(int c=0;c<GenerationsCount;c++){
         
            f0(); // расчет значений фф для каждого индивида
            f1();         
            f2();
            f3();
            f4();
            
         }
         
         f5();
         f6();

      }

Beh, come possiamo farlo? E soprattutto, perché pensarci quando in realtà non è mai necessario. Il campionato di algoritmi di ottimizzazione si trasforma nel campionato di adattamento di una funzione per lavorare attraverso il tuo sedere.

Una funzione può contare quante volte è stata chiamata. Se un concorrente fa un'importazione, il numero può essere scritto nel file e azzerato prima che venga eseguito.

È meglio usare una classe, poi la quantità sarà solo disponibile. L'imbroglio è escluso in questo caso.

 
Dmitry Fedoseev:
Non dovreste nemmeno pensarci, non c'è motivo di sprecare sforzi per questo.

OK. Nessun problema. Poi ci sono due opzioni per il funzionamento degli algoritmi per il campionato:

1. Con la chiamata di FF dall'interno dell'algoritmo (dopo tutto, l'algoritmo non saprà cosa sia FF all'interno di una bibbia chiusa con FF)

2. senza chiamare il FF dall'interno dell'algoritmo, passando semplicemente il risultato all'algoritmo.

Suppongo che queste due opzioni possano coprire tutte le possibili variazioni nell'uso degli algoritmi di ottimizzazione. Dobbiamo venire incontro ai partecipanti, non tutti hanno un alto livello di conoscenza della programmazione (io non sono un professionista, per esempio, mi ci sono voluti diversi mesi per segare l'algoritmo in parti per universalità))))

 

Grazie.

Non è più facile che con una classe. Direi addirittura che è più facile con una classe.

 
Andrey Dik:

OK. Nessun problema. Poi ci sono due opzioni per il funzionamento degli algoritmi per il campionato:

1. Con la chiamata di FF dall'interno dell'algoritmo (dopo tutto, l'algoritmo non saprà cosa sia FF all'interno di una bibbia chiusa con FF)

2. senza chiamare il FF dall'interno dell'algoritmo, passando semplicemente il risultato all'algoritmo.

Suppongo che queste due opzioni possano coprire tutte le possibili variazioni nell'uso degli algoritmi di ottimizzazione. Dobbiamo venire incontro ai partecipanti, non tutti hanno un alto livello di conoscenza della programmazione (io non sono un professionista, per esempio, mi ci sono voluti diversi mesi per segare l'algoritmo in parti per universalità))))

Se avete del tempo in più, siete i benvenuti. Solo in. 2 non sarà richiesto.
 
Dmitry Fedoseev:
Se hai del tempo in più, sei il benvenuto. Solo in. 2 non sarà richiesto.
Beh, non sta a noi giudicare. Tu hai l'opzione 1 e io ho l'opzione 2. E chissà cosa faranno gli altri partecipanti. E qual è l'ora? - Ho scritto lo script di esempio qui sopra in 5 minuti, arriveremo alle 2 varianti stabilite, credo.
 
Andrey Dik:
Beh, non ci è permesso giudicare questo. Tu hai l'opzione 1 e io ho l'opzione 2. E chissà come faranno gli altri partecipanti. E qual è l'ora? - esempio di uno script scritto sopra in 5 minuti, quindi arriveremo alle 2 opzioni stabilite, suppongo.
Non può nemmeno pensare a qualcosa per indovinare come così potrebbe l'opzione 2? Non è naturale.
 
Dmitry Fedoseev:
Non riesco nemmeno a pensare a qualcosa che possa far indovinare come potrebbe accadere la Variante 2? Non è naturale.

Un semplice esempio. L'algoritmo di ottimizzazione è appeso a un grafico da qualche parte. L'Expert Advisor è ottimizzato nel tester integrato da una ricerca completa. Quindi puoi usare il tuo algoritmo di ottimizzazione invece di quello regolare.

Un altro esempio. L'Expert Advisor lavora nel grafico e fa trading. Salva i risultati del trade dopo un certo tempo nell'algoritmo (può essere all'interno o all'esterno dell'Expert Advisor) insieme ai suoi parametri e riceve indietro i nuovi parametri e poi continua il trading (nel tuo caso avremmo bisogno di eseguire un run storico, mentre nel mio caso possiamo usare un'ottimizzazione "live").

E così via. Cioè, in questi esempi l'algoritmo è completamente indipendente dal compito.

Ho deliberatamente applicato questi esempi al trading. Siamo commercianti.