Reti neurali - pagina 7

 
Cyclesurfer:
Awsome New Digital! Ill guardare il materiale in pochi minuti ... deve rompere fuori il russo ... che non è così grande, ma penso che accoppiato con AltaVista ill essere in grado di fare un tentativo decente. Attualmente sto codificando in CORTEX su altre Reti Neurali (NN d'ora in poi) e ho intenzione di convertirle in MQ4... Penso che dovremmo DEFINITIVAMENTE mantenere questo thread perché (e questa è un'opinione) le NN sono il futuro dell'analisi tecnica. NN, per coloro che non sono abbastanza geek per sapere ... sono fondamentalmente algorythms che imitano il cervello (non nessisarily il cervello umano ... perché che sarebbe Mind bustingly complicato) in quanto impara come va. Sto scrivendo gli EAs per consigliare se prendere o meno un particolare segnale basato su piccoli modelli che sono venuti prima quando è stato dato un segnale simile. Questo è quello che fa la maggior parte delle NN, cercano dati per piccoli modelli che sarebbero senza significato per noi, o anche altri algoritmi e vedono cosa fanno questi modelli nel tempo. Il primo EA sarà caratterizzato da Brain Trend. Chiedo a tutti di essere pazienti però, la codifica CORTEX richiede tempo... anzi, richiede tempo per addestrare le NN e perfezionarle. Se qualcuno qui ha familiarità con CORTEX o la conversione del codice, qualsiasi aiuto sarebbe apprezzato. Capisco perché il forum russo dovrebbe diventare commerciale... le NN sono lo stile attuale per i trader con molti soldi. Quindi... che ne dite, ragazzi?

Ho spostato il tuo post in questo thread dove troverai alcune persone riguardanti questo software. Uno di loro è citato sopra.

 

Rete neurale usando Matlab e Metatrader

Salve!

Sto usando Matlab e ho sviluppato una rete neurale per diverse coppie, ma ho problemi a riprogrammare la NN da Matlab a mql4!

Per una prova, ho creato una piccola rete neurale che predice il prezzo di USDJPY dal prezzo in i+10 e i+20. Ha 2 ingressi, 3 nascosti, 1 uscita. La funzione di attivazione dello strato nascosto è tansigmoide, per l'uscita è lineare.

Se traccio l'uscita della NN con il prezzo reale, mostra che la NN funziona, ma con il codice che ho fatto, sicuramente non funziona.

I pesi calcolati dello strato nascosto sono :

[13.8525 -43.4534;

-11.2084 18.4331;

-0.30603 0.01022]

I pesi dal nascosto all'uscita sono :

[0.0020021 0.0047956 -3.4143]

Bias dello strato nascosto :

[13.876;

2.644;

0.083215]

Bias dell'uscita

[0.27514]

Il problema deve essere nella funzione di attivazione che dovrebbe essere tan sigmoide. Poiché il prezzo è più di 100, la MathExp(-100) mi dà qualcosa di molto piccolo...

Ecco la parte interessante del codice:

>>

double a1=iClose("USDJPY",0,i+10);

double a2=iClose("USDJPY",0,i+20);

//Nodo (1,1)

double Sum_node_1_1=13,8525*a1 -43,4534*a2+13,876;

double Sigmoide_node_1_1=(1-MathExp(-Sum_node_1))/(1+MathExp(-Sum_node_1));

//Nodo (1,2)

double Sum_node_1_2=-11.2084*a1+18.4331*a2+2.644;

double Sigmoide_node_1_2=(1-MathExp(-Sum_node_1_2))/(1+MathExp(-Sum_node_1_2));

//Nodo (1,3)

double Sum_node_1_3=-0.30603*a1+0.01022*a2+0.083215;

double Sigmoide_node_1_3=(1-MathExp(-Sum_node_1_3))/(1+MathExp(-Sum_node_1_3));

//---- Valore di uscita -----

double Sum_node_2_1=(0.0020021*Sigmoide_node_1_1+0.0047956*Sigmoide_node_1_2-3.4143*Sigmoide_node_1_3+0.27514);

<<

Grazie per il tuo aiuto!

 

Ecco un esempio per illustrare il mio problema di costruzione di una rete neurale in Matlab. L'immagine che ho postato illustra il valore target (X) e l'output della rete neurale (Y) per EURGBP. Così, nel peggiore dei casi, per un prezzo reale di 0,7, l'output della rete neurale è tra 0,68 e 0,73 (abbastanza male, ma era solo un test!).

Se uso i pesi della NN per calcolare il valore di uscita a mano, ottengo uno 0,75, che è impossibile per 0,7... Quindi devo essere sbagliato da qualche parte nel calcolo del mio output... Ecco la formula:

-1.1261*tansig(-1.6589*0.6964+1.4776*0.6936+4.5965)

-0.013796*tansig(-2.6065*0.6964+ 4.3402 *0.6936+0.30321)

+1.2166*tansig( 0.88612*0.69669364+0.11309 *0.6936+0.055821)+1.1116

I pesi :

-Pesi per lo strato dall'input

[-1.6589 1.4776;

-2.6065 4.3402;

0.88612 0.11309]

-Pesi allo strato

[-1.1261 -0.013796 1.2166]

-Pesi per lo strato 1

[4.5965;

0.30321;

0.055821]

-Bias verso lo strato 2

[1.1116]

I 2 prezzi di ingresso utilizzati per calcolare l'uscita sono :

0.6964

0.6936

La rete è una 2 input/3 hidden/1 output con attivazione sigmoide Tangente per l'hidden e lineare per l'output.

GRAZIE!

File:
captureplot.jpg  23 kb
 

Oltre a questo, la corretta funzione di attivazione Tangente sigmoide era sbagliata nel mio codice mql4. La funzione corretta è: 2/(1+MathExp(-2* x ))-1

Grazie!

 

Primi risultati

questo thread sembra un po' morto, ma spero che ci sia ancora gente interessata alle reti neurali! Quindi per favore condividete qui la vostra esperienza con le reti neurali!

Ho già testato alcune combinazioni di fattori per verificare il potere di previsione delle reti neurali.

Come ho letto in diversi articoli e post, l'uso del precedente High-Low-Open-Close sembra totalmente inefficiente. La NN è totalmente persa nel buio... La trama di Fitting del valore reale contro l'uscita della NN è orizzontale (1a foto Open-Low-High-Close.jpg), il che significa che non può predire nulla. E' lo stesso risultato del tentativo di trovare i numeri di lotteria con una NN Ho provato diversi input e valori di output, normalizzati o no, il risultato è lo stesso.

Quindi cosa c'è di peggio da guardare? Sembra che gli indicatori tecnici funzionino molto meglio. Ho provato un mix di indicatori classici come input per prevedere il prezzo assoluto. Il diagramma di adattamento non è il migliore ma non è male (2a immagine - Fattori tecnici inputs.jpg). Penso anche che usare i valori assoluti sia una pessima idea.

Usare la pendenza della media mobile per prevedere la pendenza futura dà risultati interessanti per identificare possibili inversioni (3° foto MA Slope.jpg).

Un altro modo interessante di ricerca è anche usare una NN per valutare le buone condizioni di trading. Così ho creato un punteggio normalizzato calcolato dalla chiusura attuale e la sua distanza dai futuri massimi e minimi. Se il punteggio è alto, significa che nei prossimi 4 periodi, la distanza tra l'attuale chiusura e i futuri massimi è alta (acquisti di profitti in anticipo) e la distanza dai minimi è bassa (nessun drawdown significativo). Non ho avuto successo con questo metodo per il momento.

Spero di avere qualche commento e condivisione di esperienze molto presto!

 

Congratulazioni Webesa

THX Caro Webesa,

questi sono buoni risultati,

ma 1 domanda: non è meglio usare una NN più grande (più ingressi + più strati + più neuroni) per approssimare meglio la relazione tra le candele?

 

da rete neurale a dll

Ciao,

qualcuno ha esperienza con l'integrazione di una dll che contiene una rete neurale addestrata da Matlab o Neurosolutions in uno script mq4?

 
webesa:
Questo thread sembra un po' morto, ma spero che ci sia ancora gente interessata alle reti neurali! Quindi per favore condividi la tua esperienza con le reti neurali qui!

Ho già testato alcune combinazioni di fattori per verificare il potere di previsione delle reti neurali.

Come ho letto in diversi articoli e post, l'utilizzo di precedenti High-Low-Open-Close sembra totalmente inefficiente. La NN è totalmente persa nel buio... La trama di Fitting del valore reale contro l'uscita della NN è orizzontale (1a foto Open-Low-High-Close.jpg), il che significa che non può predire nulla. È lo stesso risultato del tentativo di trovare i numeri di lotteria con una NN

Ho provato diversi input e valori di output, normalizzati o no, il risultato è lo stesso.

Quindi cosa c'è di peggio da guardare? Sembra che gli indicatori tecnici funzionino molto meglio. Ho provato un mix di indicatori classici come input per prevedere il prezzo assoluto. Il diagramma di adattamento non è il migliore ma non è male (2a foto - Fattori tecnici inputs.jpg). Penso anche che usare i valori assoluti sia una pessima idea.

Usare la pendenza della media mobile per prevedere la pendenza futura dà risultati interessanti per identificare possibili inversioni (3° foto MA Slope.jpg).

Un altro modo interessante di ricerca è anche usare una NN per valutare le buone condizioni di trading. Così ho creato un punteggio normalizzato calcolato dalla chiusura attuale e la sua distanza dai futuri massimi e minimi. Se il punteggio è alto, significa che nei prossimi 4 periodi, la distanza tra l'attuale chiusura e i futuri massimi è alta (acquisti di profitti in anticipo) e la distanza dai minimi è bassa (nessun drawdown significativo). Non ho avuto successo con questo metodo per il momento.

Spero di avere qualche commento e condivisione di esperienze molto presto!

Quali erano esattamente i tuoi input/output per il NN che utilizzava le medie mobili?

 
 

Immagino che tu abbia ragione: se non devi riqualificarti continuamente, non hai bisogno della dll.

Vorresti condividere un modello per questo?