Réseaux neuronaux - page 3

 

Pourquoi ne pas utiliser des systèmes NN externes

Quelque chose comme NeuroShell, TS ou la source ouverte Joone ? Vous pouvez appeler la dll externe depuis Metatrade. Le temps et l'effort devraient être consacrés à la sélection des entrées (indicateurs ou bonnes stratégies) et à la formation plutôt qu'à l'écriture d'un système NN dans MQL4. J'irais dans ce sens.

 

C'est une bonne idée, je vais y réfléchir dès maintenant. Merci.

-Tommy

 
GP2X:
Quelque chose comme NeuroShell, TS ou l'open source Joone ? Vous pouvez appeler la dll externe depuis Metatrade. Le temps et les efforts devraient être consacrés à la sélection des entrées (indicateurs ou bonnes stratégies) et à la formation plutôt qu'à l'écriture d'un système NN dans MQL4. J'irais dans ce sens.

Joone a l'air vraiment bien mais savez-vous comment écrire un fichier d'entrée qui incorporerait un indicateur et apprendrait à prédire ses signaux ? Je n'arrive pas à comprendre et je ne trouve rien à ce sujet dans les forums.

 

Je pense qu'il y a deux moyens, l'un est d'utiliser une bibliothèque d'indicateurs Java, et d'alimenter Joone avec des tableaux de nombres, comme ce que ce type a fait : http://www.jooneworld.com/wiki/tiki-index.php?page=FinancialForecastTutorial#comments.

Une autre est mon idée, nous pouvons écrire un EA, qui crée les fichiers d'entrée (probablement aussi les fichiers de validation) lors de l'exécution dans le testeur de stratégie, puis former Joone avec ces fichiers.

Enfin, après la formation, lors de l'utilisation réelle, nous devons utiliser un EA pour parler à Joone. Tout cela n'est pas difficile pour moi (cela prendra juste un peu de temps). Le plus difficile est de savoir ce qui doit être utilisé comme entrées (certainement pas des données brutes, mais une combinaison d'indicateurs). La structure et le nombre de neurones cachés sont également inconnus, mais nous pourrions les trouver en répétant le processus de formation.

Cyclesurfer:
Joone semble vraiment bien mais savez-vous comment écrire un fichier d'entrée qui incorporerait un indicateur et apprendrait à prédire ses signaux ? Je n'arrive pas à comprendre et je ne trouve rien à ce sujet dans les forums. merci.
 

Par exemple, si vous voulez utiliser la MA comme entrée, il suffit d'écrire une EA qui enregistre les valeurs MA dans un fichier CSV pour chaque barre, d'exécuter l'EA dans le testeur, si vous obtenez deux ans de données historiques, le fichier CSV contiendra deux ans de valeurs MA. Vous pouvez ensuite l'utiliser comme fichier d'entrée.

GP2X:
Je pense qu'il y a deux façons de procéder, l'une consiste à utiliser une bibliothèque d'indicateurs Java, et à alimenter Joone avec des tableaux de nombres, comme ce que ce type a fait : http://www.jooneworld.com/wiki/tiki-index.php?page=FinancialForecastTutorial#comments.

Une autre idée est que nous pouvons écrire un EA, qui crée les fichiers d'entrée (probablement aussi les fichiers de validation) lorsqu'il est exécuté dans le testeur de stratégie, puis entraîner Joone avec ces fichiers.

Enfin, après l'entraînement, lorsqu'on l'utilise pour de vrai, on doit utiliser un EA pour parler à Joone. Tout cela n'est pas difficile pour moi (il faudra juste un peu de temps). Le plus difficile est de savoir ce qui doit être utilisé comme entrées (certainement pas des données brutes, mais une combinaison d'indicateurs). La structure et le nombre de neurones cachés sont également inconnus, mais nous pourrions les trouver en répétant le processus de formation.
 

Intelligence_artificielle EA

Bonjour :

J'ai trouvé cet EA, mais je ne suis pas sûr des stratégies sur lesquelles cet EA se base...

Quelqu'un peut-il jeter un coup d'oeil et expliquer ici s'il vous plaît ?

J'ai joint l'EA et le résultat du backtesting.

 

Tout est basé sur l'accélérateur/décélérateur de Williams, dont la formule est la suivante

AO = SMA(prix médian, 5)-SMA(prix médian, 34)

AC = AO-SMA(AO, 5)

Voici le code dans EA

extern int x1 = 135 ;

extern int x2 = 127; ;

extern int x3 = 16 ;

extern int x4 = 93 ;

double w1 = x1 - 100 ;

double w2 = x2 - 100 ;

double w3 = x3 - 100 ;

double w4 = x4 - 100 ;

double a1 = iAC(Symbol(), 0, 0) ;

double a2 = iAC(Symbol(), 0, 7) ;

double a3 = iAC(Symbole(), 0, 14) ;

double a4 = iAC(Symbole(), 0, 21) ;

return(x1* a1 + x2 * a2 + x3 * a3 + x4 * a4) ;

ce qui donne

return(35 * ac(this bar) + 27 * ac(7 bars ago) + -84 * ac(14 bars ago) ) + -7 * ac(il y a 21 barres) ) ;

Si le résultat est supérieur à 0, alors il achète et s'il est inférieur, alors il vend. Il n'ouvre qu'un seul ordre à la fois.

Il ressemble à une variation de l'alligator de Williams mais il utilise 4 AC au lieu de 3.

Comment choisissent-ils les numéros x1, x2, x3, x4 ? Je ne sais pas, ça me semble aléatoire.

pourquoi ils ont -100 de chacun d'entre eux ? aucune idée, ils auraient dû entrer un plus petit nombre.

 

J'ai passé d'innombrables heures à coder et à tester de telles bêtes, mais je n'ai rien pu en tirer.

Lorsque l'on évalue de telles méthodes, il est important de comprendre ce qui se passe réellement, de couper à travers le BS pour ainsi dire. Les réseaux neuronaux ne sont pas magiques, ils ne sont que desrégressions non linéaires. En tant que tels, ils peuvent faire un travail extraordinaire pour ajuster des données de test, mais ne vous disent rien sur l'avenir. L'autre hypothèse erronée qui est appliquée aux réseaux neuronaux et au Forex est qu'il existe une sorte de "modèle caché" dans les données que le réseau neuronal déduira. D'après mon expérience, plus les degrés de fidélité d'un système sont élevés, plus il est enclin à s'adapter aux données, et donc à ne pas donner de valeur dans les plages de données en dehors des données de test.

 

Merci.

WOW.

J'ai reçu la réponse si rapidement.

Merci beaucoup. Passez de bonnes vacances !

witchazel:
tout est basé sur l'accélérateur/décélérateur de Williams, dont la formule est la suivante

AO = SMA(prix médian, 5)-SMA(prix médian, 34)

AC = AO-SMA(AO, 5)

Voici le code dans l'EA

extern int x1 = 135 ;

extern int x2 = 127; ;

extern int x3 = 16 ;

extern int x4 = 93 ;

double w1 = x1 - 100 ;

double w2 = x2 - 100 ;

double w3 = x3 - 100 ;

double w4 = x4 - 100 ;

double a1 = iAC(Symbol(), 0, 0) ;

double a2 = iAC(Symbol(), 0, 7) ;

double a3 = iAC(Symbole(), 0, 14) ;

double a4 = iAC(Symbole(), 0, 21) ;

return(x1* a1 + x2 * a2 + x3 * a3 + x4 * a4) ;

ce qui donne

return(35 * ac(this bar) + 27 * ac(7 bars ago) + -84 * ac(14 bars ago) ) + -7 * ac(il y a 21 barres) ) ;

Si le résultat est supérieur à 0, alors il achète et s'il est inférieur, alors il vend. Il n'ouvre qu'un seul ordre à la fois.

Il ressemble à une variation de l'alligator de Williams mais il utilise 4 AC au lieu de 3.

Comment choisissent-ils les numéros x1, x2, x3, x4 ? Je ne sais pas, ça me semble aléatoire.

pourquoi -100 pour chacun d'entre eux ? aucune idée, j'aurais dû entrer un nombre plus petit
 

Nn

NN basé sur la reconnaissance des formes pour prévoir l'avenir ...la performance dépend du nombre de données que vous avez et de la bonne optimisation du réseau.....

NN peut apprendre les données comme notre cerveau lorsqu'il reconnaît quelque chose d'inconnu ...

==================

Collection d'indicateurs Forex