Utilizzo delle reti neurali nel trading.

 

Cari commercianti! Recentemente le passioni intorno all'uso delle reti neurali in

previsione nei mercati finanziari. Penso che il pubblico si divida in quelli che l'hanno provato, ma di fronte a

Domande e ottenuto deluso (è più facile usare le mani) o ritirato temporaneamente, e quelli che hanno alcuni (e forse molto buoni) risultati.

risultati e stanno tranquillamente lavorando e migliorando il loro sistema... Tuttavia, nuovi malati emergono con

desideroso di successo e di domande. Molto è già stato discusso, ma forse i neurotrader esperti hanno

nuovi pensieri?

Ultimamente sono interessato alle non-crescite e ho accumulato alcune domande. Mi piacerebbe sentire le opinioni di chi è bravo a farlo.

Capisco che quando si usano le reti neurali nel trading molti dettagli sono importanti... In ordine.

1. Qual è il compito da fissare per NS? Penso che il problema della classificazione (cioè la divisione dei momenti del mercato in classi

"Compra", "Vendi", "Stai fuori dal mercato") è il più promettente in termini di ottenere buoni risultati nel trading.

2. Come formulare questo compito? Vedo due modi.

а. Il primo è quello di insegnare alla rete a determinare autonomamente il più favorevole

Entra nel mercato quando è più probabile che tu abbia un trade in profitto.

In questo caso la rete analizzerà costantemente il mercato (per esempio, all'apertura di ogni nuovo bar) e determinerà

Quale dovrebbe essere, allora, il campione di allenamento? Ovviamente dovrebbe contenere

Valori di ingresso (valori di prezzo o indicatori) da ogni barra del campione

il valore di uscita desiderato. COME? Questa è una questione di domande! Così nel programma Reti Neurali 4 di STATISTICA è auspicabile

che ad ogni barra dovrebbe essere assegnato un valore fisso che indica a quale classe appartiene...

ad una certa classe... come 1, 0 o -1... o anche con il testo "vendere" "fuori mercato" "comprare"

D'altra parte, ho letto che i valori di uscita di un campione di allenamento non dovrebbero essere discreti

e dovrebbe essere distribuito in un intervallo da (per esempio) -1, che significa 100% vendere! a 1, che significa 100% comprare, e 0 sarebbe quindi

"non so" o "fuori dal mercato". Cioè, ogni barra dovrebbe avere un insieme di ingressi e un valore di uscita di (per esempio) 0,8745

il che significa che ci sono 87 possibilità su 100 di comprare.

E naturalmente, come trovare tali valori di uscita? Uso uno Zig-Zag? E tra le cime dello Zig-Zag

calcolare le sue "possibilità"?

б. Il secondo modo è quello di filtrare i segnali di qualche sistema... un buon sistema in sé che genera

e neuronics solo "permette" o meno di commerciare su di loro.

... in questo caso, il campione di allenamento dovrebbe essere disegnato solo sulle barre in cui il sistema dà il segnale di trading... o su tutte le barre comunque?

E ancora, l'uscita (disaer) dovrebbe essere discreta o con valori intermedi?

3. Valori di ingresso. Suggeriscono di non prendere i valori degli indicatori come tali. Credo che questo sia un malinteso.

Gli indicatori "guardano" nella storia, ognuno alla sua profondità e angolo, e in base a questo danno il

Se prendiamo un insieme di valori di indicatori, il vettore in entrata ricorda un certo "codice a barre" del mercato

e la NS riconoscerà e riassumerà le situazioni di mercato utilizzando questi codici a barre. Si propone di prendere come variante la differenza

dei valori dell'indicatore (per fornire alla rete informazioni sulla direzione del movimento del prezzo). Quali altre varianti esistono?

QUAL È IL MODO GIUSTO? Ho provato a prendere l'angolo Phi di un numero complesso (l'angolo Phi è una geometria

interpretazione di un numero complesso) di Cloth, ma nei miei esperimenti con NeuroSolution rispetto a un set di

dei valori degli indicatori sono usciti molto peggio. Cosa ha da dire la comunità di esperti? ;-)

4. Normalizzazione dei valori di ingresso. Il significato della procedura è chiaro, quello che non è chiaro è come attuarla correttamente. Lasciatemi spiegare. Normalizzazione -

è portare i valori in un unico intervallo. Per fare questo dobbiamo trovare il valore massimo nel campione e il valore minimo.

Va bene. Fino a quale profondità dobbiamo cercare? Diciamo che abbiamo 100 valori di indicatori nel campione e dobbiamo normalizzare

75° valore. Dove dobbiamo cercare il minimo e il massimo? Al 74 precedente? O al 50 precedente? O a tutti i 100 (cioè

C'è bisogno di certezza... perché nella classificazione ogni barra deve essere calcolata in modo indipendente e secondo

altrimenti sono tutte sciocchezze... Penso che dovrebbe essere basato solo sui valori del passato e prendere

Penso che sia necessario dare solo valori passati e prendere una profondità di unità strettamente definita (per esempio sempre 100 barre fa o 500 o il valore di un campione di formazione).

5. Ricampionamento casuale del campione in arrivo. Ape o non ape! Le opinioni differiscono... La teoria afferma che il caso di

di classificazione è utile. Ma com'è nella realtà? Chi l'ha provato? Qualche opinione?

6. E infine un'ultima domanda sulla formazione della rete. Qualcuno usa il C.V. campionamento (convalida incrociata)?

È necessario? Aiuta davvero a prevenire il sovrallenamento della rete? E in generale, come si affronta questo

sovrallenamento subdolo? Rovina tutto! Come sui campioni di formazione tutto è bello! E su Out of

Campione - nonsense.

Personalmente uso NeuroSolution 5 DE per studiare l'utilità di NS nel trading. È un buon programma flessibile.

Permette a di generare risultati come DLL.

Abbastanza intelligente. (ma non è chiaro come, dopo l'addestramento e l'ottimizzazione, trovare quali valori della selezione di input sono utili e quali sono esclusi.

L'unica cosa che voglio scoprire è quali valori sono utili e quali sono esclusi dal programma come dannosi o inutili.

Per favore, non passate oltre. Critica, suggerimenti! Condividete i vostri pensieri!

 
Naturalmente sono un sacco di sciocchezze, ma almeno guarda i link sotto il tuo post, non è un nuovo argomento dopo tutto.
 
читайте================================>хайкина=========================> :О)
 
PraVedNiK >> :
читайте================================>хайкина=========================> :О)

Già trovato! Lo leggerò sicuramente.

 
sayfuji >> :
Certo, sono un sacco di parole, ma almeno guarda i link sotto il tuo post, non è un nuovo argomento dopo tutto.

Non ho problemi con molte parole. È tutto lì... è tutto lì... pensi che sia finita, vero?

 

полагаете что тема исчерпана полность?

Assolutamente no. Al contrario, scavare e scavare, una pala più grande e un sacco di tempo.


 
alexish писал(а) >>

4. Normalizzare i valori di ingresso. Il significato della procedura è chiaro. Quello che non è chiaro è come implementarlo correttamente. Lasciatemi spiegare. Normalizzazione -

è portare i valori in un unico intervallo. Per fare questo abbiamo bisogno di trovare il valore massimo nel campione e il valore minimo.

Va bene. Fino a quale profondità dobbiamo cercare? Diciamo che abbiamo 100 valori di indicatori nel campione e dobbiamo normalizzare

75° valore. Dove dobbiamo cercare il minimo e il massimo? Al 74 precedente? O al 50 precedente? O a tutti i 100 (cioè

C'è bisogno di certezza... perché nella classificazione ogni barra deve essere calcolata indipendentemente e secondo

altrimenti sono tutte sciocchezze... Penso che dovrebbe essere basato solo sui valori del passato e prendere

Penso che dovremmo usare solo valori passati e prendere la stessa profondità (per esempio sempre 100 barre fa o 500 o lo stesso valore di un campione di allenamento). - Cercate un metodo universale e leggete articoli su siti speciali sulle reti neurali.

5. Risistemazione casuale del campione in arrivo. - non è un punto essenziale

6. E infine l'ultima domanda sulla formazione della rete. Qualcuno usa il C.V. campionamento (convalida incrociata)?

È davvero necessario? Aiuta davvero a prevenire il sovrallenamento della rete? E in generale, come si affronta questo

sovrallenamento subdolo? Rovina tutto! Come sui campioni di formazione tutto è bello! E su Out of

Campione - senza senso... - In ogni caso, il campione di prova decide tutto.

Assurdità su OOS: 1. Non è un campione rappresentativo 2. Dati non stazionari 3. Pre-elaborazione errata, forse altre cose...

Personalmente uso NeuroSolution 5 DE per studiare l'utilità di NS nel trading. È un programma buono e flessibile.

È possibile generare i risultati come DLL su .

Abbastanza intelligente. (ma non è chiaro come, dopo l'addestramento e l'ottimizzazione, trovare quali valori della selezione di input sono utili e quali sono esclusi.

L'unica cosa che voglio scoprire è quali valori sono utili e quali sono esclusi dal programma come dannosi o inutili).

Per favore, non passate oltre. Critica, suggerimenti! Condividete le vostre idee!

In senso buono dovrò scrivere tutto io, almeno per capire meglio cosa succede e perché...

 
alexish писал(а) >>

1. Qual è il compito del NS? Penso che il compito di classificazione (cioè dividere i momenti del mercato in classi

"comprare", "vendere", "stare fuori dal mercato") è il più promettente in termini di ottenere buoni risultati di trading.

Sì, è così. E, lo stato "fuori dal mercato" come regola è collegato all'allargamento dello spread, tutto il resto NS traccia e dovrebbe sfruttare a suo vantaggio. Ecco perché la classificazione solo sulla base di "comprare" o "vendere" è cruciale per NS, e nel TS stesso impostiamo "allowance-ban" per il commercio a seconda del valore corrente della commissione delle società di intermediazione.

2. Come formulare questo compito? Vedo due modi.

а. Il primo è insegnare alla rete a determinare i momenti più redditizi del mercato.

б. Il secondo modo - in teoria, il campione di allenamento dovrebbe essere disegnato solo sulle barre in cui c'è un segnale dal sistema per fare trading... o comunque su tutte le barre?

E ancora... il campione in uscita (disaer) dovrebbe essere discreto o con valori intermedi?

Giusto - per facilitare al massimo il compito che deve essere risolto dal NS, a questo scopo dovremmo determinare il TS ottimale (per condizioni specifiche) in modo indipendente e alimentarlo con serie temporali già sezionate come dati di input, cioè non ogni barra, ma probabili punti chiave, e solo dopo possiamo aspettarci che il NS prenda una decisione di entrata-uscita adeguata. E deciderà se il punto critico che hai suggerito è tale o no.

Per quanto riguarda la risposta alla domanda sulla discretezza dei valori di uscita del NS, non è ovvia e dipende prima di tutto dalla legge di distribuzione delle ampiezze degli incrementi del quoziente "affettato" dal segnale di ingresso del NS. Se la distribuzione è vicina alla simmetria, allora possiamo limitarci a un'uscita discreta +/-1 (acquisto/vendita), ma se la distribuzione non è simmetrica, allora dobbiamo considerare la sua ampiezza (probabilità) oltre al segno.

3. Valori di ingresso.

Risposto sopra.

4. Normalizzazione dei valori di ingresso.

La normalizzazione è necessaria perché l'NS funzioni correttamente.

Il modo corretto di eseguire questa procedura è quello di ottenere la mappatura dell'intera gamma di valori ricevuti all'ingresso/ingressi del NS nella regione di +/-1 con distribuzione uniforme (cava). Questo può essere fatto agendo sul vettore di ingresso con una tangente iperbolica e poi smussando la distribuzione con qualche mezzo (opzionale).

5. Ricorso casuale del campione in arrivo. Bi o ort tu bi! Le opinioni differiscono.

La procedura è inutile!

Il punto è che usando il metodo Reverse Error Propagation, sommiamo gli errori su tutto il campione di allenamento e non fa differenza per noi in quale ordine sommiamo i singoli outlier - riordinare i posti delle sillabe non cambia la somma.

6. E come si fa ad affrontare questo subdolo sovrallenamento?

C'è una relazione inequivocabile tra la lunghezza minima del campione di allenamento P, il numero di pesi W nel NS e la dimensione dell'input d: P>4*(W^2)/d

Se questa condizione è soddisfatta, ovviamente il sovrallenamento non si verificherà mai. Il processo di apprendimento deve essere fermato quando il parametro che caratterizza l'errore di apprendimento raggiunge l'asintotico.

Personalmente uso NeuroSolution 5 DE per studiare l'utilità di NS nel trading. È un programma buono e flessibile.

Abbastanza complicato.

Peccato!

Dovreste scrivere il codice del NS direttamente in MQL. Questo è l'unico modo per evitare il mare di insidie e risparmiare tempo e fatica.

 
Neutron >> :


1.

La cosa giusta è rendere il più facile possibile per il NS risolvere il problema, per questo è necessario determinare il TS ottimale (per condizioni specifiche) da soli e inviare come dati di input serie temporali già sezionate, cioè non ogni barra, ma probabili punti chiave, e solo dopo ci si può aspettare dal NS una soluzione adeguata per l'entrata-uscita dal mercato. Deciderà se il punto critico che avete suggerito è tale o no.


2.

Cattivo!

Dovreste scrivere il codice NS direttamente in MQL. Questo è l'unico modo per evitare il mare di insidie e risparmiare tempo e fatica.


1. semplificando, non perdere i dati. La cosa più importante è non alimentare la rete con essenzialmente gli stessi dati. Meglio pensare fuori dagli schemi cosa può influenzare il prezzo e come presentarlo come dati per la rete neurale.


2. NON scrivere il codice NS per MQL. Spenderete molto tempo e nervi e tutto funzionerà molto lentamente. Meglio imparare a collegare la tua dll con MT4 e scrivere la tua rete neurale in C per esempio con il pacchetto FANN. Questo aiuterà ad evitare molti problemi tra cui la portabilità del codice al nuovo terminale MQL5.

 
Neutron писал(а) >>

Il modo corretto di farlo è quello di far apparire l'intera gamma di valori di ingresso/ingresso del NS nell'area +/-1 con una distribuzione uniforme (vuota). Questo può essere fatto agendo sul vettore di input con una tangente iperbolica e poi smussando la distribuzione (opzionale) in un modo o nell'altro.

C'è una relazione inequivocabile tra la lunghezza minima del campione di allenamento P, il numero di pesi W regolabili nel NS e la dimensione dell'input d: P>4*(W^2)/d

Se questa condizione è soddisfatta, ovviamente il sovrallenamento non si verificherà mai. Il processo di apprendimento deve essere fermato quando il parametro che caratterizza l'errore di apprendimento raggiunge l'asintotico.

Cattivo!

È necessario scrivere subito il codice NS per MQL. Questo è l'unico modo per evitare il mare di insidie e risparmiare tempo e fatica.

Una funzione sigmoidale da sola non pareggia la distribuzione... Secondo me, è più importante risolvere il problema della stazionarietà dei dati nella pre-elaborazione.

A proposito, con la formula che hai citato, ottengo W=420, d=14, quindi P>50400 - non ti sembra che il campione sia un po' troppo grande?

Nella mia esperienza il numero di campioni nel campione non dipende da quello che suggerisci...

 
alexish писал(а) >> Uso personalmente NeuroSolution 5 DE per studiare l'utilità di NS nel trading.

In generale, prima di applicare programmi così specifici e abbastanza complessi, è consigliabile consultare gli sviluppatori di questo software sull'opportunità del suo utilizzo in questo settore, cioè nei mercati finanziari. Quindi, se vi consultate con loro, vi diranno che NeuroSolution non è destinato all'uso nei mercati finanziari, e vi consiglieranno un altro programma. NeuroSolution è progettato per risolvere problemi generali, mentre l'uso delle reti neurali nei mercati finanziari ha alcune caratteristiche specifiche che non sono prese in considerazione in questo software. Forse NeuroSolution può essere in qualche modo collegato ai mercati finanziari, ma è abbastanza complicato ed è sotto il potere di grandi specialisti nel campo delle reti neurali + trader in una sola persona, che capiscono chiaramente quale risultato e soprattutto come ottenerlo dalle reti neurali. Quindi hai tutti i problemi che hai elencato sopra - impostazione del problema, normalizzazione dei dati, sovrallenamento e così via.....

Motivazione: