Non per gli sviluppatori di MT! Con cosa sostituire INIT_PARAMETERS_INCORRECT? - pagina 7

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

Lei sembra essere quello che ha completamente perso il punto. Quindi il tuo "consiglio" troppo sicuro di sé va all'inferno!

Non andrà giù per lo scarico))

La tua domanda da dilettante ha una risposta, così come il mio consiglio troppo sicuro di sé.

Non sei un moderatore o un amministratore, quindi non sta a te decidere chi viene fregato.

 
TheXpert:

Una persona non deve nemmeno capire le basi degli algoritmi genetici per premere il pulsante di ottimizzazione.

No, questo per quanto riguarda l'asciugatura dei gatti nel microonde.

Non c'è bisogno di incoraggiare questo atteggiamento consumistico del tipo "ho premuto il pulsante, perché non funziona?!?".

ps: il mio post non ha niente a che vedere con l'uso della genetica.

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

Lei si sbaglia fondamentalmente.

Ancora una volta, come utente vedo: Ottimizzazione Lenta/Veloce.

Questo è tutto, non mi interessa. Né come conoscenza approfondita, né alla luce delle cose fondamentali.

È questo il tuo atteggiamento nella vita? Ho paura che un approccio così dilettantesco alle cose ti metterà in un sacco di guai. Soprattutto nelle questioni finanziarie. Se non volete capire, sarete foraggio per quelli che lo fanno.

Se si dice "veloce" e "lento", il primo pensiero che dovrebbe venire a una persona ragionevole è: perché c'è un "lento", se gli stessi risultati possono essere ottenuti rapidamente?

Ma a ciascuno il suo.

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

Proprio così.

Solo che sono incline a pensare che le limitazioni dovrebbero essere affrontate, per quanto possibile, dagli sviluppatori. Lo stesso vale per le debolezze.

Cerco di non usare affatto l'ottimizzazione genetica. Ma quando devo, non voglio entrare in mezzo a questi algoritmi. Beh, non è per un utente.

Per esempio, mi siedo al mio computer, clicco i tasti e non mi interessa affatto cosa succede dal momento in cui premo il tasto fino a quando il personaggio appare sullo schermo. Non mi interessa affatto come il processore, la scheda grafica, le viti, i raffreddatori, come interagiscono. Non è nemmeno per l'utente medio.

Beh, è esattamente per questo - devi capire che la pressione di un pulsante simbolo - è destinata a produrre un singolo simbolo. E ci sono limiti, per esempio, alla velocità di clic. E stai cercando di premere il pulsante 50 volte al secondo, e ti risenti che non ha visualizzato 50 caratteri.

Domanda - la capacità di percepire 50 caratteri al secondo - dovrebbe essere rimossa questa restrizione? La maggior parte degli utenti non troverebbe peggio, al contrario, quando le chiacchiere di contatto sono percepite come caratteri?

 
TheXpert:

Non è nemmeno necessario capire le basi degli algoritmi genetici per premere il pulsante di ottimizzazione.

Perché dovrebbe?

Se non dovesse capire - non dovrebbe chiedere "perché ho questa spazzatura". Se ha funzionato, allora "ha funzionato e basta". È stato progettato così.

Qualsiasi strumento richiede un certo livello di comprensione. Questo non preclude l'uso di scatole nere, ma anche quando si usano le scatole nere, bisogna capire chiaramente i modelli di base con cui funziona la scatola nera.

 

Signori compagni!

Stiamo scivolando in una discussione su chi capisce cosa e se deve o non deve capirlo. E la questione sostanziale è stata relegata in secondo piano.

Non conosco i meccanismi della genetica, quindi fate uno sforzo per capire cosa voglio dire.

Ci sono 117649 varianti (passaggi). Di questi, solo 1953 sono ammissibili. In pratica, quelli veramente inaccettabili sono 1 (000000)!!! E 115695 sono ripetizioni. Diverse varianti di quelle "ammissibili" del 1953. Per risparmiare tempo e risorse, li escludo con INIT_PARAMETERS_INCORRECT.

Il prossimo. La genetica raccoglie la prima popolazione di 512 individui. Giusto?

E questa popolazione comprende immediatamente 502 individui "inaccettabili". 10 individui che lavorano non sono sufficienti. Sono d'accordo.

Ma 512 è solo 1/4 del 1953 (circa).

Senza andare a scavare ulteriormente nella genetica, non mi è chiaro perché la prima popolazione non può essere assemblata solo dai parametri "ammissibili"?

E, infatti, cosa impedisce che le popolazioni successive siano raccolte solo da parametri validi?
 
Andrey Khatimlianskii:

No, questo per quanto riguarda l'asciugatura dei gatti nel microonde.

Non c'è bisogno di incoraggiare questo atteggiamento consumistico del tipo "ho premuto il pulsante, perché non funziona?

Sto solo parlando di questo pulsante. Ho spiegato la mia posizione sopra. Ti dirò di più, conosco gli algoritmi genetici, non mi aiuta a ottimizzare in alcun modo
 

Tra le altre cose, personalmente uso solo INIT_PARAMETERS_INCORRECT in modalità di ottimizzazione per setacciare i parametri che non sono, letteralmente, non validi, ma semplicemente passaggi inutili.

Come esempio:

input   bool   использовать_параметр   = true;
input   int    парам_1                 = 5;
input   int    парам_2                 = 12;
input   int    парам_3                 = 100;
input   int    парам_4                 = 1;

........

Quindi, se durante il test e durante il lavoro dell'Expert Advisor quandousing_parameter = false i suoi parametri non hanno assolutamente importanza, allora durante l'ottimizzazione la ricerca di questi parametri è semplicemente inutile, quindiINIT_PARAMETERS_INCORRECT viene emessotranne che per un singolo passaggio con i valori iniziali. Questo fa risparmiare molto tempo. Dopo tutto, ci sono un sacco di pass inutili per un solo pass valido. E la genetica tratta il vaglio dei passaggi inutili come un errore grossolano.

Gli sviluppatori, invece di risolvere in qualche modo questo problema, vi mandano a studiare proprio questa genetica con i divieti applicati. In modo che avessero il tempo di studiarlo, suppongo.

Ripeto ancora una volta: l'utente non ha bisogno di sapere come funziona la genetica! Sta agli sviluppatori trovare una soluzione a questo problema.

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

Tra le altre cose, personalmente uso solo INIT_PARAMETERS_INCORRECT in modalità di ottimizzazione per setacciare i parametri che non sono, letteralmente, non validi, ma semplicemente passaggi inutili.

Come esempio:

Quindi, se durante il test e durante il lavoro dell'Expert Advisor quandousing_parameter = false i suoi parametri non hanno assolutamente importanza, allora durante l'ottimizzazione la ricerca di questi parametri è semplicemente inutile, quindiINIT_PARAMETERS_INCORRECT viene emessotranne che per un singolo passaggio con i valori iniziali. Questo fa risparmiare molto tempo. Dopo tutto, ci sono un sacco di pass inutili per un solo pass valido. E la genetica tratta il vaglio dei passaggi inutili come un errore grossolano.

Gli sviluppatori, invece di risolvere in qualche modo questo problema, vi mandano a studiare proprio questa genetica con i divieti applicati. In modo che avessero il tempo di studiarlo, suppongo.

Ripeto ancora una volta: l'utente non ha bisogno di sapere come funziona la genetica! Ma trovare una soluzione a questo problema è un compito per gli sviluppatori.

Avete 4 parametri, quindi dovete organizzare il funzionamento di questi 4 parametri solo con i valori corretti, poi la genetica può essere utile.

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


Ci sono 117649 opzioni (passaggi). Di questi, solo 1953 sono validi. In linea di massima, quelli veramente inaccettabili sono 1 (000000) !!! E 115695 sono ripetizioni. Diverse variazioni di quelle "ammissibili" del 1953. Per risparmiare tempo e risorse li escludo con INIT_PARAMETERS_INCORRECT.

Personalmente, uso soprattutto INIT_PARAMETERS_INCORRECT solo inmodalità di ottimizzazione proprio per setacciare i parametri che non sono inammissibili, letteralmente, ma semplicemente passaggiinutili.

Questo è esattamente il tuo errore: non ci sono passaggi "inutili" nella genetica. Si stende tutto sugli scaffali, setacciando il superfluo, a scapito del tempo e delle risorse che si risparmiano. E tu non fai altro che distrarlo.

In effetti, ti contraddici. Prima dici che vuoi che tutto funzioni da solo premendo un pulsante magico, senza alcuno sforzo aggiuntivo da parte tua, ma allo stesso tempo crei degli sciamani nel codice, presumibilmente aiutando l'algoritmo di ottimizzazione.

In breve, tutto è chiaro ora:

Sergei Tabolin:

Che ne dite di questo:

121

allora il risultato sarà come 21. E una catena di 21 ripeterebbe questo risultato. Duplicazione, tempo supplementare per, in linea di principio, corse inutili...

Non dovete eliminare nulla da INIT_PARAMETERS_INCORRECT. Calcolate 121 secondo la logica del vostro programma, e la genetica farà il suo lavoro, e il risultato sarà ottenuto in meno di 1953 passaggi (spero).

Se si ottimizza utilizzando la ricerca completa lenta, allora naturalmente i passaggi extra non sono necessari. È possibile introdurre un parametro aggiuntivo nel vostro Expert Advisor che imposta il tipo di ottimizzazione. Se è una ricerca completa, i passaggi extra vengono respinti, mentre se è genetica, non lo sono. È un peccato che MQL non fornisce la possibilità di conoscere il tipo di ottimizzazione. Gli sviluppatori dovrebbero chiedere di aggiungere una tale funzione.