L’apprentissage automatique comme filtre
La leçon 69 a laissé une grille à cette page. Six hyperparamètres à cinq valeurs chacun font 15 625 configurations, une grille qu’un débutant qualifierait de modeste, et l’arithmétique de la leçon 64 dit qu’une recherche de cette largeur, jugée sur 156 transactions, fabrique 0,318 R par transaction avant que le marché ait fait quoi que ce soit. C’est l’objection habituelle à l’apprentissage automatique en trading et c’est celle à laquelle on peut répondre : comptez la grille, relevez la barre de 1,645 à 4,507 et regardez si le modèle passe. L’objection à laquelle on ne peut pas répondre ainsi ne contient aucun modèle. Un filtre ne crée pas de transactions, il en retire, il ne peut donc jamais vous rendre que les perdants qu’il a réussi à attraper, et une stratégie qui a l’air bonne n’en a presque aucun à attraper. La règle gagnante de la leçon 63 compte six gagnants et un perdant. Un filtre aussi bon pour garder les gagnants que pour rejeter les perdants devrait avoir raison sur 96,04 pour cent des transactions non vues rien que pour ne rien perdre sur cette règle, et un filtre parfait, qui attrape l’unique perdant et ne touche à rien d’autre, l’améliorerait de 4,30 pour cent.
Prérequis : Leçon 64, pour la formule du maximum attendu et la barre que fixe un décompte de configurations, leçon 63, pour les sept transactions que cette page démonte, et leçon 17, pour les deux nombres dont un facteur de profit est fait.
Ce que coûte une grille avant d’avoir vu un prix
Une règle a des paramètres et la leçon 64 les a comptés. Un modèle a des hyperparamètres, ce qui est la même chose sous un autre nom, et il a une dimension qu’une règle n’a pas : quelles caractéristiques entrent dedans. Les deux se multiplient, et l’arithmétique qui chiffre une recherche ne se soucie pas de savoir laquelle est laquelle. Elle compte des configurations, et le décompte est connu avant que rien ne tourne.
Prenez la grille que l’annonce a laissée. Six hyperparamètres à cinq valeurs chacun font 15 625, et la substitution est écrite en entier pour que rien ici n’ait à être cru sur parole. Un divisé par 15 625 fait 0,0000640, et la valeur de la loi normale centrée réduite qui laisse cela dans la queue supérieure est 3,83028. Ensuite 15 625 fois e font 42 473, un divisé par cela fait 0,0000235, et sa valeur normale est 4,06963. En pondérant les deux par 0,4228 et 0,5772 on obtient 3,96843, qui est un t. Divisez par la racine carrée de 156, soit 12,49, et l’avantage fabriqué est 0,318 R par transaction. La barre qu’une recherche de cette largeur doit franchir pour que seules cinq pour cent des recherches sans valeur la battent est à 4,507.
Maintenant la dimension que personne ne compte. Un menu de vingt caractéristiques assorti de l’instruction d’en choisir trois à six est la forme habituelle de cet exercice, et cette instruction se lit comme une simplification. C’est une recherche. Choisir exactement quatre parmi vingt fait 4 845 modèles distincts, en choisir trois à six en fait 60 249, et le menu était écrit avant que vous commenciez : le décompte est donc disponible pour qui le veut. Multipliez le chiffre de quatre parmi vingt par la grille d’hyperparamètres et le travail d’un après-midi fait 75 703 125 configurations.
| Ce que vous avez fait varier | Configurations | Barre à cinq pour cent | R par transaction fabriqué sur 156 transactions |
|---|---|---|---|
| Trois hyperparamètres, cinq valeurs chacun | 125 | 3,346 | 0,209 |
| Quatre hyperparamètres, cinq valeurs chacun | 625 | 3,769 | 0,250 |
| Six hyperparamètres, cinq valeurs chacun | 15 625 | 4,507 | 0,318 |
| Quatre caractéristiques choisies dans un menu de vingt | 4 845 | 4,252 | 0,295 |
| Les deux dernières ensemble | 75 703 125 | 6,061 | 0,453 |
La dernière ligne est le décompte honnête d’un après-midi, et 6,061 est un t que quelques centaines de transactions ne produiront pas, si bonne que fût l’idée. Lisez tout de même la troisième colonne de haut en bas et la forme est plus douce que cela n’en a l’air : passer de 15 625 configurations à 75 703 125, c’est 4 845 fois plus de recherche et cela déplace la barre de 1,554. La pénalité croît avec le logarithme du décompte, et cela coupe du côté que personne ne mentionne. Vous n’avez pas besoin d’un modèle à la mode pour être gravement exposé. Quatre hyperparamètres et aucune sélection de caractéristiques sont déjà à 3,769.
Supposez donc que vous fassiez tout cela correctement. Supposez que vous comptiez la grille, franchissiez la barre et teniez en main un modèle qui classe vraiment vos propres configurations mieux que le hasard. Le reste de cette page porte sur la question de savoir si cela vaut quelque chose, et il n’a besoin d’aucun décompte, d’aucune simulation et d’aucune hypothèse sur les marchés.
Posez-le comme l’argent fonctionne réellement. Un filtre ne trouve pas de nouvelles transactions. Il se pose sur les configurations que votre méthode produit déjà et en retire certaines : la comparaison honnête est donc le profit total sur les mêmes occasions initiales, et non le profit par transaction prise. Écrivez votre taux de réussite p et votre gain b, tous deux issus de la leçon 17, de sorte qu’un gagnant paie b et qu’un perdant coûte un. Que le filtre garde une fraction s des gagnants et rejette correctement une fraction t des perdants. Par transaction initiale il renonce à p fois un moins s fois b, et il économise un moins p fois t. Il vaut la peine quand le second est au moins le premier :
(1 − p) t ≥ p (1 − s) b
Divisez cela de deux façons et il dit deux choses utiles et différentes. Divisez par p fois un moins s et les perdants que le filtre jette doivent être plus nombreux que les gagnants qu’il jette d’au moins b, votre ratio de gain, ce qui est un test que vous pouvez mener sur un journal de transactions avec deux comptages et aucune statistique. Divisez plutôt par un moins p et le membre de droite devient p b sur un moins p, c’est-à-dire le profit brut sur la perte brute, la quantité qu’on appelle d’ordinaire le facteur de profit et le seul nom nouveau de cette page. Ce sont les deux nombres de la leçon 17 écrits comme un seul.
Si le modèle est aussi bon dans les deux sens, de sorte que s et t soient le même nombre a, la condition se ramène à un seuil sur la seule exactitude : a doit valoir au moins le facteur de profit divisé par un plus le facteur de profit. Retourné, un filtre d’exactitude a gagne sa place sur toute stratégie dont le facteur de profit est inférieur à a divisé par un moins a.
À 52 pour cent d’exactitude, sur toute stratégie dont le facteur de profit est inférieur à 1,08.
À 55 pour cent, inférieur à 1,22.
À 60 pour cent, inférieur à 1,50.
À 65 pour cent, inférieur à 1,86.
Cinquante-deux pour cent n’est pas un chiffre de remplissage. Gu, Kelly et Xiu ont mesuré toute cette famille de modèles hors échantillon sur des rendements mensuels de milliers d’actions, et leur meilleur réseau a atteint un R carré mensuel hors échantillon d’environ quatre dixièmes de un pour cent. Traduisez cela dans la langue de cette page : sous une loi normale bivariée, la probabilité que le signe d’une prévision coïncide avec le signe du résultat vaut un demi plus l’arc sinus de la corrélation, divisé par pi ; la corrélation est la racine carrée du R carré, soit 0,0632, et l’exactitude est de 52,01 pour cent. Le meilleur résultat publié du domaine est un filtre pour des stratégies dont le facteur de profit est inférieur à 1,08.
Presque personne, parmi ceux qui ont ajusté un modèle à leurs propres transactions, n’a divisé son profit brut par sa perte brute et posé les deux nombres côte à côte. Ce sont deux sommes prises sur un journal de transactions et une division, et c’est là toute la décision.
La feuille que ce module construit depuis la leçon 62 ne gagne pas de neuvième colonne. C’est ici qu’elle est dépensée, les huit d’un coup, sur la seule règle que le cours suit depuis la leçon 63.
La feuille, dépensée sur une règle
La leçon 63 a passé au crible 253 configurations de moyennes mobiles sur soixante clôtures et a gardé une moyenne à 2 barres contre une à 5 : sept transactions, 10,70 par action brut, 9,84 après frais, contre 5,68 pour la détention. Remplissez les huit colonnes et la feuille se lit ainsi.
La phrase, de la leçon 62 : passez acheteur quand la moyenne à 2 barres des clôtures croise au-dessus de celle à 5, revenez à plat quand elle recroise en dessous, exécutez à la clôture suivante.
La paire, de la leçon 63 : 4,16 au-dessus de la référence, contre 52,5 pour cent de recherches sans structure qui rendent 4,16 ou plus.
La barre et le décompte, de la leçon 64 : 253 cellules, une barre de 3,537, un t de 3,65, qui la franchit jusqu’à ce que vous fixiez un nombre minimal de transactions, moment où la fraction va de 0,68 pour cent avec un plancher de sept à 50,48 pour cent avec un plancher de deux.
Les transactions fixées d’avance, de la leçon 65 : vide. Les sept sont celles qui ont eu lieu.
La part d’exposition, de la leçon 66 : 0,5085, et sur les 10,70 bruts le marché en a fourni 2,95.
La profondeur à laquelle arrêter, de la leçon 67 : vide.
La capacité, de la leçon 68 : une transaction moyenne de 0,9101R fait 1,4055 par action, ce qui sur un prix voisin de 103 fait 136 points de base, donc dans la small cap de la leçon 68 la transaction tient 1 390 545 dollars et la meilleure position individuelle est 618 020.
Le plafond de position et son intervalle de vérification, de la leçon 69 : vide.
Trois cases vides, et une deuxième colonne dont les deux chiffres sont à l’envers. Voilà le verdict, et il arrive avant que la feuille soit à moitié lue. Parcourez-la quand même jusqu’au bout, car la question de cette page n’est pas de savoir si la règle vaut quelque chose. Elle est de savoir si un modèle pourrait l’améliorer, et cette question a une réponse même pour une règle qui ne vaut rien.
Les sept transactions nettes de frais valent 2,577, 1,877, 2,377, 1,377, moins 0,423, 1,177 et 0,877. Six gagnants totalisant 10,262 et un perdant de 0,423 : le facteur de profit est donc 24,26, le gagnant moyen 1,1075R, le perdant moyen 0,2739R et le ratio de gain 4,04. Mettez maintenant les autres colonnes de la feuille au travail et regardez ce qui se passe à mesure que chacune s’applique. La dernière ligne du tableau ci-dessous est le modèle nul de la leçon 63, recalculé pour cette page : les 59 mouvements d’une barre à l’autre tirés avec remise, 4 000 séries à partir de la graine 20260903, la même recherche de 253 cellules sur chacune, au même plancher de sept transactions que le gagnant respectait, et le facteur de profit de la cellule qui l’emporte. Sa médiane est 2,34, et 3,08 pour cent de ces recherches sans structure rendent un gagnant dont le facteur de profit atteint 24,26 ou plus.
| Ce qui a été retranché | Facteur de profit | Exactitude qu’un filtre doit dépasser | Le maximum qu’un filtre parfait pourrait ajouter |
|---|---|---|---|
| Rien | 36,67 | 97,35 % | 2,80 % |
| Les frais, selon la convention de la leçon 63 | 24,26 | 96,04 % | 4,30 % |
| Les frais, et la part du marché venue de la leçon 66 | 14,22 | 93,43 % | 7,57 % |
| Ce que la même recherche rend sur rien, médiane | 2,34 | 70,01 % | 74,91 % |
La quatrième colonne est celle sur laquelle il faut s’arrêter, et c’est un second nombre pur qui tombe de la même inégalité. Un filtre parfait retire tous les perdants et garde tous les gagnants : le maximum qu’il puisse ajouter est donc la perte brute entière, et rapporté à ce que la stratégie gagne déjà net, cela fait un divisé par le facteur de profit moins un. Sur cette règle, 4,30 pour cent. Pas 4,30 pour cent si le modèle est bon : 4,30 pour cent si le modèle est parfait, parce qu’il n’y a qu’un perdant dans l’historique et qu’il vaut 0,423 sur 9,839.
Lisez les deux colonnes du milieu ensemble, de haut en bas, et elles vont en sens contraires pour la même raison. À mesure que le facteur de profit se dégonfle vers la vérité — les frais d’abord, puis la part du marché, puis ce qu’une recherche de la même largeur rend sur des données qui ne contiennent rien —, l’exactitude qu’il faut au filtre tombe de 97,35 pour cent à 70,01, et le gain possible monte de 2,80 pour cent à 74,91. La recherche a fabriqué l’avantage et, du même mouvement, la raison pour laquelle aucun modèle ne pouvait l’améliorer.
Un filtre ne peut que vous rendre vos perdants, et une bonne stratégie n’en a presque aucun.
C’est pourquoi la dernière ligne compte plus qu’il n’y paraît. Un facteur de profit de un, c’est une stratégie d’espérance exactement nulle, et là le seuil est à cinquante pour cent et un filtre à 52 pour cent vaut vraiment la peine. Comptez-le sur trois cents transactions à un gain de deux : cent gagnants qui paient deux et deux cents perdants qui coûtent un font zéro. Gardez 52 des gagnants et 96 des perdants et vous avez 104 moins 96, soit 8R sur les trois cents initiales, ou 0,027 R par transaction. Le filtre n’améliore pas la stratégie. Il est toute la stratégie, et elle est petite. Montez à un facteur de profit de deux et ce même filtre à 52 pour cent retire 0,22 R par transaction à une stratégie qui en fait 0,50.
Alors additionnez vos gagnants, additionnez vos perdants, divisez, et lisez la réponse comme l’exactitude que tout filtre doit dépasser avant que vous le construisiez.
Ce que cela ne règle pas
Que le filtre soit équilibré. Le seuil d’exactitude suppose que le modèle est exactement aussi bon pour garder les gagnants que pour rejeter les perdants, et l’inégalité dont il vient ne suppose rien de tel : elle demande seulement que la spécificité divisée par un moins la sensibilité dépasse le facteur de profit. Un modèle réglé durement vers le rejet des perdants, quitte à garder presque tous les gagnants qu’on lui montre, peut franchir cette barre à une exactitude globale bien inférieure au seuil, et c’est la direction dans laquelle il vaut la peine de construire. Cette page imprime le nombre équilibré parce que c’est celui qu’un classifieur rapporte par défaut, ce qui est une affirmation sur les logiciels et non sur les marchés.
Que les transactions gardées par le filtre paient ce qu’auraient payé celles qu’il jette. Si le modèle garde de préférence les gros gagnants, l’arithmétique s’améliore et le seuil baisse, et un modèle qui classe les transactions par taille attendue plutôt qu’il ne les trie par signe est un objet différent et meilleur que celui chiffré ici. La page chiffre un classifieur parce qu’un classifieur est ce que les gens construisent, et parce que le chiffre d’exactitude que cite le domaine n’est défini que pour un classifieur.
Qu’un facteur de profit calculé sur sept transactions soit un nombre. C’est un rapport de deux sommes, et l’une de ces sommes n’a qu’un terme. Si l’unique transaction perdante de la leçon 63 avait coûté 1,423 au lieu de 0,423, le facteur de profit vaudrait 7,21, le seuil 87,82 pour cent et le gain possible 16,10 pour cent, pour la même règle sur les mêmes clôtures. Sur quelques centaines de transactions le rapport se stabilise, mais il n’est jamais précis, et la deuxième décimale de tout seuil calculé à partir de lui est un ornement.
Que 52 pour cent soit la bonne référence pour votre modèle. Gu, Kelly et Xiu prévoient des rendements mensuels sur une coupe transversale de milliers d’actions avec près de cent prédicteurs, ce qui est un autre problème que noter des configurations que votre propre méthode a déjà produites : ils ont infiniment plus de données et aucun accès à votre règle d’entrée, et pour vous c’est l’inverse. Le chiffre est sur cette page comme vérification de l’ordre de grandeur qu’atteignent les meilleurs travaux du domaine, et il ne prédit pas ce que fera votre propre classifieur.
Que les configurations soient dénombrables. C’est la concession de la leçon 64 et un modèle l’aggrave au lieu de l’alléger. Les hyperparamètres que vous avez tapés dans une grille sont dénombrables. La caractéristique que vous avez construite, tracée, trouvée médiocre et supprimée ne l’est pas, pas plus que la cible que vous avez redéfinie du sens de la barre suivante au sens des trois suivantes parce que la première refusait de s’entraîner. Chaque réentraînement sur des données fraîches est une configuration de plus, et un calendrier qui réentraîne tous les mois pendant deux ans en a discrètement fait tourner vingt-quatre autres.
Et la concession qui coûte le plus : cette page a chiffré un modèle et n’a rien dit sur la possibilité qu’un modèle ait raison pour une raison. Un filtre qui refuse les transactions prises dans les quinze premières minutes parce que vos perdants s’y regroupent est une règle, il s’écrit en une ligne, et il compte pour une seule configuration avec une barre à 1,645. Ce que l’arithmétique de cette page pénalise, ce n’est pas d’apprendre quelque chose de votre propre historique. C’est d’en apprendre beaucoup et de garder le meilleur, ce qui est précisément ce qu’est l’ajustement d’un modèle. La leçon 71 ouvre le module portefeuille en demandant ce que quatre règles achètent qu’une seule n’achète pas, mesure la corrélation entre règles au lieu de la supposer, et trouve que les 14,7 mois chiffrés par la leçon 67 tombent à 14,1 et non à 3,7.
Exercices
- Comptez votre grille. Prenez le dernier modèle que vous avez ajusté, ou le dernier qu’on vous a montré, et comptez-le correctement : chaque valeur d’hyperparamètre essayée, multipliée, puis multipliée encore par le nombre de sous-ensembles de caractéristiques envisagés. Lisez la barre dans le premier tableau ci-dessus ou calculez-la à partir du décompte. Dix minutes, et vous finissez avec un nombre, le t que votre modèle devait dépasser, qui n’est presque certainement pas 1,645.
- Calculez votre propre seuil. Prenez vos deux cents dernières transactions, additionnez tout ce qu’ont rapporté les gagnants, additionnez tout ce qu’ont coûté les perdants, et divisez le premier par le second. Une demi-heure, et vous finissez avec un nombre, votre facteur de profit, dont l’exactitude qu’un filtre doit dépasser est ce nombre divisé par un plus lui, et dont le maximum qu’un filtre parfait pourrait ajouter est un divisé par ce nombre moins un.
- Mesurez le filtre que vous pourriez réellement construire. Coupez votre journal dans l’ordre du temps. Sur la première moitié, choisissez une caractéristique dont vous pouvez donner la raison en une phrase et trouvez l’unique seuil dessus qui sépare le mieux vos gagnants de vos perdants. Appliquez ce seuil unique, inchangé, à la seconde moitié, et comptez deux choses : combien de perdants il a jetés et combien de gagnants. Une soirée, et vous finissez avec un nombre, le rapport du premier comptage au second, qui doit dépasser votre ratio de gain avant que le filtre le plus simple que vous puissiez construire vaille quoi que ce soit, et que vous devriez comparer à ce que vous attendiez avant de couper le journal.
Sources. David H. Bailey, Jonathan M. Borwein, Marcos López de Prado et Qiji Jim Zhu, « Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance » (Notices of the American Mathematical Society, 2014), pour la formule du maximum attendu à partir de laquelle le premier tableau est calculé, reprise de la leçon 64 et appliquée ici à une grille d’hyperparamètres plutôt qu’à une grille de paramètres. Shihao Gu, Bryan Kelly et Dacheng Xiu, « Empirical Asset Pricing via Machine Learning » (The Review of Financial Studies, 2020), pour la mesure hors échantillon que cette page convertit en les 52 pour cent contre lesquels chacun de ses seuils est lu. Marcos López de Prado, Advances in Financial Machine Learning (Wiley, 2018), pour l’argument selon lequel la validation croisée ordinaire fuit en finance et pour la correction des tests multiples dont le premier tableau est un petit cas. Robert D. Arnott, Campbell R. Harvey et Harry Markowitz, « A Backtesting Protocol in the Era of Machine Learning » (The Journal of Financial Data Science, 2019), pour le protocole qui exige que le nombre d’essais soit consigné avant la recherche, ce qui est la colonne de la feuille ajoutée par la leçon 64 et dépensée par cette page.
Le prix de la recherche
La formule du maximum attendu et la barre que fixe un décompte de configurations.
Lire la leçon →Le backtesting comme preuve
Les sept transactions que cette page démonte, et la recherche qui les a produites.
Lire la leçon →Espérance
Le taux de réussite et le gain dont un facteur de profit est fait.
Lire la leçon →À but éducatif uniquement. Le trading comporte un risque de perte substantiel. Ceci n'est pas un conseil financier. Les performances passées ne garantissent pas les résultats futurs.
💬 Discussion (0 commentaire)
Chargement des commentaires…
Prêt à trader avec Signal Pilot ?
Mettez votre formation en pratique avec des indicateurs professionnels et des outils d'analyse de marché en temps réel.
Retour à Signal Pilot →