Trovare un set di indicatori per alimentare gli ingressi della rete neurale. Discussione. Uno strumento di valutazione dei risultati. - pagina 10

 
marketeer писал(а) >>
... L'adattamento implica l'adattamento alla suite di test, e qui il sistema finito è solo testato contro di essa...
Adattamento a un set di prova, o confronto con un set di prova - non vedo la differenza. IMHO
 
rip >> :

Funziona alla grande sugli attrattori :) Non l'ho provato sulle foto. Credo che la questione sia la struttura della fila. Non l'ho pre-elaborato.

Se lo trovo, te lo mando. È delphi, però...

 
TheXpert >> :

Mi sono dilettato, ma in un'area di applicazione completamente diversa. A proposito, non sono riuscito a far funzionare la PCA non lineare. E quella lineare è troppo debole, credo.


Nello spazio esteso del teorema di Mercer, prova ad applicare i tuoi dati e a risolvere lo stesso problema, che è lo stesso del tema dell'associazione nelle reti neurali discusso qui.

 
joo >> :
Adattarsi a un set di prova, o confrontare con un set di prova - non vedo la differenza. IMHO

C'è una differenza, e una grande differenza (algoritmicamente e nei risultati). Ma manteniamo le nostre opinioni. Se qualcuno è interessato, per favore mi contatti di persona.

 
TheXpert >> :

Se riesco a trovarlo, te lo mando. È Delphi, però...

Lo apprezzerei molto. Credo che la domanda riguardasse la pre-elaborazione. Non l'ho fatto, perché stavo solo controllando il funzionamento della rete.

 
mettere su Deductor Academic (http://www.basegroup.ru/download/deductor/ ), naturalmente per scopi accademici. Fa analisi di correlazione e di fattori, disegna mappe di Kohonen. Può fare molte altre cose... capire come e cosa.
 
iliarr >> :

Saluti a tutti i partecipanti e visitatori del forum.


Voglio offrire a tutti gli interessati di discutere e cercare un set di indicatori più adatti ad alimentare gli input delle reti neurali.

Posso usare la redditività di neuronet nel mio programma come strumento di stima, posso anche stendere MQL4 Expert Advisor con neuronet addestrato. Entro limiti ragionevoli, ovviamente.


Ho auto-scritto (in java) perseptron con un numero arbitrario di strati e neuroni in ogni strato che addestro con un algoritmo genetico dalla libreria JGAP (http://jgap.sourceforge.net/).

Il numero di neuroni nel primo strato è uguale al numero di ingressi e nel secondo strato - arbitrariamente, nel terzo strato 1 neurone. La neuronet produce segnali di trading (uscita della neuronet >0,5 - comprare, uscita della neuronet<-0,5 - vendere). I segnali sono elaborati da un tester di trading auto-scritto che in base al segnale della neuronet inverte la posizione (o entra nel mercato, se nessuna posizione è aperta). La funzione obiettivo dell'algoritmo genetico è il profitto risultante. Un tale approccio, a mio parere, ci permette di minimizzare tutti i possibili errori e di portare la formazione il più vicino possibile al trading reale. Esporto la rete addestrata in MQL4 Expert Advisor e la provo nel tester di strategia di MT4. Formo gli input per la rete neurale nell'indicatore MT4 e li scarico in un file. L'indicatore e l'Expert Advisor sono formati dal programma e sono scritti nei file (meno confusione e meno errori).

Per me, le reti a 4 strati non danno più profitto (di solito meno) di quelle a 3 strati, ma richiedono più tempo per allenarsi.
Ho allenato una rete 8-10-1 per 4 giorni su un Core2 Quadro 2.3. 10 fili paralleli con diverse popolazioni iniziali che competono per vedere "chi ha più profitto". 4 giorni passati circa 4000 generazioni con 200 cromosomi in una popolazione. Il massimo profitto è stato ottenuto nelle prime 2000 generazioni, oltre questo, il profitto non è aumentato. Il più grande aumento di profitto è stato nelle prime 100 generazioni.

Ho controllato i risultati di questa rete nel tester di strategia MT4. Ho scoperto che la rete non raggiunge quasi mai la soglia +-0,5 e il segnale di trading non viene attivato. La ragione non è chiara, cioè ho controllato la correttezza dell'esportazione in MQL4 (con gli stessi valori di input in Java e MQL4 la rete dà gli stessi valori, forse l'intero flusso in entrata avrebbe dovuto essere presentato, non alcuni valori casuali). Ho abbassato la soglia a 0,4 e sembra funzionare... Poi ho scoperto che l'Expert Advisor non può aprire una posizione in una volta sola... Il mio Expert Advisor chiuderà la barra e il prezzo avrà il tempo di muoversi prima della barra successiva. Nel periodo di apprendimento (sto imparando dal 1-08-09 al 1-10-09) il profitto in MT4 era inferiore a quello del mio tester, nel periodo di test in MT4 (dal 1-10-09 al 1-11-09), la rete era redditizia. Ho guardato quali punti di entrate non redditizie si verificano e ho avuto l'impressione che i dati che entrano nella rete neurale portano informazioni insufficienti...

I rete neurale di ingresso: (k=100)

Capisco come funzionano gli indicatori, ma non ne capisco abbastanza di loro e del mercato per scegliere da solo un numero minimo di indicatori...

Ho cercato nel forum e ho trovato (l'autore del post da cui ho preso l'idea, purtroppo, non lo ricordo):

studiato in 10 threads, 200 generazioni, dimensione della popolazione 200 per il periodo 1-08-09 a 1-10-09 (il mio tester java dà i risultati)
rete 9-10-1 : profitto 10521
9-20-1 netto: profitto 10.434
9-30-1 rete : profitto 10361
rete 9-50-1 : profitto 10059
il risultato è buono, ma sembrava essere migliore con la versione precedente... dovrò metterlo con gli input precedenti (non ho salvato i risultati dell'ultimo allenamento)

Sono necessari moltiplicatori aggiuntivi per regolare i valori nell'intervallo da -1 a +1


Dopo aver letto quello che ho scritto, ho iniziato a pensare a un possibile errore nell'esportazione della rete neurale addestrata nell'Expert Advisor - dovrebbe essere testata di nuovo.

P.S. Ora sto scrivendo una rete neurale ricorrente di struttura arbitraria (da quanto ho capito, la rete neurale ricorrente tiene conto non solo del valore, ma anche dell'angolo di inclinazione).


Tra questi brillanti teorici delle reti neurali, io sembrerei probabilmente la pecora nera. Ma qualcuno deve fare gli hamburger e qualcuno deve mangiarli. Quindi rischierò di offrire qualche consiglio interessante. Potresti usare due indicatori Force Index.mq4( periodo 3.53), DeMarker.mq4( periodo 3.53) per allenare la rete neurale e collegare i cambiamenti di questi indicatori con il normale flusso temporale - il tempo sarà il terzo indicatore. Gli indicatori sono semplici e prevedono i cambiamenti nel mercato con il 100% di affidabilità. In Force Index inserire il livello 0,0, e in DeMarker inserire i livelli 0,1 e 0,9. È chiaro che nel codice di questi indicatori dobbiamo cambiare la dimensione dei periodi da int a double.

 
Avelox >> :

Tra questi brillanti teorici delle reti neurali, io sembrerei probabilmente la pecora nera. Ma qualcuno deve fare gli hamburger e qualcuno deve mangiarli. Quindi rischierò di offrire qualche consiglio interessante. Potresti usare due indicatori Force Index.mq4( periodo 3.53), DeMarker.mq4( periodo 3.53) per allenare la rete neurale e collegare i cambiamenti di questi indicatori con il normale flusso temporale - il tempo sarà il terzo indicatore. Gli indicatori sono semplici e prevedono i cambiamenti nel mercato con il 100% di affidabilità. In Force Index inserire il livello 0.0, e in DeMarker inserire i livelli 0.1 e 0.9. È chiaro che nel codice di questi indicatori dobbiamo cambiare la dimensione dei periodi da int a double.

è passato così tanto tempo... Ho scritto il mio algoritmo genetico, ho fatto una rete ricorrente di propagazione in avanti con feedback da ogni strato successivo a quelli precedenti... ma non ho fatto l'esportazione della nuova neuristica in mql4... non l'ho ancora fatto... Se lo farò, terrò a mente i vostri indicatori. :)