L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 97
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Continuez à ne pas vous fier à l'importance lorsque vous l'utilisez pour le forex. L'Iris est une donnée très simple, il existe des modèles directs entre les données disponibles et les classes. Il suffit à la RF de trouver un ensemble minimal de prédicteurs sur lesquels les classes d'iris peuvent être définies et le tour est joué.
Il me semble que cela ne fonctionne pas pour le marché uniquement parce que les prédicteurs sont pourris, s'il y avait des prédicteurs normaux, cela fonctionnerait comme avec l'iris avec un taux d'erreur de 95 %.
Avec les iris, c'est simple : si un pétale a une longueur comprise entre untel et untel, c'est la classe 1, et s'il a une largeur comprise entre untel et untel, c'est la classe 2, etc. Ce que fait la RF, c'est qu'elle trouve les intervalles de valeurs prédictives qui correspondent le mieux aux valeurs cibles.
Je n'ai même pas besoin de forêt pour cette tâche, un arbre suffit pour une précision de 90% :
Autrement dit, si une certaine classe correspond à un certain intervalle de valeurs prédicteurs ou à leurs combinaisons, et que ces intervalles ne se chevauchent pas, alors l'arbre ou la forêt résoudra tout à 100%.
Les dépendances sur le Forex sont beaucoup plus compliquées, et une forêt a besoin de dizaines de prédicteurs pour décrire les valeurs cibles. La forêt trouvera sûrement de tels intervalles de prédicteurs et leurs combinaisons qui décrivent les valeurs cibles, mais il s'agira simplement de combinaisons sélectionnées, sans aucune logique ni analyse. Ce que la forêt va prendre pour décider - le bruit, ou un prédicteur vraiment important - est une question de chance. La forêt pour le forex ne fonctionnera correctement que si elle élimine à l'avance les prédicteurs inappropriés et ne laisse que ceux qui sont nécessaires à l'apprentissage. Le problème est que les prédicteurs nécessaires doivent être identifiés ou trouvés d'une manière ou d'une autre, et la forêt n'est d'aucune aide à cet égard.
Je n'ai pas encore réussi à le faire.
La plupart du temps, il a fallu trier les prédicteurs avec valeur propre = 0 après cov() de la table d'entraînement (je suppose que seuls les prédicteurs spécialement corrélés sont appropriés). Après 24 heures, il s'agissait de former le modèle ForeCA lui-même, qui n'a pas été formé à cause d'une erreur :
Le paquet est très exigeant sur les prédicteurs, beaucoup de restrictions de toutes sortes. Je ne sais même pas ce que signifie la dernière erreur, je vais y regarder de plus près.
Je finirai ça plus tard :
Google dit qu'il n'est pas nécessaire de supprimer les prédicteurs. Vous pouvez les transformer de manière à ce qu'elles ne soient plus corrélées, la matrice de covariance aura alors un rang complet, ce qui est nécessaire pour ForeCA. Pour le blanchiment, il y a quelques fonctions dans le paquet lui-même (cela n'a pas fonctionné tout de suite, vous devez les découvrir), plus la théorie dans les liens ci-dessous.
Pour utiliser correctement le paquet ForeCA, vous devez d'abord comprendre et apprendre à le faire :
http://stats.stackexchange.com/questions/23420/is-whitening-always-good
http://courses.media.mit.edu/2010fall/mas622j/whiten.pdf
1) La forêt forex ne fonctionnera correctement que si vous éliminez à l'avance les prédicteurs inadaptés et ne laissez que les prédicteurs nécessaires pour la formation. Le problème est que les bons prédicteurs doivent être identifiés ou trouvés, et la forêt n'est d'aucune aide à cet égard.
2) Le paquet est très exigeant pour les prédicteurs, il y a de nombreuses limitations. Je ne sais même pas ce que signifie la dernière erreur, je vais y regarder de plus près.
1) J'ai proposé ce que je pense être une assez bonne idée pour faire une telle sélection, mais personne n'est intéressé, et je ne peux pas l'implémenter moi-même.
2) Je ne peux pas le faire moi-même. 2) Vous pouvez seulement réduire la quantité de données, sinon vous le saurez vous-même).
J'ai déjà posté ce message mais personne n'a réagi, je vais réessayer.
J'ai déjà posté ce message mais personne n'a réagi, je vais réessayer. Il existe une notion dans BP appelée dynamic time warping (DTW), vous pouvez l'utiliser pour rendre le graphique des prix plus lisible et donc plus reconnaissable pour l'algorithme.
et tout semble être cool, mais ce qui est triste c'est qu'à la suite de cette transformation, nous obtenons deux coordonnées x et y temps(synthétique) et valeurs
la question est de savoir comment retourner cette transformation en un vecteur pour qu'elle ne perde pas ses propriétés
voici à quoi cela ressemble - en haut ordinaire, en bas dtw
1) J'ai suggéré ce que je pensais être une idée suffisamment bonne pour faire une telle sélection, mais personne n'est intéressé, et je ne peux pas la mettre en œuvre moi-même.
2) Réduire uniquement la quantité de données ou vous le savez vous-même)
Que suggérez-vous ? Il s'avère que j'ai manqué quoi ? Puis-je répéter votre idée ?
laquestion est de savoir comment ramener cette transformation à un vecteur normal sans perdre ses propriétés
J'ai fait un autre exemple avec ForeCA, en archivant un petit tableau pour le test et le code pour travailler avec.
Cette fois, j'ai bien fait les choses.
Vous pouvez utiliser votre propre tableau avec des données d'entraînement pour le modèle, l'essentiel étant qu'il s'agisse d'une matrice, sans facteurs (pour l'entraînement avec lm, vous pouvez utiliser la régression uniquement). Le nombre de lignes doit être beaucoup plus élevé que le nombre de prédicteurs, sinon il y aura des erreurs dans ForeCA.
J'ai des valeurs cibles de 0 et 1, avec d'autres la précision ne sera pas déterminée correctement, si cela, veuillez corriger le code dans RegressionToClasses01(regr) pour votre cas à l'endroit où le résultat de la régression est arrondi aux classes.
trainData - données pour la formation
trainDataFT - données pour le test frontal
Résultat :
lm sur les données brutes : 75% de précision sur les données d'entraînement et 57% sur les nouvelles données.
lm sur l'ensemble des 14 composants de foreCA : 75% sur les données d'entraînement et 61% sur les nouvelles données. Légèrement mieux, mais dans ce cas +4% ne représente que +1 résultat correct, le tableau est assez petit :)
En d'autres termes, si les prédicteurs sont déjà présélectionnés, la situation ne devrait pas être pire après ForeCA, peut-être même ajouter quelques points de pourcentage à la précision.
J'ai également ajouté un graphique avec la dépendance de la précision en fonction du nombre de composants ForeCA. Il semble que plus le nombre de composants est élevé, plus les résultats sont précis. Nombre maximal autorisé de composantes = nombre de prédicteurs.
La deuxième partie de l'expérience est.
J'avais 14 prédicteurs sélectionnés précédemment, j'en ai ajouté 14 autres avec des valeurs aléatoires. Le nombre maximal autorisé de composants ForeCA est désormais de 28.
La précision de prédiction avec les 28 composants sur les données d'entraînement dans les deux cas (avec et sans foreCA) est de 76%, la précision sur les nouvelles données dans les deux cas est de 57%.
Je ne pense pas que foreCA ait fait face à des prédicteurs de mauvaise qualité, je n'ai pas vu le miracle attendu.
Et alors ?