L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 412
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Mes solutions étaient initialement basées sur OpenNN (C++).
Maintenant, j'ai appris beaucoup de choses et je suis passé à Keras (Python).
Je m'occupe principalement de l'apprentissage profond de la prédiction des problèmes de classification.
Nous avons donc affaire à la même zone de MO. Keras est un bon paquet, surtout depuis qu'il est porté sur R.
Seulement je ne comprends pas la question de quoi ?
Bonne chance
Nous avons donc affaire à la même zone de MO. Keras est un bon paquet, surtout depuis qu'il est porté sur R.
Seulement je ne comprends pas la question de quoi ?
Bonne chance
C'est intéressant... cela signifie que des tests supplémentaires devront être effectués, peut-être que ce RN n'est pas aussi significatif qu'on le pensait auparavant.
Le seul avantage est la sélection des poids dans l'optimiseur en même temps que les autres paramètres du système.
J'essaie actuellement de déterminer sa capacité de calcul dans une plage de données connues. La table de multiplication par exemple.
Mise à jour.
Des expériences supplémentaires après avoir changé le conseiller expert ont montré les résultats suivants par rapport au MLP 3-5-1 ordinaire.
Différentes formules ont été utilisées pour les tests :
//double func(double d1,double d2,double d3 ){return d1*d2;} //l'erreur est de 0-2%, car la multiplication est inhérente aux formules. 2 % est obtenu parce que l'optimiseur génétique ne s'arrête pas toujours à une solution idéale. Mais il existe aussi une solution absolument exacte avec erreur = 0.
La conclusion est que le MLP ordinaire a 2 à 3 fois moins d'erreurs que le RNP de Reshetov. Une partie de cette erreur est peut-être due au fait que l'optimiseur génétique du terminal MT5 ne s'arrête pas à une solution idéale.//double func(double d1,double d2,double d3 ){return d1*d2*d3;}// erreur 0-2% de multiplication dans les formules, sur MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1) ;}// erreur 2-6%, sur MLP 0,1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3) ;}// erreur 2%, sur MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// erreur 3-4%, sur MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}// erreur 8-4%, à MLP 1.5%
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// erreur 8-4%, à MLP 1.5%
J'essaie actuellement de déterminer dans quelle mesure il compte dans une gamme de données connues. Une table de multiplication par exemple.
Mise à jour.
Des expériences supplémentaires après avoir changé l'EA ont montré les résultats suivants, par rapport au MLP 3-5-1 normal.
Différentes formules ont été utilisées pour les tests :
//double func(double d1,double d2,double d3 ){return d1*d2;} //l'erreur est de 0-2%, car la multiplication est inhérente aux formules. 2 % est obtenu parce que l'optimiseur génétique ne s'arrête pas toujours à une solution idéale. Mais il existe aussi une solution absolument exacte avec erreur = 0.
En résumé, nous pouvons conclure que le MLP ordinaire a 2 à 3 fois moins d'erreurs que le RNN de Reshetov. Une partie de cette erreur est peut-être due au fait que l'optimiseur génétique du terminal MT5 ne s'arrête pas à une solution idéale.//double func(double d1,double d2,double d3 ){return d1*d2*d3;}// erreur 0-2% de multiplication est inhérente aux formules, à MLP 1%.
//double func(double d1,double d2,double d3 ){return MathSin(d1);}// erreur 2-6%, à MLP 0,1%.
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3);}/// erreur 2%, à MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// 3-4% d'erreur, à MLP 1%.
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}/// erreur 8-4%, à MLP 1.5%.
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// erreur 8-4%, à MLP 1.5%.
Oui, des résultats intéressants, peut-être qu'une énumération complète serait plus précise.
Oui, les résultats sont intéressants, peut-être qu'un dépassement complet serait plus précis.
Ce serait le cas, mais après quelques semaines ou mois... 8 coefficients sélectionnables avec un pas de 1% 1008= 10000000000000000 itérations, et le terminal lui-même passe à la génétique, avec ce nombre.
Pouvez-vous me dire, la classification des MLP à partir d'alglib, je comprends que cela nécessite au moins 2 sorties, comment travailler avec cela ? aucune aide ou description nulle part... tinny )
Puis-je demander, classer MLP à partir d'alglib je comprends, exige au moins 2 sorties, comment travailler avec elle ?)
Oui 2, à partir de l'aide http://alglib.sources.ru/dataanalysis/ne uralnetworks.php
Les réseaux neuronaux avec une couche de sortie linéaire et une normalisation SOFTMAX des sorties constituent un cas particulier. Ils sont utilisés pour les problèmes de classification, dans lesquels les sorties du réseau doivent être non négatives et leur somme doit être strictement égale à un, ce qui permet de les utiliser comme des probabilités d'assigner le vecteur d'entrée à l'une des classes (dans le cas limite, les sorties du réseau entraîné convergent vers ces probabilités). Le nombre de sorties d'un tel réseau ne doit jamais être inférieur à deux (limitation imposée par la logique élémentaire).
Oui, à partir de la référence http://alglib.sources.ru/dataanalysis/neuralnetworks.php
Les réseaux neuronaux avec une couche de sortie linéaire et une normalisation SOFTMAX des sorties constituent un cas particulier. Ils sont utilisés pour les problèmes de classification, dans lesquels les sorties du réseau doivent être non négatives et leur somme doit être strictement égale à un, ce qui permet de les utiliser comme des probabilités d'assigner le vecteur d'entrée à l'une des classes (dans le cas limite, les sorties du réseau entraîné convergent vers ces probabilités). Le nombre de sorties d'un tel réseau est toujours au moins deux (limitation dictée par la logique élémentaire).
Ah, bien, c'est-à-dire que nous alimentons la probabilité de l'un ou l'autre résultat, par exemple la probabilité d'acheter 0,9, puis la probabilité de vendre 0,1, un tableau servira de tampon pour les probabilités d'achat, un autre pour la vente, nous les remplissons avec ces valeurs et après la formation, ils seront utilisés pour décharger séparément les probabilités d'achat et de vente, je vois, n'est-ce pas ?
En d'autres termes, nous introduisons la probabilité de l'un ou l'autre résultat, par exemple la probabilité d'achat est de 0,9, et celle de vente de 0,1. Un tableau servira de tampon pour les probabilités d'achat, et l'autre pour les probabilités de vente, et après l'entraînement, les probabilités seront éliminées séparément, je suppose que c'est correct ?
Et d'après ce que j'ai lu, je suis du même avis.
Bien que je ne sache pas quel est son avantage... ayant 1 sortie, nous obtenons également des probabilités - environ 0 (ou -1) Achat, et environ 1 Vente. (ou vice versa, selon la façon dont vous vous entraînez).
Peut-il être utile s'il y a 3 sorties ou plus ? Après tout, 1 sortie serait difficile à utiliser.... pour 3 ou 4 tâches (bien que vous puissiez également utiliser 0, 0,5 et 1 comme classes Achat, Attente, Vente)
Et d'après ce que j'ai lu, je suis du même avis.
Bien que je ne sache pas quel est son avantage... ayant 1 sortie, nous obtenons également des probabilités - environ 0 (ou -1) Achat, et environ 1 Vente. (Ou vice versa, selon la façon dont vous vous entraînez).
Cela pourrait-il être utile s'il y a 3 sorties ou plus ? Alors 1 sortie serait difficile à utiliser.... pour 3 ou 4 tâches (bien que vous puissiez également utiliser 0, 0,5 et 1 comme classes Achat, Attente, Vente)
Ouais, ils ont probablement fait en sorte qu'il soit possible d'avoir plus de 2 classes... alors il y aura probablement plus de clustering et vous pourrez utiliser d'autres méthodes comme les k-means :)