Discussione sull’articolo "Algoritmi Genetici - È Facile!" - pagina 19

 
Andrey Dik:
Avete intenzione di ottimizzare qualcosa, non è vero? Quindi è necessario presentare questo "qualcosa" sotto forma di FF, ad esempio il numero di punti di profitto sui segnali dell'indicatore. Questo è il FF.
Ho qualcosa da chiedere, circa FF, per esempio, se è come il consiglio dato, dove l'ottimizzazione importa, se questo UGA può salvare la possibilità di profitto che è stato detto o qualcos'altro, e se quando si imposta il parametro ottimale indicatore se dovrebbe essere faccio test virtuali come l'esempio EA vedo, e mi dispiace se questo offende, Algoritmi genetici sono casuali, come possiamo essere sicuri che è ottimale, e se possibile si entra in una buona condizione per rendere algoritmi genetici ottimizzare indicatori parametro, per esempio, possiamo prendere dallo storico le condizioni di acquisto e di profitto con quanti punti e gli algoritmi genetici utilizzano dati simili in futuro ed eseguono l'ottimizzazione, è questo un buon modo di usarlo, non riesco a pensare a nient'altro, se è sbagliato per favore dimmi un buon esempio di utilizzo, se senza perché e quando viene eseguito poi i risultati ottimali vengono fuori, come l'immissione di numeri casuali, u Fortunatamente ora, inserire il numero casuale di nuovo e poi perdere, e così via, non è più di una congettura.
 
SALEH:
Ho qualcosa da chiedere, circa FF, per esempio, se è come il consiglio dato, dove l'ottimizzazione importa, se questo UGA può salvare la possibilità di profitto che è stato detto o qualcos'altro, e se quando si imposta il parametro ottimale indicatore se dovrebbe essere faccio test virtuali come l'esempio EA vedo, e mi dispiace se questo offende, Algoritmi genetici sono casuali, come possiamo essere sicuri che è ottimale, e se possibile si entra in una buona condizione per rendere algoritmi genetici ottimizzare indicatori parametro, per esempio, possiamo prendere dallo storico le condizioni di acquisto e di profitto con quanti punti e gli algoritmi genetici utilizzano dati simili in futuro ed eseguono l'ottimizzazione, è questo un buon modo di usarlo, non riesco a pensare a nient'altro, se è sbagliato per favore dimmi un buon esempio di utilizzo, se senza perché e quando viene eseguito poi i risultati ottimali vengono fuori, come l'immissione di numeri casuali, u Fortunatamente ora, inserire il numero casuale di nuovo e poi perdere, e così via, non è più di una congettura.

Gli algoritmi genetici utilizzano i numeri casuali non da soli, ma utilizzando una distribuzione di probabilità. Poiché nessuno conosce il futuro, si usa sempre la distribuzione di probabilità per prendere QUALSIASI decisione. Si può usare l'intera iterazione dei parametri, ma non li si userà tutti. Dovrete decidere quale opzione utilizzare, non è vero? - il risultato dell'applicazione di questa selezione manuale nel futuro è incerto in anticipo, cioè non è deterministico.

 
Andrey Dik:

Gli algoritmi genetici non utilizzano numeri casuali di per sé, ma una distribuzione di probabilità. Poiché nessuno conosce il futuro, si usa sempre la distribuzione di probabilità per prendere QUALSIASI decisione. Si può usare l'iterazione completa dei parametri, ma non li si userà tutti. Dovrete decidere quale opzione utilizzare, non è vero? - il risultato dell'applicazione di questa selezione manuale nel futuro è incerto in anticipo, cioè non è deterministico.

Se è così, dammi un consiglio su quale è bene ottimizzare, se è una questione di indicatori di parametri non sono d'accordo perché i parametri cambiano spesso. è meglio applicare in takeprofit e stoploss o c'è un altro modo migliore. Grazie per la risposta e se avete qualche suggerimento, grazie. Mi piacerebbe condividere i risultati dell'esperimento e magari un piccolo aiuto per provare ulteriormente questo UGA.
 
SALEH:
Se sì, datemi un consiglio su quale è bene ottimizzare, se è una questione di indicatori di parametri sono leggermente in disaccordo perché i parametri cambiano spesso. è meglio applicare in takeprofit e stoploss o c'è un altro modo migliore. Grazie per la risposta e se avete qualche suggerimento, grazie. Mi piacerebbe condividere i risultati dell'esperimento e magari un piccolo aiuto per provare ulteriormente questo UGA.

è difficile dare consigli senza sapere nulla del sistema di trading

 
Complimenti per il contenuto! Tuttavia, non sono riuscito a compilare i codici o l'esempio citato. L'errore sembra essere sulla riga "ServiceFunction ();"
 
Rafael Ladeia:
Complimenti per il contenuto! Tuttavia, non sono riuscito a compilare i codici o l'esempio citato. L'errore sembra essere sulla linea "ServiceFunction ();".

Molte grazie per il feedback in 11 anni!))) purtroppo gli errori possono verificarsi. Sembra che sia arrivato il momento di aggiornare i codici quando ho tempo solo per quello...

 

Attualmente ho un problema di ottimizzazione e sto sperimentando questa libreria per vedere se può aiutarmi. Purtroppo non mi è chiaro come impostare correttamente la libreria.

Per il mio esempio, voglio calcolare la migliore (massima) composizione di lotti per avere il minor rischio per me stesso.

Per fare questo, ho semplicemente preso 6 caratteri per il test e per questi caratteri dovrei trovare le migliori dimensioni dei lotti. Nella funzione di fitness, calcolo quindi il ROI atteso per queste attività e il rischio atteso con le dimensioni dei lotti suggerite da UGA...

Se il rischio è inferiore alla mia soglia, memorizzo il ROI atteso da massimizzare in Colony[0][chromos]......

Ecco il mio codice:

void CPortfolioRiskMan::GetOptimalWeights()
  {

   double ReplicationPortion_P  = 100.0;
   double NMutationPortion_P    = 10.0;
   double ArtificialMutation_P  = 10.0;
   double GenoMergingPortion_P  = 20.0;
   double CrossingOverPortion_P = 20.0;
   double ReplicationOffset_P   = 0.5;
   double NMutationProbability_P= 5.0;
//-----------------------Variables-------------------------------------
//Preparazione delle variabili globali per l'UGA
   ChromosomeCount=6; /Numero di cromosomi nella colonia
   GeneCount      =6;       /Numero di geni
   RangeMinimum   =0.01;    //Minimo dell'intervallo di ricerca
   RangeMaximum   =1;    //Massimo dell'intervallo di ricerca
   Precision      =0.01;       //Fase di ricerca
   OptimizeMethod =2;  //1-minimo, qualsiasi altro-massimo

   ArrayResize(Chromosome,GeneCount+1);
   ArrayInitialize(Chromosome,0);
   Epoch=50;                     /Numero di epoche senza miglioramento




//Inizio della funzione principale dell'UGA
   UGA
   (
      ReplicationPortion_P, //Parte della replica.
      NMutationPortion_P,   //Porzione di mutazione naturale.
      ArtificialMutation_P, //Parte della mutazione artificiale.
      GenoMergingPortion_P, //Porzione di adozione dei geni.
      CrossingOverPortion_P,//Porzione di attraversamento.
      ReplicationOffset_P,  /Ritardo di spostamento dei confini dell'intervallo
      NMutationProbability_P//Probabilità di mutazione di ciascun gene in %
   );



  }



void FitnessFunction(int chromos)
  {
//-----------------------Variables-------------------------------------

   double weight=0.0;
   double ClosePrices[]= {1.21,0.98,1.31,1.22,0.99,0.86};
   string symbols[]= {"EURUSD","GBPUSD","AUDNZD","EURAUD","NZDJPY","GBPJPY"};
   double tickvalues[]= {0.94,0.78,0.56,0.76,0.45,0.94};
   double tickstep=0.00001;
   double Lotsizes[6];
   double av_return=0;

//----------------------------------------------------------------------


   for(int u=1; u<=GeneCount; u++)
     {
      Lotsizes[u-1]=Colony[u][chromos];
      av_return+=Lotsizes[u-1]*tickvalues[u-1]*tickstep*ClosePrices[u-1];
     }

   double risk=CalculateVaR(symbols, Lotsizes);

   if(risk>50)
      Colony[0][chromos]=-10000000.0;
   else
      Colony[0][chromos]=NormalizeDouble(av_return,2);


   AmountStartsFF++;
  }
 
Filip #:

Attualmente ho un problema di ottimizzazione e sto sperimentando questa libreria per vedere se può aiutarmi. Purtroppo non mi è chiaro come configurare correttamente la libreria.

Per il mio esempio, voglio calcolare la migliore (massima) composizione di lotti per avere il minor rischio per me stesso.

Per farlo, ho semplicemente preso 6 caratteri per il test e per questi caratteri dovrei trovare le migliori dimensioni dei lotti. Nella funzione di fitness, calcolo quindi il ROI atteso per queste attività e il rischio atteso con le dimensioni dei lotti suggerite da UGA...

Se il rischio è inferiore alla mia soglia, mantengo il ROI atteso per massimizzare in Colony[0][chromos].....

Ecco il mio codice:

Non ho capito il senso della domanda, per favore spiega meglio.

In generale, si tratta di una versione molto vecchia dell'algoritmo, che non aderisce allo schema dell'algoritmo più facile da applicare negli attuali articoli "Algoritmi di ottimizzazione delle popolazioni".

Posso consigliare di utilizzare l'algoritmo SDS o un altro della tabella, oppure di attendere una versione aggiornata di UGA (non so se sia opportuno pubblicare una nuova veste in un articolo su questo vecchio ma potentissimo algoritmo).

In generale riscriverei questo articolo in modo nuovo, con l'inclusione di UGA nella tabella di classificazione, non so se sia possibile e necessario farlo.

ZY. Penso che non sia possibile riscrivere l'articolo esistente, è già stato tradotto in molte lingue.

 
non si compila. molti errori.
 
gardee005 #:
non si compila. molti errori.
Per favore mostrami la lista degli errori. Il codice è molto vecchio, ma non c'è nulla che possa rompere anche dopo 14 anni.