L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 88
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
Yur, faites une version normale du programme (ou améliorée) pour les gens))))
1. qu'il lise les fichiers standards de ce type - en-tête (avec et sans guillemets), données, délimiteurs ; qu'il mange zpt, point.zpt, tabulation. Exemple -
"Date";"V1";"A77";"V23A";"Целевая"
01.01.2000;4.999995E-03;1.499891E-03;-2.000213E-03;-5.000234E-03;1
2. n'utiliser que 10 entrées pour le modèle, mais faire en sorte qu'il soit possible d'en charger un grand nombre.
dans un onglet séparé, ou définir des plafonds (vous sélectionnez les entrées), ou autre.
3. sans normalisation ! (ou désactivé), car si les données sont initialement centrées sur 0, après conversion
x-x.min/....(ou ce que vous avez) - s'envoler)))
4. éliminer le caractère aléatoire (ou commutable), laisser le système diviser les données en deux parties, compter dans l'ordre et sortir le % de prédictions réussies pour 1 (pour 0, ne pas le faire).
5.fait l'importance des intrants - bien !
6.Let en plus de la formule qui est sortie, sortir le plein !, c'est-à-dire maintenant
double x2 = 2,0 * (v5 + 1,0) / 2,0 - 1,0 ;
double décision = -0.2632437547312642 -0.2634178652535958 * x2
+ 0.05267978803936412
nous devons -
Nom cible = -0.2632437547312642 -0.2634178652535958 * insertion construction x2= (2.0 * (v5 + 1.0) / 2.0 - 1.0)
+ 0.05267978803936412
on obtient -
Nom cible = -0.2632437547312642 -0.2634178652535958 * (2.0 * (v5 + 1.0) / 2.0 - 1.0)
+ 0.05267978803936412
Vous obtiendrez un appareil quelque peu utilisable pour des tests rapides. Ensuite, vous pouvez toujours insérer etc, simple (pas gourmand)
des algorithmes, avec un choix... Sinon, l'outil est inutile. Pendant que le fichier est édité, ceci et cela... C'est plus facile d'utiliser autre chose...
Où est la version 7 ?
Pas mal, mais pas assez de cervelle et de temps.
Il faut commencer par la variable cible, puis la faire correspondre à des prédicteurs, et enfin les vérifier avec les mathématiques, pour ainsi dire. Bref, le processus est fastidieux et je ne sais pas comment le formaliser.
4. éliminer le caractère aléatoire (ou le désactiver), laisser le système diviser les données en deux parties, compter dans l'ordre et sortir le % de prédictions réussies pour 1 (pas besoin de 0).
Si vous essayez d'utiliser jPrediction pour le forex, c'est probablement la principale chose à ajouter. Il existe de nombreux modèles capables de diviser les données de manière aléatoire en deux parties, de s'entraîner sur la première et d'obtenir de bons résultats sur la seconde. Mais la plupart de ces modèles seront inefficaces sur de nouvelles données. Il n'y a pas de dépendances constantes dans le Forex, de bons résultats sur un échantillon de test aléatoire ne garantissent pas de bons résultats sur de nouvelles données. La seule façon de s'assurer qu'un modèle est adapté au forex est de procéder à un test de roulage :
Le modèle doit montrer une bonne capacité de prédiction sur les données marquées en rouge. Maintenant, dans jPrediction, un tel test doit être fait manuellement en réintroduisant les données pour chaque cas de test, ce qui n'est pas bon pour un travail sérieux.
Et je suis d'accord pour dire qu'il est préférable d'afficher un score uniquement pour les données de test plutôt qu'un total pour la formation et le test.
Toutes les notes que jPrediction produit maintenant sont inadéquates pour le forex, et seulement trompeuses.
Voici d'ailleurs comment le roll forward est fait dans le paquet caret pour R :
http://topepo.github.io/caret/splitting.html(section Fractionnement des données pour les séries chronologiques)
Le modèle sera entraîné sur les 1000 premiers échantillons, puis testé sur les échantillons 1001-1300. Ensuite, passez à 300, entraînez 301-1300, testez 1301-1600, etc. jusqu'à ce que vous soyez à court d'exemples d'entraînement.
Yur, faire une version normale du prog (ou améliorée) pour les gens))))
1. qu'il lise les fichiers standards de ce type - en-tête (avec ou sans guillemets), données, délimiteurs ; qu'il hâte zpt, tchk.zpt, tabulation. Exemple -
2. ne peut utiliser que 10 entrées pour le modèle, mais permet d'en charger un grand nombre, alors
Dans un onglet séparé, vous pouvez mettre des marqueurs (vous sélectionnez les entrées) ou autre chose.
3. sans normalisation ! (ou désactivé), car si les données sont initialement centrées sur 0, après conversion
x-x.min/....(ou ce que vous avez) - s'envoler)))
4. éliminer le caractère aléatoire (ou commutable), laisser le système diviser les données en deux parties, compter dans l'ordre et sortir le % de prédictions réussies pour 1 (pour 0, ne pas le faire).
5.fait l'importance des intrants - bien !
6. qu'en plus de la formule qui est sortie, qu'il sorte le plein !, c'est-à-dire maintenant
7. Où est la version 7 ?
Si quelqu'un n'aime pas beaucoup quelque chose dans jPrediction, le projet est ouvert à l'Open Source sous la licence GNU GPL et faire des forks à partir de celui-ci, changer et modifier quelque chose là, n'est pas seulement interdit, mais dans une certaine mesure même bienvenu.
Si vous essayez d'utiliser jPrediction pour le forex, c'est probablement la principale chose à ajouter. Il existe de nombreux modèles capables de diviser les données de manière aléatoire en deux parties, de s'entraîner sur la première et d'obtenir de bons résultats sur la seconde. Mais la plupart de ces modèles seront inefficaces sur de nouvelles données. Il n'y a pas de dépendances constantes dans le Forex, de bons résultats sur un échantillon de test aléatoire ne garantissent pas de bons résultats sur de nouvelles données. La seule façon de s'assurer qu'un modèle est adapté au forex est de procéder à un test de roulage :
Le modèle doit montrer une bonne capacité de prédiction sur les données marquées en rouge. Maintenant, dans jPrediction, un tel test doit être fait manuellement en réintroduisant les données pour chaque cas de test, ce qui n'est pas bon pour un travail sérieux.
Et je suis d'accord pour dire qu'il est préférable d'afficher un score uniquement pour les données de test plutôt qu'un total pour la formation et le test.
Toutes les notes que jPrediction donne maintenant sont inadéquates pour le forex, et seulement trompeuses.
Voici d'ailleurs comment le roll forward est fait dans le paquet caret pour R :
http://topepo.github.io/caret/splitting.html(section Fractionnement des données pour les séries chronologiques)
Le modèle sera entraîné sur les 1000 premiers échantillons, puis testé sur les échantillons 1001-1300. Puis on passe à 300, on s'entraîne à 301-1300, on teste à 1301-1600, etc. jusqu'à épuisement des exemples d'entraînement.
Toutes les estimations que jPrediction donne maintenant sont inadéquates pour le forex, et seulement trompeuses.
Ce sont des allégations non fondées, c'est-à-dire ce que l'on appelle communément des conneries. Pour démontrer l'efficacité de Walk Forward, veuillez fournir des résultats comparatifs de modèles dérivés dans jPrediction et de modèles dérivés après Walk Forward, de manière à ce qu'ils puissent être vérifiés par recoupement. Si ces résultats confirment vos dires, il serait alors judicieux de remplacer l'algorithme de test actuellement implémenté dans jPrediction par Walk Forward.
J'ai constaté à plusieurs reprises que des idées apparemment "évidentes", après avoir été mises en œuvre et testées par l'expérience, se révèlent "vides". Seule une très petite partie des idées est efficace, et souvent seulement après une édition supplémentaire avec un "fichier". C'est parce que les détails des idées manquent. Et le diable se cache dans ces détails.
Linus Torvald (créateur du noyau Linux) ne se lasse pas de répéter : "Tôt ou tard, la théorie rencontre la pratique. Et la pratique est toujours le critère de la vérité. Toujours !".
Un problème supplémentaire avec Walk Forward est que nous recevons beaucoup de modèles à chaque étape. Lequel de ces modèles doit être conservé comme modèle de travail et selon quels critères doit-il être sélectionné ?
Il s'agit d'affirmations non fondées, c'est-à-dire de ce que l'on appelle communément des conneries. Pour démontrer l'efficacité du Walk Forward, veuillez fournir des études comparatives des modèles jPrediction et des modèles post-Walk Forward afin qu'ils puissent être vérifiés par recoupement. Si ces résultats confirment vos dires, il serait alors judicieux de remplacer l'algorithme de test actuellement implémenté dans jPrediction par Walk Forward.
J'ai constaté à plusieurs reprises que des idées apparemment "évidentes", une fois mises en œuvre et testées par l'expérience, se révèlent "vides". Seule une très faible proportion d'idées sont efficaces, et souvent seulement après une nouvelle révision du "dossier". C'est parce que les détails des idées manquent. Et le diable se cache dans ces détails.
Linus Torvald (créateur du noyau Linux) ne se lasse pas de répéter : "La théorie rencontre la pratique tôt ou tard. Et la pratique s'avère toujours être le critère de la vérité. Toujours !".
Un problème supplémentaire avec Walk Forward est que nous recevons beaucoup de modèles à chaque étape. Lequel de ces modèles doit être conservé comme modèle de travail et selon quel critère doit-il être sélectionné ?
Il n'y a pas besoin de se disputer. Nous travaillons sur un sujet de recherche très complexe. Il y a beaucoup d'hypothèses. Et ces hypothèses conduisent à un sur-apprentissage et à un sous-échantillonnage.
Deux règles simples : trompez le marché, ne vous trompez pas vous-même.
La marche en avant est bien sûr une bonne méthode. Mais les principaux paramètres sont la profondeur d'apprentissage et la durée des tests. En même temps ( !!!) si ces paramètres sont ajustés de telle manière que le résultat sur la position avant devient meilleur, nous allons surentraîner la marche avant ! C'est-à-dire que sur un gros morceau, nous effectuons de manière répétée l'optimisation Walk Forward. Sur un autre morceau non chevauchant, nous essayons les meilleurs paramètres de marche en avant sur "formation" et nous exécutons un autre loup en avant complet, mais nous ne le faisons qu'une fois. Si le résultat est bon, alors le modèle capte les dépendances. Si le résultat est mauvais, alors nous avons simplement réentraîné Walk Forward sur un modèle moins bon.
Il y a le même problème avec les tests uniques sur un échantillon retardé. J'y travaille maintenant : libérer mes résultats du surentraînement. Les résultats de la validation croisée doivent être en corrélation avec l'échantillon différé pour le test final. Cela dit, la sélection du meilleur modèle par validation croisée donnera approximativement les meilleurs résultats hors échantillon. Sinon, s'il n'y a pas de corrélation ou une corrélation négative, nous avons un modèle inadéquat pour le forex qui doit être modifié.
Ce sont des allégations non fondées, c'est-à-dire ce que l'on appelle dans le langage courant des conneries. Afin de prouver l'efficacité de Walk Forward, veuillez présenter les résultats des études comparatives des modèles jPrediction et des modèles post-Walk Forward sous une forme qui puisse être vérifiée par recoupement. Si ces résultats confirment vos dires, il serait alors judicieux de remplacer l'algorithme de test actuellement implémenté dans jPrediction par Walk Forward.
J'ai constaté à plusieurs reprises que des idées apparemment "évidentes", une fois mises en œuvre et testées par l'expérience, se révèlent "vides". Seule une très faible proportion d'idées sont efficaces, et souvent seulement après une nouvelle révision du "dossier". C'est parce que les détails des idées manquent. Et le diable est dans ces détails.
Linus Torvald (créateur du noyau Linux) ne se lasse pas de répéter : "La théorie rencontre la pratique tôt ou tard. Et la pratique s'avère toujours être le critère de la vérité. Toujours !".
Un problème supplémentaire avec Walk Forward est que nous recevons beaucoup de modèles à chaque étape. Lequel de ces modèles doit être conservé comme modèle de travail et selon quel critère doit-il être sélectionné ?
Ça ne vaut pas la peine de se battre pour ça.
Je suis d'accord. Mais cela nécessite de minimiser le nombre d'accusations non fondées dans le fil de discussion. La meilleure option est de donner les résultats d'études comparatives avec la possibilité d'une double vérification.
Nous travaillons sur un projet de recherche très complexe.
Certains travaillent et d'autres se tournent les pouces sans preuve (ne montrons pas du doigt).
Cela ne vaut pas la peine de se battre.
Je suis d'accord.
Il y a beaucoup d'hypothèses ici. Et ces hypothèses conduisent à une suréducation et à un effondrement hors échantillon.
Tu ne peux pas mettre des hypothèses sur ton pain et les mettre dans ta poche. Il faut donc tout vérifier de manière empirique, plutôt que de faire des hypothèses non prouvées, afin de ne pas marcher sur le râteau du surentraînement et de l'effondrement hors échantillon.
La marche en avant est bien sûr une bonne méthode. Mais les principaux paramètres sont la profondeur d'apprentissage et la durée des tests. En même temps ( !!!) si nous traitons ces paramètres de manière à ce que le résultat sur la voie avant devienne meilleur, nous allons surentraîner la marche avant ! C'est-à-dire que sur un gros morceau, nous effectuons de manière répétée l'optimisation Walk Forward. Sur un autre morceau non chevauchant, nous essayons les meilleurs paramètres de Walk Forward sur "training" et l'exécutons une fois de plus. Si le résultat est bon, alors le modèle reprend les dépendances. Si le résultat est mauvais, nous avons simplement réentraîné Walk Forward sur un modèle moins bon.
Le même problème se pose avec le test unique sur un échantillon retardé. J'y travaille maintenant : libérer mes résultats du surentraînement. Les résultats de la validation croisée doivent être en corrélation avec l'échantillon différé pour le test final. Cela dit, la sélection du meilleur modèle par validation croisée donnera approximativement les meilleurs résultats hors échantillon. Sinon - s'il n'y a pas de corrélation ou si elle est négative - nous avons un modèle inadéquat pour le forex qui doit être changé.
En fin de compte, toutes les méthodes présentent des avantages et des inconvénients. Les suppositions exagèrent les mérites et négligent les démérites.
Un point encore plus important est qu'aucune méthode ne permet de sélectionner les modèles selon le meilleur critère de qualité, et que toutes les méthodes sélectionnent selon le principe du rejet - en ne filtrant que les modèles sciemment inadaptés. Aucune méthode de ML ne peut calculer l'adéquation potentielle de ce qui reste après le rejet.
Surtout dans les environnements non stationnaires. Il est possible de sélectionner les modèles apparemment les plus appropriés en termes de généralisabilité, mais demain, lors d'une réunion, un responsable de la Banque centrale pète un plomb et tous les modèles s'envolent.
Le fait est que toutes les méthodes ont des avantages et des inconvénients. Les suppositions exagèrent les mérites et négligent les démérites.
Un point encore plus important est qu'aucune méthode ne sélectionne les modèles selon le meilleur critère de qualité, et que toutes les méthodes sélectionnent selon le principe du rejet - en ne filtrant que ce que l'on sait être inadapté. Aucune méthode de ML ne peut calculer la valeur potentielle de ce qui reste après le rejet.
D'autant plus dans les environnements non stationnaires. Il semblerait possible de sélectionner les modèles les plus adaptés en termes de généralisabilité, mais demain, un patron de banque centrale fera un pet et tous les modèles tomberont à l'eau.