Reti neurali, come padroneggiarle, da dove cominciare? - pagina 16

 
Neutron >> :

Si può, naturalmente!

Ma imparerà la vostra regola in 10 lezioni, e poi?

Questo algoritmo è preso come un semplice esempio per la creazione di una rete neurale, perché si deve imparare da un semplice uno....

Se il range di una candela è maggiore del range medio delle ultime cinque candele di un certo coefficiente (se la candela sta salendo - compra, se la candela sta scendendo - vendi).


Sulla base di questo algoritmo , i parametri di input saranno i crackficent del range medio delle ultime cinque barre?


 

Lei dà le definizioni dei termini che usa. Che cos'è la "gamma di candele"? Una rete dovrebbe imparare dagli esempi. Cosa conta come esempi positivi e negativi per la tua rete (dal tuo punto di vista)? Cos'è un "rapporto di superamento"?

 
Neutron >> :

Lei dà le definizioni dei termini che usa. Che cos'è la "gamma di candele"? Una rete dovrebbe imparare dagli esempi. Cosa conta come esempi positivi e negativi per la tua rete (dal tuo punto di vista)? Cos'è il "fattore di superamento"?

range dell'ultima barra formata = High[1]-Low[1];

doppio cdpb // intervallo medio delle ultime cinque barre

for(i=1;i<5;i++){

сдппб=сдппб+(High[1]-Low[1])/5;

}

condizione di acquisto

se(intervallo dell'ultima barra completata> intervallo medio delle ultime cinque barre* coefficiente && Close[1]>Open[1]){

comprare per mercato

}

Potete dirmi quanto è facile definire un esempio positivo negativo per la rete, magari il risultato di uno scambio?

 

диапазон последнего сформировавшегося бара>средний диапазон пяти последних баров*коэффицент

Questa condizione determinerà l'algoritmo di formazione della rete e la sua architettura. Considereremo come risultato positivo per il NS una coincidenza del movimento kotir previsto che inizia con l'apertura di una posizione e finisce con la sua chiusura quando appare il segnale di inversione della posizione. Negativo - rispettivamente - nessuna corrispondenza. Il risultato della rete trina sarà trovare il valore ottimale (dal suo punto di vista) del coefficiente. La rete avrà 7 ingressi. Il primo ingresso sarà un offset costante (aumenta la potenza di calcolo della rete e accelera l'apprendimento), il secondo ingresso avrà la gamma di 1 bar, il terzo ingresso avrà la gamma della seconda barra e così via fino alla quinta barra, e il settimo (l'ultimo ingresso di NS) avrà la gamma di zero bar (corrente), che avrebbe confrontato con esso.

La rete che abbiamo scelto è la più semplice - il perseptron lineare. Durante il processo di apprendimento, assegnerà coefficienti ottimali ad ogni barra (non uno per tutte e cinque le barre, come nel tuo caso, ma uno individuale (w0, w1...w6) per ogni barra) e se è possibile in linea di principio, il computer nazionale prevederà l'acquisto o la vendita quasi senza errori!

 
Neutron >> :

Questa condizione determinerà l'algoritmo di formazione della rete e la sua architettura. Considereremo come risultato positivo per il NS una coincidenza del movimento kotir previsto che inizia con l'apertura di una posizione e finisce con la sua chiusura quando appare il segnale di inversione della posizione. Negativo - rispettivamente - nessuna corrispondenza. Il risultato della rete trina sarà trovare il valore ottimale (dal suo punto di vista) del coefficiente. La rete avrà 7 ingressi. Il primo ingresso sarà un offset costante (aumenta la potenza di calcolo della rete e accelera l'apprendimento), il secondo ingresso avrà la gamma di 1 bar, il terzo ingresso avrà la gamma della seconda barra e così via fino alla quinta barra, e il settimo (l'ultimo ingresso di NS) avrà la gamma di zero bar (corrente), che avrebbe confrontato con esso.

La rete che abbiamo scelto è la più semplice - il perseptron lineare. Nel processo di apprendimento, assegnerà i migliori rapporti ad ogni barra (non uno per tutti e cinque, come nel tuo caso, ma uno individuale (w0, w1...w6) per ogni barra) e se è possibile in linea di principio, il NS prevederà l'acquisto o la vendita quasi senza errori!

Grazie mille Neutron.


Se ho capito bene, le voci sono contrassegnate come Wn, se è così, il mio prossimo compito è quello di descrivere ogni voce con un codice, per esempio:

int w0= постоянное смещение ( вот с этим не совсем понятно);  
double w1=High[1]-Low[1];
double w2=High[1]-Low[2];
double w3=High[1]-Low[3];
double w4=High[1]-Low[4];
double w5=High[1]-Low[5];
double w6=High[1]-Low[0];


È corretto?

 

Proprio così!

Cosa non è chiaro dell'input costante? Dobbiamo normalizzare i dati di input in anticipo, questa procedura non è obbligatoria, ma auspicabile (aiuta la rete ad apprendere più velocemente e aumenta il suo potere predittivo). Come risultato di questa procedura, l'intera varietà di segnali d'ingresso (da -infinito, a +infinito), sarà mappata in un intervallo finito +/-1. Come offset costante, forniremo +1 (per chiarezza) al primo ingresso dell'NS. L'uscita produrrà Out>0 significa Bue e Out<0 significa Vendere.

 
Neutron >> :

Proprio così!

Cosa non è chiaro dell'input costante? Dobbiamo normalizzare i dati di input in anticipo, questa procedura non è obbligatoria, ma auspicabile (aiuta la rete ad apprendere più velocemente e aumenta il suo potere predittivo). Come risultato di questa procedura, l'intera varietà di segnali d'ingresso (da -infinito, a +infinito), sarà mappata in un intervallo finito +/-1. Come offset costante, alimentiamo +1 (per la certezza) al primo ingresso dell'NS.

int    w0=1; // это для того, чтобы все ниже описаные входы были проработаны на истории?
double w1=High[1]-Low[1];
double w2=High[1]-Low[2];
double w3=High[1]-Low[3];
double w4=High[1]-Low[4];
double w5=High[1]-Low[5];
double w6=High[1]-Low[0];
 
Andrey4-min писал(а) >>

È giusto?

Non è ancora giusto.

In questa formulazione, gli ingressi al NS saranno solo segnali positivi in ampiezza e la rete non otterrà tutte le informazioni possibili su cui si baserà l'analisi. Meglio, moltiplicate il valore del vostro input per il colore della candela: +1 se la candela era in aumento, e -1 - se era in diminuzione. E nemmeno +/-1, ma al valore dell'incremento: Close[i]-Open[i].

Sarà così:

w1=(High[1]-Low[1])/Point*( Close[1]-Open[1])/Point;

w1=(High[2]-Low[2])/Point*( Close[2]-Open[2])/Point;

w1=(High[3]-Low[3])/Point*( Close[3]-Open[3])/Point;

Questo è senza normalizzazione per ora.

P.S. Non capisco questo: // Si tratta di far funzionare tutti gli input descritti qui sotto attraverso la storia?

 
Neutron >> :

Questo è ancora sbagliato.

In questa formulazione, gli ingressi al NS saranno solo segnali positivi in ampiezza, e la rete non otterrà tutte le informazioni possibili su cui basare l'analisi. Meglio, moltiplicate il valore del vostro input per il colore della candela: +1 se la candela era in aumento, e -1 - se era in diminuzione. E nemmeno +/-1, ma al valore dell'incremento: Close[i]-Open[i].

Sarà così:

w1=(High[1]-Low[1])/Point*( Close[1]-Open[1])/Point;

w1=(High[2]-Low[2])/Point*( Close[2]-Open[2])/Point;

w1=(High[3]-Low[3])/Point*( Close[3]-Open[3])/Point;

Questo è senza normalizzazione per ora.

P.S. Non capisco questo: // Si tratta di far funzionare tutti gli input descritti qui sotto attraverso la storia?

Hai w1 in tutte e tre le linee nel tuo esempio, dovrebbe essere così?

P.S. Quello che non capisco è questo: // è così che tutti gli input descritti qui sotto possono essere lavorati sulla storia?

Sto cercando di capire quale funzione eseguirà w0, e ho supposto che sia un passo nella storia, come nei loop, se no, puoi dirmi di più...

 
Andrey4-min писал(а) >>

Nel tuo esempio hai w1 in tutte e tre le linee, dovrebbe essere così?

Sto cercando di capire quale funzione eseguirà w0, quindi ho supposto che fosse un passo nella storia, come nei loop, se non è così, per favore spiegati meglio...

Per capire quale funzione svolge w0, è meglio iniziare con qualche libro di testo invece di saltare nel NS, IMHO.