Question sur la programmation des réseaux neuronaux - page 5

 
Et puis, une telle configuration de réseau est capable de résoudre n'importe quel problème, y compris le "ou d'exclusion" :)
 
Ok. Mais j'aimerais quand même en savoir un peu plus sur la pratique : qu'est-ce qu'on alimente à l'entrée, quelle dimension N doit-on fixer, etc. A moins, bien sûr, que ce ne soit pas un secret :) Je suis une idiote dans ce domaine, mais je suis prête à m'engager.
 
rsi:
Ok. Mais j'aimerais quand même en savoir un peu plus sur la pratique : qu'est-ce qu'on alimente à l'entrée, quelle dimension N doit-on fixer, etc. A moins, bien sûr, que ce ne soit pas un secret :) Je suis une idiote dans ce domaine, mais je suis prête à m'engager.

J'ai présenté l'indicateur ci-dessus. L'angle de pente de la régression linéaire est envoyé à l'entrée. Essayez de le faire fonctionner sur Eura 1 heure
 
Merci, je vais aller jeter un coup d'oeil :)
 
rsi:
Merci, je vais regarder :)

J'aimerais ajouter un compte Z à ce truc et ce serait bien :)
 

Oui. C'est une chose amusante. Merci encore, klot, j'en ai assez pour le week-end :)

 
Il s'agit d'un neuro de metaquotes. Jetez-y un coup d'œil et voyez si cela vous aide. La direction n'est tolérable que pour de courtes périodes de 2 à 5 bars.
 
AAAksakal, regarde quoi ?
 
klot:


Et en général, tout NS peut être facilement programmé directement dans MQL4. Vous pouvez également sélectionner les pondérations des NS en utilisant l'AG de MT4 ou les vôtres. Le pessimisme n'est défini que par le manque d'imagination et de fantaisie. En fait, il n'y a pas de limites...

Le pessimisme est défini par les limitations du testeur de stratégie, c'est-à-dire que si la gamme des valeurs d'entrée est large ou si le nombre de ces mêmes valeurs dépasse la limite, l'optimiseur refuse de démarrer. Il y a donc des limites après tout.

Aujourd'hui, j'ai enfin terminé la construction d'un réseau neuronal écrit entièrement en MQL4 avec une architecture 3:3:1 (trois neurones à l'entrée, trois entrées cachées, une sortie). Toutes les couches sont configurées à l'aide du testeur GA. Mais le problème est que pour une couche, il faut au moins 12 paramètres d'entrée, au moins avec des valeurs de -1 à 1 par pas de 1 (comme Rosenblatt). Mais l'optimiseur ne peut pas en gérer autant. J'ai dû m'esquiver et simplifier la première couche.

Contrairement à la maille de quelqu'un d'autre, celle que l'on fabrique soi-même est meilleure dans la mesure où elle peut être améliorée. Par exemple, en plus de rendre la première couche non standard, j'ai ajouté la normalisation dynamique des données d'entrée.

Les signaux aux entrées sont assez primitifs :

   static  int  p = 12;
   ...
   double       z1 = Close[0] - iMA(Symbol(), 0, p, 0, MODE_SMA, PRICE_OPEN, 0);
   double       z2 = Open[p] - iMA(Symbol(), 0, p, 0, MODE_SMA, PRICE_OPEN, p);
   double       z3 = Open[p * 2] - iMA(Symbol(), 0, p, 0, MODE_SMA, PRICE_OPEN, p * 2);

Malgré la primitivité mentionnée ci-dessus, la grille s'avère très facile à entraîner, c'est-à-dire que les poids et les seuils sont facilement choisis de sorte que les résultats des tests s'avèrent sans une seule erreur (aucun facteur de profit). Mais après un tel ajustement, l'essai avant commence immédiatement à s'effondrer sur l'écart. J'ai dû modifier la stratégie de négociation afin de ne pas permettre à la grille de s'ajuster.

Cela en valait la peine, même si cela m'a retourné le cerveau :

Voici les résultats du test. De 1 à 273 métiers - optimisation, poursuite des essais.

Et voici le test de l'avant :

Voici les résultats de l'essai avant :

Rapport du testeur de stratégie
RNN
Alpari-Demo (Build 409)

SymboleEURUSD (Euro contre Dollar US)
Période1 heure (H1) 2011.10.24 00:00 - 2012.01.13 23:59 (2011.10.24 - 2012.01.14)
ModèlePar les prix d'ouverture (seulement pour les Expert Advisors avec un contrôle explicite de l'ouverture des barres)
Paramètrest1=54 ; t2=4 ; t3=48 ; x1=194 ; x2=128 ; x3=68 ; y1=1 ; y2=1 ; y3=-1 ; t4=136 ; sl=900 ; lots=1 ; mn=888 ;

Les bars dans l'histoire2431Tiques modélisées3862Qualité de la simulations/o
Erreurs de concordance des graphiques0




Dépôt initial10000.00



Bénéfice net14713.00Bénéfice total40711.60Perte totale-25998.60
Rentabilité1.57Gain attendu88.10

Dégradation absolue2721.60Abaissement maximal4800.00 (39.74%)Abattement relatif39.74% (4800.00)

Total des transactions167Positions courtes (% de gain)101 (67.33%)Positions longues (% de gain)66 (92.42%)

Transactions rentables (% de toutes)129 (77.25%)Transactions à perte (% de toutes)38 (22.75%)
Le plus grandcommerce profitable900.00accord perdant-907.20
Moyenneopération rentable315.59commerce perdant-684.17
Maximumgains continus (profit)13 (2557.00)Pertes continues (perte)4 (-3605.40)
MaximumProfit continu (nombre de victoires)3511.60 (11)Perte continue (nombre de pertes)-3605.40 (4)
Moyennegains continus4Perte continue1





Le plus intéressant est que même à partir du graphique, nous pouvons voir que la section d'optimisation est pire que la section avant. Cela se produit rarement. Bien que j'aie sélectionné celui-ci comme le meilleur avant parmi beaucoup d'autres, c'est-à-dire que d'autres avant ont des résultats bien pires que ceux de l'optimisation mais néanmoins ils ont les meilleurs.

 
Reshetov:

Le pessimisme est déterminé par les limites du testeur de stratégie, c'est-à-dire que si les plages de valeurs d'entrée sont larges ou si le nombre de ces mêmes valeurs dépasse la limite, l'optimiseur refuse de démarrer. Il y a donc des limites après tout.

Aujourd'hui, j'ai enfin terminé la construction d'un réseau neuronal écrit entièrement en MQL4 avec une architecture 3:3:1 (trois neurones à l'entrée, trois entrées cachées, une sortie). Toutes les couches sont configurées à l'aide du testeur GA. Mais le problème est que pour une couche, il faut au moins 12 paramètres d'entrée, au moins avec des valeurs de -1 à 1 par pas de 1 (comme Rosenblatt). Mais l'optimiseur ne peut pas en gérer autant. J'ai dû m'esquiver et simplifier la première couche.

Contrairement à la maille de quelqu'un d'autre, celle que l'on fabrique soi-même est meilleure dans la mesure où elle peut être améliorée. Par exemple, en plus de rendre la première couche non standard, j'ai ajouté la normalisation dynamique des données d'entrée.

Les signaux aux entrées sont assez primitifs :

Malgré la primitivité mentionnée ci-dessus, la grille s'avère très facile à entraîner, c'est-à-dire que les poids et les seuils sont facilement choisis de sorte que les résultats des tests s'avèrent sans une seule erreur (aucun facteur de profit). Mais après un tel ajustement, l'essai avant commence immédiatement à s'effondrer sur l'écart. J'ai dû modifier la stratégie de négociation afin de ne pas permettre à la grille de s'ajuster.

Cela en valait la peine, même si cela m'a retourné le cerveau :



J'ai fait une grille normale de 256 entrées, une couche cachée par 256 neurones. Et une couche de sortie d'un neurone. Et j'ai formé tout cela parfaitement dans MT4

Il y avait une option avec trois couches cachées, mais elles étaient inutiles.