L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 376

 
elibrario:

Trovato in ALGLIB formazione di arresto precoce con sezione di convalida:

Addestramento della rete neurale con arresto anticipato (algoritmo di base - L-BFGS con regolarizzazione).
...
L'algoritmo si ferma se l'errore del set di convalida aumenta per un lungo
abbastanza o la dimensione del passo è abbastanza piccola (ci sono compiti in cui
set di convalida può diminuire per l'eternità). In ogni caso la soluzione
restituito corrisponde al minimo dell'errore del set di convalida.


Qualcosa mi sembra sbagliato, perché nel trading reale le barre andranno nel loro ordine, e non mescolate con quelle di un'ora e un giorno fa.
E se la "natura" del mercato cambia, significa che bisogna reimparare o cercare nuovi modelli NS.


Hai più di 500 link nella tua griglia? Dicono che L-BFGS è meno efficiente di L-M se ci sono pochi neuroni
 
Maxim Dmitrievsky:

Avete più di 500 connessioni nella vostra rete? Scrivono che L-BFGS è meno efficiente di L-M se ci sono pochi neuroni
Meno per ora, per risparmiare tempo - fase di sviluppo, quando avrò finito mi sforzerò nella ricerca di predittori e schema di rete
 
elibrarius:
Meno finora, per risparmiare tempo - fase di sviluppo, quando avrò finito lavorerò duramente per trovare predittori e diagrammi di rete


Forse puoi scrivere un articolo quando avrai capito tutto? :) Nessun buon articolo sulla rete neurale allibiana, ce n'è uno tradotto difficile da digerire.

Articolo tipo di descrizione di NS (perché non ho potuto nemmeno trovare un aiuto adeguato per alglib) ed esempio di apprendimento/retraining, auto-ottimizzazione in bot. Beh, sono solo io, ho appena notato che non ci sono abbastanza informazioni da studiare. È come se anche pagare per questo) spendi il tuo tempo non invano

 
Maxim Dmitrievsky:


Perché non scrivi un articolo quando hai capito tutto? :) Non ci sono buoni articoli su Alglib neuronics, c'è uno tradotto difficile da capire

Articolo tipo di descrizione di NS (perché non ho potuto nemmeno trovare un aiuto adeguato per Alglib) ed esempio di apprendimento/retraining, auto-ottimizzazione nel bot. Beh, sono solo io, ho appena notato che non ci sono abbastanza informazioni da studiare. Per questo tipo di paga di più) spendi il tuo tempo non invano.

Non credo - non troverò il tempo per un articolo... Non avrò abbastanza tempo per trovare un articolo, e io stesso sto appena iniziando a capire NS, quindi non posso dire nulla di nuovo/intelligente.

Ho preso https://www.mql5.com/ru/articles/2279 come base. L'ho messo in condizione di funzionare in 8 ore. Penso che la maggior parte dei programmatori non impiegherà più tempo.

Ma è stata una settimana di rilavorazioni, aggiunta di opzioni, test, ecc.
Нейросеть: Самооптимизирующийся советник
Нейросеть: Самооптимизирующийся советник
  • 2016.10.03
  • Jose Miguel Soriano
  • www.mql5.com
Возможно ли создать советник, который согласно командам кода автоматически оптимизировал бы критерии открытия и закрытия позиций с определенной периодичностью? Что произойдет, если реализовать в советнике нейросеть (многослойный персептрон), которая, будучи модулем, анализировала бы историю и оценивала стратегию? Можно дать коду команду на ежемесячную (еженедельную, ежедневную или ежечасную) оптимизацию нейросети с последующим продолжением работы. Таким образом возможно создать самооптимизирующийся советник.
 
elibrario:
Non credo - non avrò tempo per un articolo il 100% delle volte... Inoltre, io stesso sto appena iniziando a capire NS, quindi non posso dire nulla di intelligente/nuovo.

Ho preso https://www.mql5.com/ru/articles/2279 come base. L'ho messo in condizione di funzionare in 8 ore. Penso che la maggior parte dei programmatori non impiegherà più tempo.

Ma è stata una settimana di rilavorazioni, aggiungendo opzioni extra, test ecc.


Sto ancora guardando verso il classificatore bayesiano + la genetica, non male come risultato. Con le griglie è un po' confuso nella mia testa, un sacco di sfumature

Sì, intendo lo stesso articolo, non mi è sembrato molto accettabile, anche se sono più un commerciante che un programmatore )

 
La situazione con la miscelazione dei risultati rimane poco chiara:

Addestramento precoce su dati non mischiati:

Errore medio in formazione (80%) plot =0.535 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Errore medio sulla sezione di convalida (20%) =0,298 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Trama completa (formazione + convalida):
Errore medio di apprendimento=0,497 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Errore medio sul test (20%) sezione =0,132 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6

Sembra che ci sia stato un adattamento alla trama di convalida. Quello di prova è buono, ma non era in formazione e non è stato confrontato, probabilmente solo una coincidenza.
Lo stesso fay conta gli ensemble, e c'è una divisione di 2/3 e tutto è mescolato tra le due trame, cercherò di fare lo stesso...
L'ha mischiato:

Errore medio in formazione (60%) area =0.477 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Errore medio nella sezione di validazione (40%) =0,472 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Trama completa (formazione + convalida):
Errore medio di apprendimento=0.475 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Errore medio sul test (20%) sezione =0.279 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6

Mescolando, l'errore è equalizzato sulle sezioni di addestramento e di convalida.
E nel test uno è peggiorato.

Sembra sbagliato mescolare i dati e poi dividerli in sezioni di allenamento e di convalida, perché nel trading reale le barre seguiranno il loro ordine, e non si mescoleranno con quelle di un'ora, un giorno o una settimana fa. Allo stesso modo, per gli algoritmi di convalida incrociata dove la sezione di convalida è all'inizio, poi nel mezzo, poi alla fine.
E se la "natura" del mercato cambia, significa che dobbiamo reimparare o cercare nuovi modelli NS.

E se non si mescola e non si convalida all'ultima sezione, come si fa a evitare l'adattamento a quella sezione?
 
Elibrarius:
4 trame funzionano? Formazione/validazione/test1/test2 ?

Quanti cicli di formazione/convalida devi fare? Non ho visto nessuna informazione al riguardo da nessuna parte.... 1 ciclo in totale? - e subito dopo approviamo o cambiamo qualcosa nel set di predittori o nello schema della rete? Più precisamente in N cicli di allenamento ci verrà mostrato un solo migliore.


La sezione test2 è un verdetto: nessuna corrispondenza, allora ricominciamo tutto da capo, preferibilmente con un insieme di predittori


PS.

A proposito, c'è anche un tester, il verdetto finale del TS.

 
elibrario:
La situazione con la miscelazione dei risultati rimane poco chiara:

Apprendimento precoce di stop su dati non intermittenti:

Errore medio sul campione di allenamento (80%) =0,535 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Errore medio sulla sezione di convalida (20%) =0,298 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Trama completa (formazione + convalida):
Errore medio di apprendimento=0,497 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Errore medio sul test (20%) sezione =0,132 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6

Sembra che ci sia stato un adattamento alla trama di convalida. Quello di prova è buono, ma non era in allenamento e non è stato confrontato, probabilmente solo una coincidenza.
Lo stesso fay conta gli ensemble, e c'è una divisione di 2/3 e tutto è mescolato tra le due trame, cercherò di fare lo stesso...
L'ha mischiato:

Errore medio in formazione (60%) area =0.477 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Errore medio sulla convalida (40%) sezione =0,472 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Trama completa (formazione + convalida):
Errore medio di apprendimento=0.475 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Errore medio sul test (20%) sezione =0.279 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6

A causa della miscelazione, l'errore è equalizzato sulle sezioni di addestramento e di convalida.
E nel test uno è peggiorato.

Sembra sbagliato mescolare i dati e poi dividerli in sezioni di allenamento e di convalida, perché nel trading reale le barre seguiranno il loro ordine, e non si mescoleranno con quelle di un'ora, un giorno o una settimana fa. Allo stesso modo, per gli algoritmi di convalida incrociata dove la sezione di convalida è all'inizio, poi a metà, poi alla fine.
E se la "natura" del mercato cambia, significa che dobbiamo reimparare o cercare nuovi modelli NS.

E se non si mescola e non si convalida nell'ultima sezione, come si fa a non adattarsi a questa sezione?


1. La mia comprensione è che non si allena proprio nulla - solo un risultato casuale su predittori che non hanno nulla a che fare con la variabile obiettivo.


2. Agitazione.

Non so NS.

Ma in moltissimi altri algoritmi MO, l'apprendimento avviene esattamente su una linea. Un valore di ogni predittore viene preso e la variabile target viene mappata ad esso. Pertanto, il rimescolamento è irrilevante. Ci sono algoritmi MO che tengono conto dei vicini.

Ma comunque i nostri punti di vista coincidono e inizialmente faccio sempre test su test2 senza mischiare.


PS.

Ancora una volta.

Se l'errore su due campioni diversi è diverso come il tuo - significa che il tuo sistema è senza speranza, solo da buttare.

 

Vagando per il pozzo nero senza fondo chiamato internet, mi sono imbattuto in questo pezzo di carta.

Artificial Neural Networks architectures for stock price prediction:comparisons and applications

In altre parole - architettura NS per la previsione delle azioni - confronto e applicazione

File:
 
elibrarius:
La situazione con i risultati di miscelazione rimane poco chiara:


Mi sembra sbagliato mescolare i dati e poi dividerli in training e validazione, perché in un trade reale le barre andranno nel proprio ordine, non mescolate con quelle di un'ora, un giorno o una settimana fa. Allo stesso modo, per gli algoritmi di convalida incrociata dove la sezione di convalida è all'inizio, poi a metà, poi alla fine.
E se la "natura" del mercato cambia, significa che dobbiamo reimparare o cercare nuovi modelli NS.

E se non si mescola e non si convalida all'ultima sezione, come si fa a evitare l'adattamento a quella sezione?

Dopo la suddivisione in treno/test/valido , mischia il treno. Non mescolare il resto dei set.
Questo è valido per la classificazione con reti neurali. Inoltre, quando si addestrano reti neurali profonde, mescolare ogni minibatch prima di alimentare la rete neurale.

Buona fortuna