Ce post décrit une expérience que j’ai menée pour mieux comprendre le fonctionnement de DBMFE, un ETF géré par DBi qui cherche à répliquer l’exposition d’un indice de fonds CTA, ce qu’on appelle aussi des managed futures. En plus de lire la documentation[1], j’ai essayé de reconstruire la mécanique manuellement[2], avec mes propres données et mon propre code. Ce qui suit décrit la méthode, les résultats, et ce que j’en ai appris. Mais d’abord : qu’est-ce qu’un managed futures, et pourquoi voudrait-on s’y exposer ?
Managed futures : l’idée derrière le trend following
Un fonds managed futures[3] est un fonds qui prend des positions longues et courtes sur des contrats futures[4] à travers plusieurs classes d’actifs : actions, taux, devises, matières premières. L’idée centrale est de capter des tendances de marché dans les deux sens, à la hausse comme à la baisse. La stratégie dominante dans cet univers est le trend following.
Le trend following repose sur une idée simple : acheter les actifs qui montent, vendre (ou réduire) ceux qui baissent. En pratique, un CTA traditionnel applique ce principe à des contrats futures couvrant les grandes classes d’actifs : actions, taux, matières premières et devises. Quand le signal de tendance est positif, il prend une position longue, quand il est négatif, il prend une position courte.
Cette mécanique produit un profil particulier. Les stratégies de trend following ont tendance à bien se comporter lorsque les mouvements de marché sont persistants, à la hausse comme à la baisse. Moskowitz, Ooi et Pedersen (2012)[5] l’ont montré sur 25 ans et 58 marchés : les stratégies de time-series momentum ont historiquement généré des rendements positifs, avec une asymétrie favorable lors des épisodes de stress extrême. Pour un portefeuille diversifié, c’est précisément le type d’exposition que l’on aimerait pouvoir ajouter : une source de rendement potentiellement décorrélée des actions, avec une forme de convexité dans les grandes crises.
Le problème est que cette exposition est difficile à obtenir proprement. Un CTA institutionnel ne se contente pas d’acheter quelques ETF : il intervient sur de nombreux contrats futures, ajuste ses positions en continu, gère son collatéral et s’appuie sur une infrastructure de trading sophistiquée. Les indices de référence, comme le SG CTA Index, donnent une bonne image de l’univers, mais ils ne sont pas investissables directement. Contrairement à un indice actions, on ne peut pas simplement en observer la composition : l’indice agrège les performances de plusieurs fonds dont les positions sont dynamiques, hétérogènes et confidentielles.
C’est là que DBMFE devient intéressant. Plutôt que de chercher à reproduire directement chaque position détenue par les CTA, le fonds utilise une approche de réplication factorielle, proche de celle formalisée par O’Doherty, Savin et Tiwari (2016)[6]. L’idée consiste à régresser le rendement d’un indice cible (ici le SG CTA Index) sur un ensemble de facteurs macro. Les coefficients de cette régression fournissent alors une estimation des expositions à détenir.
Cette approche simplifie considérablement le problème. Il ne s’agit plus de reconstruire les signaux, les positions et l’infrastructure complète d’un gérant CTA, mais d’approximer son comportement agrégé à partir de facteurs observables. Avec des données propres et un modèle statistique relativement léger, on peut tenter de reproduire une partie de la performance d’un panier de hedge funds, certes imparfaitement, mais avec une structure beaucoup plus accessible[7].
Comme j’avais du mal à comprendre précisément les mécanismes derrière DBMFE, j’ai décidé de refaire l’exercice manuellement. Ce document décrit cette démarche.
L’univers des facteurs
L’univers retenu regroupe une vingtaine de facteurs couvrant les grandes classes d’actifs qu’un trend-follower traderait naturellement :
- Actions : large-cap US, small-cap US, Japon, Corée, Chine internet, marchés émergents
- Taux : obligations longues du Trésor américain
- Devises : euro, yen japonais
- Métaux : or, argent, cuivre
- Énergie : Brent, gaz naturel
- Crypto : BTC, ETH, SOL, HYPE
L’objectif n’est pas de reproduire exactement l’univers de DBMFE, auquel je n’ai évidemment pas accès, mais de construire un ensemble de facteurs macro suffisamment large pour capturer les principales expositions d’un portefeuille managed futures. Les cryptos ne font probablement pas partie de la réplication de DBMFE, elles sont ajoutées ici comme facteurs expérimentaux, pour compenser partiellement le fait que mon univers de futures est beaucoup plus limité que celui d’un fonds institutionnel.
Toutes les séries sont exprimées en rendements excédentaires par rapport au cash. L’idée est de travailler sur des facteurs comparables entre eux, indépendamment de la rémunération du collatéral. Rien de particulièrement exotique : chaque exposition correspond à un ETF liquide, à un contrat future, ou à un proxy raisonnablement négociable.
Un point pratique important est que tous les facteurs n’ont pas le même historique. L’or, le S&P 500 ou les Treasuries disposent de plusieurs décennies de données, tandis que SOL ou HYPE n’existent que depuis quelques années. Ce n’est pas bloquant, mais cela impose une précaution : à chaque date de rebalancement, les bêtas sont estimés sur les observations disponibles dans la fenêtre glissante. Si la fenêtre est de 252 jours mais qu’un facteur ne dispose que de 200 observations, seules ces 200 observations sont utilisées.
La décroissance exponentielle limite partiellement ce problème, puisque les observations les plus anciennes reçoivent de toute façon un poids plus faible. Un facteur récent peut donc participer au modèle dès qu’il dispose d’un historique suffisant, mais son estimation reste naturellement plus incertaine. Dans le cadre bayésien, cette incertitude se traduit par une variance postérieure plus large : moins d’historique signifie des bêtas moins précis, pas un traitement arbitrairement défavorable.
Le moteur de réplication
À chaque date de rebalancement, l’objectif est d’estimer les expositions factorielles qui permettent de reproduire au mieux le rendement de la cible. La cible est le rendement de l’indice ou du fonds que l’on cherche à répliquer. Les facteurs sont les rendements des actifs macro disponibles dans l’univers retenu.
L’idée est simple : on explique le rendement de la cible par une combinaison linéaire de facteurs. Les coefficients de cette combinaison deviennent ensuite les poids du portefeuille clone. Si le modèle estime que la cible se comporte récemment comme un portefeuille long or, short yen et long pétrole, alors le clone adopte ces expositions.
La régression est estimée dans un cadre bayésien avec un prior non informatif de Jeffreys. Pour les coefficients ponctuels, cela donne les mêmes estimations qu’une régression linéaire classique. L’intérêt du cadre bayésien n’est donc pas de produire des poids très différents des MCO, mais de fournir une distribution prédictive complète. Cette distribution permet ensuite de comparer plusieurs modèles candidats à l’aide de log-scores.
Deux ajustements pratiques sont ajoutés au modèle.
Le premier est une régularisation ridge. L’univers de facteurs contient des séries parfois très corrélées, par exemple les actions américaines large-cap et small-cap. Sans régularisation, la régression peut produire des coefficients instables, avec des expositions qui changent fortement d’un rebalancement à l’autre. Une pénalité L2 modérée, avec un alpha de 0,003, permet de stabiliser les bêtas sans forcer le modèle à sélectionner seulement quelques facteurs.
Le second ajustement est une décroissance exponentielle des observations. Toute l’histoire récente n’a pas la même importance. Une observation très ancienne doit compter moins qu’une observation récente. Chaque point de données reçoit donc un poids qui diminue avec son âge. Une demi-vie de 21 jours ouvrés signifie qu’une observation datant d’environ un mois compte deux fois moins qu’une observation récente.
J’ai testé plusieurs demi-vies : 10, 21 et 63 jours ouvrés. Elles correspondent approximativement à trois vitesses de réaction : rapide, intermédiaire et lente. La demi-vie de 10 jours permet au modèle de s’adapter rapidement aux changements de régime. Celle de 21 jours représente une mémoire d’environ un mois. Celle de 63 jours donne plus de poids à la stabilité des tendances sur un trimestre.
Ces choix ne sont pas complètement arbitraires. La littérature sur le trend following montre que les signaux de momentum existent sur plusieurs horizons. Moskowitz, Ooi et Pedersen (2012)[5:1] documentent des effets de time-series momentum sur des horizons allant d’un à douze mois. Hurst, Ooi et Pedersen (2017)[8] montrent également que les stratégies de tendance ont historiquement fonctionné sur de longues périodes et à travers plusieurs régimes de marché. Baltas et Kosowski (2015)[9] étudient enfin des variantes plus rapides du time-series momentum, notamment à fréquence hebdomadaire et quotidienne. Les demi-vies retenues cherchent donc à couvrir ce spectre, sans multiplier excessivement les paramètres.
Le modèle formel
À chaque date de rebalancement, on dispose de T observations de rendements factoriels et de rendements cibles. La matrice des facteurs est notée \mathbf{X}, de dimension T \times K. Le vecteur des rendements cibles est noté \mathbf{y}, de dimension T \times 1.
Le modèle linéaire s’écrit :
avec :
Le vecteur \boldsymbol{\beta} contient les expositions factorielles estimées. Ce sont ces coefficients qui deviennent les poids du portefeuille clone.
Le prior utilisé est le prior non informatif de Jeffreys :
Avec ce prior, l’estimateur ponctuel de \boldsymbol{\beta} correspond à l’estimateur des moindres carrés ordinaires :
La variance résiduelle est estimée à partir de l’erreur de réplication :
où :
Dans le cas non régularisé, la distribution postérieure des coefficients est :
et la variance suit une loi inverse-gamma :
En pratique, j’utilise une version régularisée. Pour limiter l’instabilité liée à la multicolinéarité, on remplace \mathbf{X}'\mathbf{X} par \mathbf{X}'\mathbf{X} + \lambda \mathbf{I}. L’intercepte, lorsqu’il est inclus, n’est pas pénalisé.
L’estimateur devient alors :
avec :
Les observations sont également pondérées selon leur âge. Pour une observation i, le poids est :
La régression pondérée minimise donc :
Ce problème est équivalent à une régression classique sur des données transformées. Il suffit de remplacer chaque ligne de \mathbf{X} par \sqrt{w_i}\mathbf{x}_i et chaque observation de \mathbf{y} par \sqrt{w_i}y_i.
Pour une nouvelle observation factorielle \mathbf{x}_*, le modèle fournit une distribution prédictive du rendement de la cible. Dans le cas non régularisé, cette distribution est une loi de Student :
Cette distribution prédictive est utile parce qu’elle ne donne pas seulement une prévision ponctuelle. Elle donne aussi une incertitude autour de cette prévision. On peut donc comparer plusieurs modèles candidats en évaluant la probabilité qu’ils attribuaient aux rendements effectivement réalisés. C’est le rôle des log-scores.
Régression par blocs
Une variante consiste à ne pas estimer un seul modèle sur tous les facteurs. On peut découper l’univers en blocs homogènes : actions, taux, devises, métaux, énergie et crypto. Chaque bloc est alors estimé séparément.
Pour un bloc b, le modèle est :
Chaque bloc peut utiliser ses propres paramètres : sa fenêtre d’estimation, sa demi-vie et son niveau de régularisation. Par exemple, les actions et les taux peuvent être estimés sur une fenêtre longue avec une demi-vie lente, tandis que les matières premières ou les cryptos peuvent utiliser une fenêtre plus courte et une demi-vie plus rapide.
L’estimateur du bloc b est :
où \mathbf{W}_b est la matrice diagonale des poids exponentiels du bloc :
Les expositions finales sont ensuite obtenues en concaténant les coefficients estimés dans chaque bloc :
Cette approche n’est pas équivalente à une régression jointe. Chaque coefficient est estimé sans contrôler explicitement pour les facteurs des autres blocs. Les coefficients obtenus ne sont donc pas des coefficients partiels au sens strict, sauf si les blocs sont parfaitement orthogonaux :
C’est une approximation. Elle est défendable si les blocs représentent des classes d’actifs suffisamment distinctes, mais elle peut produire des expositions redondantes lorsque plusieurs blocs expliquent la même variation de la cible. Son avantage est pratique : elle permet de spécialiser les hyperparamètres par classe d’actifs et d’éviter qu’un bloc très instable domine toute la régression.
La famille de modèles candidats
Une fois le moteur de réplication défini, il reste une question importante : quels paramètres utiliser ? La fenêtre d’estimation doit-elle être courte ou longue ? La demi-vie doit-elle rendre le modèle très réactif ou plus stable ? Faut-il estimer tous les facteurs ensemble ou séparément par classe d’actifs ?
Plutôt que de choisir une seule configuration a priori, je maintiens une famille de modèles candidats. Chaque candidat utilise le même principe de réplication, mais avec des paramètres différents.
Les principales dimensions testées sont les suivantes :
- Fenêtre d’estimation : 63, 126 ou 252 jours ouvrés, soit environ 3, 6 ou 12 mois
- Demi-vie du decay exponentiel : 10, 21 ou 63 jours ouvrés
- Régularisation ridge : alpha fixé à 0,003
- Lissage des poids : lissage exponentiel des expositions prédites entre deux rebalancements, avec un coefficient de 0,5
- Nombre maximal de facteurs actifs : 8 par candidat, puis 10 au maximum pour le portefeuille combiné[10]
- Architecture du modèle : régression unique sur tous les facteurs ou estimation par blocs d’actifs
Les modèles par blocs permettent d’adapter les paramètres à chaque classe d’actifs. Par exemple, un profil stable peut utiliser une fenêtre de 252 jours et une demi-vie de 63 jours pour les actions et les taux, qui sont des blocs où les signaux peuvent être plus lents. À l’inverse, un profil plus réactif peut utiliser une fenêtre de 63 jours et une demi-vie de 10 jours pour les matières premières ou les cryptos, où les changements de régime peuvent être plus rapides.
Dans cette architecture, chaque bloc est estimé séparément, puis les poids obtenus sont concaténés pour former le portefeuille final du candidat. L’idée est proche de l’approche par segments décrite dans la documentation de DBMF, mais sans régression de second niveau. Le modèle reste donc plus simple : il spécialise les paramètres par classe d’actifs, sans chercher à réestimer ensuite une combinaison optimale des blocs.
Sélection et combinaison des candidats
À chaque rebalancement, tous les modèles candidats sont évalués sur une fenêtre glissante de rendements réalisés. L’objectif n’est pas seulement de choisir le modèle qui colle le mieux à la cible sur le passé récent. Il faut aussi éviter les candidats qui répliquent correctement la cible au prix d’une volatilité excessive ou d’un drawdown trop important.
La fonction de score utilisée en production privilégie donc la performance ajustée du risque, avec une pénalité explicite lorsque le drawdown devient trop élevé[11] :
La pénalité de drawdown ne s’applique réellement que lorsque le drawdown dépasse un seuil de 20 %. Une pénalité supplémentaire est également appliquée si la corrélation avec la cible passe sous un plancher minimal. L’objectif est donc double : conserver une certaine proximité avec la cible, mais sans sacrifier complètement la robustesse du portefeuille.
Les scores ne servent pas à sélectionner brutalement un seul modèle. Ils sont transformés en poids d’allocation par une fonction softmax. Les meilleurs candidats reçoivent donc plus de poids, mais les autres ne sont pas nécessairement exclus. Cette approche évite de basculer trop violemment d’un modèle à l’autre à chaque rebalancement.
Le portefeuille final est obtenu en agrégeant les expositions proposées par les différents candidats, pondérées par leurs scores softmax. Une contrainte pratique est ensuite appliquée : le portefeuille combiné ne peut pas contenir plus de 10 facteurs actifs. Cette limite n’est pas purement théorique. Elle reflète aussi les contraintes d’exécution d’un petit portefeuille réel. Des positions trop nombreuses produiraient des ordres minuscules, difficiles à exécuter proprement et peu pertinents économiquement.
Validation walk-forward
La construction du modèle est une chose. La vraie question est de savoir s’il fonctionne hors échantillon. Pour le vérifier, j’ai réalisé une validation walk-forward chronologique.
Le principe est simple : à chaque étape, le modèle est entraîné sur une période passée, puis testé sur le mois suivant. On avance ensuite d’un mois et on recommence. Cela permet d’éviter de juger le clone sur une période qu’il aurait déjà vue lors de l’estimation.
La validation utilise quatre spécifications macro-core. Elles partagent le même univers de facteurs, une régularisation ridge fixée à 0,003 et un lissage des poids de 0,5.
| Candidat | Fenêtre | Demi-vie du decay |
|---|---|---|
| w252-hl21 | 252 jours, soit environ 12 mois | 21 jours, soit environ 1 mois |
| w126-hl21 | 126 jours, soit environ 6 mois | 21 jours, soit environ 1 mois |
| w126-hl10 | 126 jours, soit environ 6 mois | 10 jours, soit environ 2 semaines |
| w63-hl10 | 63 jours, soit environ 3 mois | 10 jours, soit environ 2 semaines |
La cible utilisée est une série hybride : le SG CTA Index avant 2019, puis le total return de DBMF/DBMFE après 2019. C’est la même série que le clone cherche à répliquer en production.
Chaque fold utilise trois ans d’entraînement, soit environ 756 jours ouvrés, puis environ un mois de test, soit 21 jours ouvrés. Le premier fold commence en juillet 2013 et la validation avance ensuite mois par mois jusqu’à aujourd’hui. Au total, cela représente environ 159 folds mensuels non chevauchants et 3 186 rendements quotidiens hors échantillon.
À chaque fold, les quatre candidats sont scorés sur la période d’entraînement. Les scores sont ensuite transformés en poids par une fonction softmax, avec une température de 0,25, un top-k de 4 et un lissage inter-fold de 0,70. Le modèle final n’est donc pas un seul candidat choisi brutalement, mais une combinaison pondérée des quatre spécifications.
En pratique, le candidat w252-hl21 reçoit généralement la majorité de l’allocation, souvent entre 50 % et 90 %. Les modèles plus courts obtiennent des poids plus modestes, mais deviennent utiles pendant les périodes de transition ou de changement de régime.
Les résultats hors échantillon sont les suivants :
| Métrique | Clone OOS | Cible |
|---|---|---|
| Corrélation | 0,64 | — |
| Tracking error | 8,9 % | — |
| Rendement annualisé | 7,25 % | 7,78 % |
| Volatilité annualisée | 9,05 % | 11,32 % |
| Sharpe ratio | 0,80 | 0,69 |
| Drawdown max | −12,2 % | −18,1 % |
Le clone ne réplique pas parfaitement la cible, ce qui serait irréaliste avec un univers de facteurs réduit. La corrélation de 0,64 et le tracking error de 8,9 % montrent qu’il reste une part importante d’écart spécifique. Mais les résultats sont tout de même encourageants : le rendement annualisé reste proche de celui de la cible, la volatilité est plus faible, le drawdown est moins profond et le Sharpe ratio est supérieur.
Visuellement, le clone suit correctement les grands régimes de la cible, notamment le choc COVID de 2020 et la période de remontée des taux en 2022. Il existe des divergences ponctuelles, mais la trajectoire cumulée reste globalement comparable.
Une représentation graphique de la reproduction
Poids actuels en production
À titre illustratif, voici les expositions obtenues à partir du dernier prix observé de DBMFE. Ces poids ne constituent évidemment pas une recommandation d’investissement. Ils sont propres à cette date, à cette implémentation et à l’univers de facteurs retenu. Ils peuvent changer dès le prochain rebalancement[12].
| Actif | Poids | Direction |
|---|---|---|
| Or, future | +27,6 % | Long |
| Yen japonais, future | −17,7 % | Short |
| Euro, future | +11,4 % | Long |
| Russell 2000, future | −10,4 % | Short |
| Pétrole Brent, future | +8,6 % | Long |
| Actions Chine internet, ETF | +5,9 % | Long |
| Actions Japon, ETF | +5,3 % | Long |
| Nasdaq 100, future | −3,1 % | Short |
| Crypto, net | −4,8 % | Short |
Le levier brut ressort à 1,01× et le levier net à +0,23×. Le portefeuille est donc presque entièrement investi en exposition brute, mais avec une exposition directionnelle nette relativement modérée. Les principales positions longues portent sur l’or, l’euro, le pétrole, les actions japonaises et les actions chinoises. Les principales positions courtes portent sur le yen, le Russell 2000, le Nasdaq 100 et les cryptos.
Pour finir
L’objectif initial était simplement de mieux comprendre ce qui se passe sous le capot de DBMFE. De ce point de vue, l’expérience est utile. Elle montre qu’une réplication factorielle relativement simple, régularisée et validée en walk-forward, peut capturer une partie significative du comportement historique d’une exposition managed futures.
Il faut cependant rester prudent. Le clone n’est pas DBMFE. Il utilise des proxies, des données imparfaites, un univers de facteurs plus limité et des hypothèses simplificatrices sur les coûts de financement, les coûts de transaction et l’exécution. Le backtest donne donc une indication, pas une garantie.
Le vrai test commence en conditions réelles. C’est là que les écarts de données, les petites erreurs de timing, les coûts implicites et les contraintes de taille peuvent faire beaucoup plus mal que dans mes données. Il est tout à fait possible que la réplication se dégrade fortement en live. Mais au moins, l’exercice permet de comprendre ce que l’on essaie de répliquer, pourquoi cela peut fonctionner, et où se situent les risques.
que je n’ai pas vraiment compris ↩︎
Et construire l’infrastructure pour avoir un petit bout de mon patrimoine qui suit la stratégie ci-dessous, j’espère que j’ai bien fait le travail, y’a 300€ dans le fonds ! ↩︎
ou CTA, pour Commodity Trading Advisor ↩︎
Vous voyez déjà d’où vient le nom managed futures ! ↩︎
Moskowitz, T. J., Ooi, Y. H., & Pedersen, L. H. (2012). “Time Series Momentum.” Journal of Financial Economics, 104(2), 228–250. Redirecting ↩︎ ↩︎
O’Doherty, M. S., Savin, N. E., & Tiwari, A. (2016). “Hedge Fund Replication: A Model Combination Approach.” Review of Finance, 21(4), 1767–1810. https://ssrn.com/abstract=2554686 ↩︎
C’est aussi ce qui explique, en pratique, que DBMFE puisse proposer une exposition de type managed futures à des frais sensiblement inférieurs à ceux de produits concurrents. ↩︎
Hurst, B., Ooi, Y. H., & Pedersen, L. H. (2017). “A Century of Evidence on Trend-Following Investing.” The Journal of Portfolio Management, 44(1), 15–29. https://doi.org/10.3905/jpm.2017.44.1.015 ↩︎
Baltas, N., & Kosowski, R. (2015). “Demystifying Time-Series Momentum Strategies: Volatility Estimators, Trading Rules and Pairwise Correlations.” SSRN Working Paper. https://ssrn.com/abstract=2140091 ↩︎
La contrainte est aussi très prosaïque : avec un petit capital, multiplier les facteurs finit vite par produire des ordres de quelques euros, voire moins. Ce n’est ni élégant, ni vraiment exécutable. ↩︎
Totalement ad hoc, oui. Mais c’est mon fonds, et je fais ce que je veux (le dites pas à l’AMF svp) ↩︎
Ces poids sont donnés uniquement à titre d’illustration. Ils ne sont pas stables dans le temps. L’expérience est réalisée avec un capital volontairement limité, justement pour tester l’exécution réelle sans enjeu matériel important. ↩︎
