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
Hash può essere applicato alla ricerca di duplicati all'interno della colonia, e la funzione di trovare un hash può essere resa semplice e veloce, perché anche 1-2 duplicati non faranno il tempo e non rovineranno il risultato.
Il tempo di esecuzione dell'algoritmo GA è incommensurabilmente piccolo rispetto all'esecuzione di FF. Pertanto, non ha senso cercare di accelerare ulteriormente l'algoritmo, così come non ha senso spostare GA su un dll, ad esempio.
Dobbiamo cercare di ridurre il numero di esecuzioni di FF con la precisione richiesta del risultato. L'algoritmo dispone di impostazioni flessibili a questo scopo. Inoltre, il tempo di ricerca può essere ulteriormente ridotto migliorando le qualità di ricerca dei GA in generale e degli operatori in particolare. Raccomando di indirizzare il potenziale di ricerca in queste direzioni.
Il tempo di esecuzione dell'algoritmo GA è incommensurabilmente piccolo rispetto all'esecuzione di FF. Pertanto, non ha senso cercare di accelerare ulteriormente l'algoritmo, così come non ha senso spostare GA su un dll, ad esempio.
Dobbiamo cercare di ridurre il numero di esecuzioni di FF con la precisione richiesta del risultato. L'algoritmo dispone di impostazioni flessibili a questo scopo. Inoltre, il tempo di ricerca può essere ulteriormente ridotto migliorando le qualità di ricerca dei GA in generale e degli operatori in particolare. Raccomando di indirizzare il potenziale di ricerca in queste direzioni.
Sembra che il dll ora non sarà più veloce di mql 5.
Ok, appena scriverò una libreria la testerò, poi scriverò cosa è venuto fuori)).
Nota importante per l'articolo.
Non utilizzare i parametri dell'algoritmo
FFNormaliseDigits e GeneNormaliseDigits
Non è necessario normalizzare il valore della funzione di fitness e i geni. La normalizzazione comporta una diminuzione della ricercabilità dell'algoritmo e un aumento del numero di esecuzioni di FF. Inoltre, più decimali vengono scartati, maggiore è l'impatto negativo sull'algoritmo.
In altre parole, l'introduzione dell'operazione di normalizzazione nell'algoritmo è stata un errore.
Da non confondere con l'operazione di campionamento controllata dal parametro Precision!
Non utilizzare i parametri dell'algoritmo
FFNormalizeDigits e GeneNormalizeDigits
Non è necessario normalizzare il valore della funzione fitness e dei geni. La normalizzazione porta a una diminuzione della capacità di ricerca dell'algoritmo e a un aumento della quantità di FF iniziali. Inoltre, più segni dopo la virgola vengono rifiutati, più forte è l'influenza negativa sull'algoritmo.
In altre parole, l'introduzione dell'operazione di normalizzazione nell'algoritmo è stata un errore.
Da non confondere con l'operazione di digitalizzazione operata nel parametro Precision!
Nota importante per l'articolo.
Non utilizzare i parametri dell'algoritmo
FFNormaliseDigits e GeneNormaliseDigits
Non è necessario normalizzare il valore della funzione di fitness e i geni. La normalizzazione comporta una diminuzione della ricercabilità dell'algoritmo e un aumento del numero di esecuzioni di FF. Inoltre, più decimali vengono scartati, maggiore è l'impatto negativo sull'algoritmo.
In altre parole, l'introduzione dell'operazione di normalizzazione nell'algoritmo è stata un errore.
Da non confondere con l'operazione di campionamento controllata dal parametro Precision!
È meglio rimuovere la normalizzazione nella libreria UGAlib stessa o solo in FF.
FFNormalizeDigits viene utilizzato in FF per normalizzare il valore di fitness e GeneNormalizeDigits viene utilizzato nell'algoritmo stesso per normalizzare i geni. Non è necessario normalizzare entrambi.
Capisco. Naturalmente lo correggerò io stesso, ma se non è difficile, vi prego di postare la versione corretta di UGAlib.
Ho paura di commettere errori.
Grazie all'autore per la libreria!
Aggiungete la riga "cnt++;" nel ciclo della funzione di ricerca genitore, altrimenti potrebbe entrare in un loop eterno!
//Отбор двух родителей.
void SelectTwoParents
(
int &address_mama,
int &address_papa
)
{
//-----------------------Переменные-------------------------------------
int cnt=1;
address_mama=0;//адрес материнской особи в популяции
address_papa=0;//адрес отцовской особи в популяции
//----------------------------------------------------------------------
//----------------------------Отбор родителей--------------------------
//Десять попыток выбрать разных родителей.
while (cnt<=10)
{
//Для материнской особи
address_mama=NaturalSelection();
//Для отцовской особи
address_papa=NaturalSelection();
if (address_mama!=address_papa)
break;
cnt++;
}
//---------------------------------------------------------------------
}