Réseaux neuronaux - page 7

 
Cyclesurfer:
Awsome New Digital ! Je vais regarder le matériel dans quelques minutes... je dois sortir le russe... qui n'est pas si génial, mais je pense que couplé avec AltaVista je serai capable de faire une tentative décente. Je code actuellement dans CORTEX sur d'autres réseaux neuronaux (NN à partir de maintenant) et je prévois de convertir en MQ4... Je pense que nous devrions DÉFINITIVEMENT maintenir ce fil de discussion parce que (et c'est une opinion) les NN sont l'avenir de l'analyse technique. Les NN, pour ceux qui ne sont pas assez geek pour le savoir, sont essentiellement des algorythmes qui imitent le cerveau (pas nécessairement le cerveau humain, car cela serait extrêmement compliqué) en apprenant au fur et à mesure. J'écris les EAs pour donner des conseils sur le fait de prendre ou non un signal particulier basé sur des petits modèles qui sont venus avant quand un signal similaire a été donné. C'est ce que font la plupart des NN, ils recherchent dans les données de petits modèles qui n'auraient aucune signification pour nous, ou même pour d'autres algorithmes, et voient ce que ces modèles font au fil du temps. Le premier EA présentera Brain Trend. Je demande à tout le monde d'être patient cependant, le codage CORTEX prend du temps... plutôt, il faut du temps pour entraîner les NNs et les perfectionner. Si quelqu'un ici est familier avec CORTEX ou la conversion de code, toute aide sera appréciée. Je comprends pourquoi le forum russe s'oriente vers le commercial... les NNs sont le style actuel des traders qui gagnent beaucoup d'argent. Alors... qu'en dites-vous ?

J'ai déplacé votre message vers ce fil où vous trouverez quelques personnes concernant ce logiciel. L'une d'entre elles est citée ci-dessus.

 

Réseau neuronal avec Matlab et Metatrader

Bonjour !

J'utilise Matlab et j'ai développé un réseau neuronal pour plusieurs paires, mais j'ai des problèmes pour reprogrammer le réseau neuronal de Matlab à mql4 !

Pour un test, j'ai créé un petit réseau neuronal prédisant le prix USDJPY à partir du prix en i+10 et i+20. Il a 2 entrées, 3 couches cachées, 1 sortie. La fonction d' activation de la couche cachée est tansigmoïde, pour la sortie elle est linéaire.

Si je trace la sortie du NN avec le prix réel, cela montre que le NN fonctionne, mais avec le code que j'ai fait, il ne fonctionne pas du tout.

Les poids calculés de la couche cachée sont :

[13.8525 -43.4534 ;

-11.2084 18.4331 ;

-0.30603 0.01022]

Les poids de la couche cachée vers la sortie sont :

[0.0020021 0.0047956 -3.4143]

Biais de la couche cachée :

[13.876 ;

2.644 ;

0.083215]

Biais de la sortie

[0.27514]

Le problème doit être dans la fonction d'activation qui devrait être tan sigmoide. Comme le prix est supérieur à 100, le MathExp(-100) me donne quelque chose de très petit...

Voici la partie intéressante du code :

>>

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

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

//Nœud (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))/(1+MathExp(-Sum_node_1_1)) ;

//Nœud (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)) ;

//Nœud (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)) ;

//---- Valeur de sortie -----

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);

<<

Merci pour votre aide !

 

Voici un exemple pour illustrer mon problème de construction d'un réseau neuronal sous Matlab. L'image que j'ai postée illustre la valeur cible (X) et la sortie du réseau de neurones (Y) pour l'EURGBP. Au pire, pour un prix réel de 0.7, la sortie du NN se situe entre 0.68 et 0.73 (assez mauvais mais ce n'était qu'un test !).

Si j'utilise les poids du NN pour calculer la valeur de sortie à la main, j'obtiens un 0.75, ce qui est impossible pour 0.7... Je dois donc me tromper quelque part dans le calcul de ma sortie... Voici la formule :

-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

Les poids :

-Poids de l'entrée vers la couche

[-1.6589 1.4776 ;

-2.6065 4.3402 ;

0.88612 0.11309]

-Poids de la couche

[-1.1261 -0.013796 1.2166]

-Biais pour la couche 1

[4.5965 ;

0.30321 ;

0.055821]

-Biais pour la couche 2

[1.1116]

Les 2 prix d'entrée utilisés pour calculer la sortie sont :

0.6964

0.6936

Le réseau est un 2 entrées/3 cachés/1 sortie avec activation sigmoïde Tangente pour les cachés et activation linéaire pour la sortie.

MERCI !

Dossiers :
captureplot.jpg  23 kb
 

De plus, la fonction d' activation Tangente sigmoïde correcte était erronée dans mon code mql4. La fonction correcte est : 2/(1+MathExp(-2* x ))-1

Merci !

 

Premiers résultats

Ce fil de discussion semble un peu mort, mais j'espère qu'il y a encore des personnes intéressées par les réseaux neuronaux ! Alors n'hésitez pas à partager votre expérience des réseaux neuronaux ici !

J'ai déjà testé quelques combinaisons de facteurs pour tester le pouvoir de prédiction des réseaux neuronaux.

Comme je l'ai lu dans différents articles et posts, l'utilisation de la combinaison précédente High-Low-Open-Close semble totalement inefficace. Le NN est totalement perdu dans l'obscurité... Le graphique d'ajustement de la valeur réelle par rapport à la sortie du NN est horizontal (1ère image Open-Low-High-Close.jpg), ce qui signifie qu'il ne peut rien prédire du tout. C'est le même résultat que d'essayer de trouver les numéros de loterie avec un NN J'ai essayé différentes entrées et valeurs de sortie, normalisées ou non, le résultat est le même.

Alors, qu'est-ce qui est le plus mauvais à regarder ? Il semble que les indicateurs techniques fonctionnent beaucoup mieux. J'ai testé un mélange d'indicateurs classiques comme entrées pour prédire le prix absolu. Le tracé d'ajustement n'est pas le meilleur mais pas mauvais (2ème image - Technical factors inputs.jpg). Je pense aussi que l'utilisation des valeurs absolues est une très mauvaise idée.

L'utilisation de la pente de la moyenne mobile pour prédire la pente future donne des résultats intéressants pour identifier les renversements possibles (3ème image MA Slope.jpg).

Un autre moyen de recherche intéressant est d'utiliser un NN pour évaluer les bonnes conditions de trading. J'ai donc créé un score normalisé claculé à partir de la clôture actuelle et de sa distance par rapport aux futurs hauts et bas. Si le score est élevé, cela signifie que dans les 4 prochaines périodes, la distance entre la clôture actuelle et les futurs sommets est élevée (achat de bénéfices à l'avance) et la distance par rapport au bas est faible (pas de drawdown significatif). Je n'ai pas eu de succès avec cette méthode pour le moment.

J'espère avoir des commentaires et des partages d'expérience très bientôt !

 

Félicitations à Webesa

THX chère Webesa,

ce sont de bons résultats,

mais une question : n'est-il pas préférable d'utiliser un plus grand NN (plus d'entrées + plus de couches + plus de neurones) pour obtenir une meilleure relation entre les bougies ?

 

d'un réseau neuronal à une dll

Bonjour,

Est-ce que quelqu'un a de l'expérience dans l'intégration d'une dll qui contient un réseau de neurones entraîné depuis Matlab ou Neurosolutions dans un script mq4 ?

 
webesa:
Ce fil de discussion semble un peu mort, mais j'espère qu'il y a encore des gens intéressés par les réseaux neuronaux ! Donc, s'il vous plaît, partagez votre expérience avec les réseaux neuronaux ici !

J'ai déjà testé quelques combinaisons de facteurs pour tester le pouvoir de prédiction des réseaux neuronaux.

Comme je l'ai lu dans différents articles et posts, l'utilisation de la combinaison précédente High-Low-Open-Close semble totalement inefficace. Le NN est totalement perdu dans l'obscurité... Le graphique d'ajustement de la valeur réelle par rapport à la sortie du NN est horizontal (1ère image Open-Low-High-Close.jpg), ce qui signifie qu'il ne peut rien prédire du tout. C'est le même résultat que d'essayer de trouver les numéros de loterie avec un NN.

J'ai essayé différentes entrées et valeurs de sortie, normalisées ou non, le résultat est le même.

Alors qu'est-ce qui est le plus mauvais à regarder ? ? Il semble que les indicateurs techniques fonctionnent beaucoup mieux. J'ai testé un mélange d'indicateurs classiques comme entrées pour prédire le prix absolu. Le tracé d'ajustement n'est pas le meilleur mais pas mauvais (2ème image - Technical factors inputs.jpg). Je pense aussi que l'utilisation des valeurs absolues est une très mauvaise idée.

L'utilisation de la pente de la moyenne mobile pour prédire la pente future donne des résultats intéressants pour identifier les renversements possibles (3ème image MA Slope.jpg).

Un autre moyen de recherche intéressant est d'utiliser un NN pour évaluer les bonnes conditions de trading. J'ai donc créé un score normalisé claculé à partir de la clôture actuelle et de sa distance par rapport aux futurs hauts et bas. Si le score est élevé, cela signifie que dans les 4 prochaines périodes, la distance entre la clôture actuelle et les futurs sommets est élevée (achat de bénéfices à l'avance) et la distance par rapport au bas est faible (pas de drawdown significatif). Je n'ai pas eu de succès avec cette méthode pour le moment.

J'espère avoir des commentaires et des partages d'expérience très bientôt !

Quelles étaient exactement vos entrées/sorties pour le NN qui utilisait les moyennes mobiles?

 
 

Je suppose que vous avez raison de dire que si vous n'avez pas à vous recycler continuellement, vous n'avez pas besoin de la DLL.

Voulez-vous partager un modèle pour cela ?