Trading systématique basé sur algo momentum

Pour eviter de polluer les autres fils. Je repositionne mes interventions sur le sujet du trading systématique et algorithmique.

Cela peut paraître trop complexe, trop détaillé mais le but c est de donner la possibilité de répliquer les stratégies proposées en donnant le maximum de références. Ces stratégies peuvent être répliquer en créant ses propres programmes ou bien sur des platformes de trading algo prête à l emploi.

ça va etre long mais voici quelques ingrédients de ma secret sauce.

J utilise 2 supports CTO et AV, 50/50 avec une stratégie de pure performance pour le CTO et d optimisation du risque pour l AV.

J’applique un trading systématique mensuel (je veux pas être un esclave du marché) basé sur différentes mesures du momentum. L’utilisation de différents calcul du momentum conduit à une diversification implicite. Pourquoi le momentum, je suis l’observation de French et Fama ,pères de l’hypothèse des marchés efficients « le momentum est la première anomalie ». Concernant le momentum, voir Momentum Strategies Across Asset Classes Risk Factor Approach to Trend Following par Marko Kolanovic, PhDAC (Global) [email protected] Zhen Wei, PhD (Asia) [email protected]. JP Morgan.

CTO – 10 titres vifs sélectionnés (également réparti 1/10) chaque mois S&P 500 en fonction du momentum calculé selon la technique basée sur l’article [Trended Momentum Charlie X. Cai, Peng Li et Kevin Keasey]
La clarté de la tendance (trend clarity) est le R au carré de la régression du prix quotidien des actions sur la séquence de dates au cours des 12 derniers mois (nécessite au moins 200 jours). J’utilise une variation par A Clenow exposé dans son livre (Trading Evolved: Anyone can Build Killer Trading Strategies in Python) comme suit cela calcule la pente de régression exponentielle, dans ce cas sur 90 jours, et la multiplie par le R2. Cela nous donne un momentum, ajusté en fonction de la force de la tendance.

AV – 3 ETF et 25% fonds Euro. 3 ETF sélectionnés dans l’équivalent de l’univers proposé par Meg Faber dans ses papiers/livres sur Tactical Asset Alllocation. La sélection est mensuelle (allocation 25% chacun) et rebalancée mensuellement en appliquant strictement la mesure du momentum proposée par Wes Gray dans son livre Quantitative Momentum: A Practitioner’s Guide to Building a Momentum-Based Stock Selection System (Wiley Finance). Par exemple Allocation depuis aout 2024 incluant février 2025
SP500, monde ex US, Gold Miners,

en terme de risque/rendement
CAGR: 9.293434495575337
Annual Volatility: 9.778746050865184
Average Annual Return: 9.293434495575337
Sharpe Ratio: 0.6 (avec risk free rate de 3%)
Max Drawdown: -10.41
Max Drawdown Duration (months): 22
3 Best Years: {2021: 16.92, 2024: 14.86, 2020: 11.30}
3 Worst Years: {2022: -4.69, 2025: 3.67, 2023: 6.37}
annual returns: year
2020 11.302007
2021 16.920027
2022 -4.697849
2023 6.372755
2024 14.863192

Aussi bien pour le CTO que pour l’AV, observations et calculs d’ indicateurs de marché pour identifier la tendance du marché et hedger si nécessaire en cash, 0%, 50%, 100% cash. J’ai utilisé longtemps la technique Downside Protection Model de Wes Gray Avoiding the Big Drawdown with Trend-Following Investment Strategies. Voir post . Depuis un lecteur de finary m’a fait découvrir l’indice SPXA200R qui en backtest s’est avéré plus performant que la technique de Wes Gray (ici). Également j’observe ces différents indicateurs (ici), ici,ici, mais à titre informatif, dans ce cas pas d’activation systématique d’allocations.

Mes principes de trading systématique

• Je crois en la théorie des marchés efficients (EMT) mais nous savons que les anomalies peuvent temporairement modifier la valeur de l’action. Selon Eugene Fama, le momentum est la première anomalie. Le co-lauréat du prix Nobel d’économie 2014 et père de l’hypothèse des marchés efficients, et son co-auteur, Ken French, ont résumé la recherche universitaire sur le momentum dans The premier anomaly is momentum.Fama, E. et K. French, 2008, Dissecting Anomalies, The Journal of Finance, 63, pg. 1653-1678.

• Je crois que les émotions et les biais humains doivent être ignorés en traidant de manière systématique et algorithmique

• Mon système de trading est basé sur le momentum quantitatif (The premier anomaly)

• Je fais confiance à mon modèle de telle sorte que je ne veux jamais intervenir au risque d’introduire des biais comportementaux en annulant les décisions du système de trading de vendre ou d’acheter une action spécifique.

• La robustesse du modèle a été éprouvée en effectuant des backtestings (sans survival biais) et en mesurant systématiquement les risques. De nombreux articles et livres exposent les principes d’un bon backtesting. Voir chapitre 21 « Tests système » du livre « Trading Systems and Methods » de Perry J. Kaufman (6e édition)

4 « J'aime »


Concernant l’AV
Pour moi le benchmark pour mon AV est plus un portfolio 60/40 que le Sp500 solo. L’autre question c’est le choix des etfs. Comment décider d’investir sur un seul ETF comme le SP500 à l’instant t. Bien sur possible de se baser sur les performances passées et le SP500 est un bon cheval mais à postériori. Quel aurait été le choix de l’etf fin 2008 ou fin mars 2020 ou fin 2022 pour un investisseur. Il faut une sacré conviction pour rester sur le SP500 à ce moment là. L’avantage du trading systématique c’est d’éviter de faire entrer des impressions, des sentiments, etc… et de se laisser guider par l’algorythme à condition bien sur d’en avoir testé la robustesse et compris son compartement dans différentes conditions de marché

Mon objectif est la réduction du max drawdown. Je suis prêt à sacrifier de la perf pour eviter toute séquence de risque. Mon modèle a un max drawdown de -10.41% sur la période contre -18.9% pour le SP500. Année 2022: -4.69% vs 13.1% pour le SP500 cad plus de 2 fois moins. Le pire mois Mars 2000 -10%, vs -12% SP500, en second juin 2022: -4.3% vs dec 2022: -8.3% pour le SP500.

2020-2024 AV ZAKZAK SP500 60/40
GAGR 9.29 16.97 7.43
Annual Vol 9.78 16.48 10.43
Sharpe Ratio(rf = -1.24%) 0.82 0.95 0.61
Max Drawdown -10.41 -18.9 -13.2
Max Drawdown duration months 22 19 26
Meilleur Année 2021 16.92% 2021 39.30% 2021 18.10%
pire Année 2022 -4.62% 2022 -13.10% 2022 -13.20%

Concernant le CTO, le benchmark est le SP500. Comme l’algorythme sélectionne 10 titres parmi 500 en foncion d’unne mesure de momentum, il est alors possible théoriquement de battre le benchmark si l’anomalie de marché « momentum » est valide.

10 S&P500 valeurs, Equally Weighted, Monthly Balanced 1992-2024

ZAKZAK SP500
GAGR 29.22 11.21
Annual Vol 22.4 15.25
Avg Annual Ret 29.22
Sharpe Ratio(rf = -3.81%) 1.06 0.69
Max Drawdown -32.01 -60.4
Max Drawdown duration 21 160
3 Meilleurs Années 2013 114% 1997 49%
2003 75% 1999 42%
2017 74% 2021 29%
3 pires Années 2011 -21% 2002 -35%
2008 -18% 2008 -34%
2018 -8% 2022 -13%

Très intéressant.

D’un point de vue « gestion de portefeuille », comment tu prends tes décisions d’allocation entre ces deux stratégies ? Tu rééquilibres entre elles ou tu laisses courir ? Tu as mesuré la corrélation entre ces deux stratégies et comment elle a varié au fil du temps ?

Apparemment, ta stratégie en CTO doit avoir un sacré turnover, tu as une idée de ce que ça donne net de fiscalité et de coûts de transactions ?

1 « J'aime »

Bonjour, je trouve ça super intéressant et j’aimerais bien travailler un peu les données et ce genre de simulation de mon côté. Plusieurs questions, si jamais vous souhaitez y répondre :

  • Où trouvez-vous les données facilement exploitable des valeurs quotidiennes des 500 actions du SP500, sur 1 an ?
  • Pour la stratégie CTO, utilisez-vous une régression linéaire ou exponentielle pour calculer le R² ? Une régression exponentielle me semblerait plus logique étant donné que vous calculez ensuite la force de la pente sur de l’exponentiel aussi.
  • Pourquoi calculer le R² sur 12 mois, et la force de la pente sur 90 jours seulement ?
  • Je suppose ensuite qu’on peut facilement calculer le R² dans Excel, ainsi que la force de la pente selon la 2e méthode. Mais utilisez-vous un autre logiciel en particulier ?
  • Même question pour vos backtests, est-ce un tableau Excel que vous avez construit (gros travail si oui), ou utilisez-vous un logiciel spécifique pour travailler toutes ces données ?

Merci en tout cas pour le partage. Je m’intéresse à « l’anomalie Momentum » depuis quelques mois, mais je n’arrive pas à correctement sourcer mes données pour établir des backtests fiables, et encore moins pour que la méthode soit reproductibles dans le temps.

Même question !..

L’allocation est 50/50. Je n’ai pas encore répliquer tes techniques d’allocation de portefeuille :grinning: Mon risque est encadré par un « canary jaune » qui est l’indice du SpXA200R qui a été un excellent garde fou en 2020. Le rééquilibrage a lieu en début d’ année

Le turnover CTO est en moyenne de 3.5 position sur 10 mensuellement. Ce qui fait que par année la PV non réalisée est de 65% et la PV réalisée de 35%, soit un cout fiscal de 35%*30, grosso modo 10% sur la PV réalisée. Pour un capital de 2,000,000 avec une perf annuelle de 10%, le cout sera de 1.1%, pour une perf de 20%, cout de 2.1%, pour une perf de 30%, cout de 3.15% Le couts de trading est pratiquement nul et je ne prends pas en compte le gap bid/ask.

Pour la période 2020-2024, presque totalement décorrélé R2= 0.08


en évolution

C’est vrai qu’il a l’air intéressant, cet indicateur. Il faudra que je voie pour l’ajouter à mon attirail pour diversifier encore un peu plus mon processus d’investissement.

Effectivement, le turnover est conséquent ! Je ne négligerais pas les coûts de trading, instinctivement. Chez IBKR j’ai du 0,05%, si tu fais tourner 1/3 du portefeuille par mois ça te fait quand même dans les 0,4% de commissions par an, sans compter le spread.

Sympa, la faible corrélation entre les deux stratégies !

d’abord savoir si tu vas construire ton modèle avec Excell ou Python ou plateformes(les 3 approches les plus populaires). Dans les 2 cas il y a des addons ou des API. Si tu as besoins de données historiques très peu de données gratuites. J’utilise norgatedata et EODHD, data payante. Avec python une option gratuite populaire yfinance. Egalement possibilité de télécharger sous forme fichier csv depuis yahoo finance.

régréssion exponentielle qui permet de comparer plusieurs actions independemment de leur prix de base. Je te conseille la lecture du chapitre systematic Momentum de A Clenow « trading evolved », très accessible et qui explique la méthode de calcul pas à pas.

typo, le R2 est calcul sur 200 jours de trading (merci pour le peer review)
quelques parametres utilisés
«  »"
some parameters to compute MOM and TC
«  »"
nb_positions = 10 #nb of positions for the portfolio
nb_ofdays = 200 #nb of back days to compute the regression line
momentum_window = 12 #nb of back months to compute momentum
ticker_price_limit = 20 # to exclude all tickers below the ticker_limit price
«  »"

Je ne suis pas un expert excell mais je pense que la meme approche peut etre achevée avec excell. Oui Python, donc je code la totalité de l’aglgorythme ce qui permet de controler ma stratégie. Un peu consommateur de temps mais CHATgpt a bien augmenté ma productivité. IL existe des platformes de trading qui permettent des approches similaires, en général très bien faites avec des stratégies pré_implantées. Toutes les stratégies possibles de momentum et toutes les données historiques. Pas vraiment d’alternatives gratuites. Quantconnect.com me parait solide, mais il y en a plein d’autres. L’inconvénient c’est la learning curve mais si tu parts de zéro çà vaut le coup de se former.

Non avec python je me connecte par API aux fournisseurs de données historiques, voir norgatedata, EODHD mais elles ne sont pas gratuites. Tu peux prendre l’abonnement minimum, décharger les données en excell pour les réutiliser à volonté ensuite sans avoir à payer un abonnement.

1 « J'aime »

C’est vraiment gentil d’avoir pris le temps de me répondre point par point. J’ai un peu de temps le mois prochain, je vais regarder tout ça de bien plus près. Merci encore.

sur 2024, 43 positions vendues pour un total fee de 280 euros.

Bonjour ZakZak,
Une question bête de novice.
Quand vous faites du backtesting est-ce que ça prend en compte la liquidité et le carnet d’ordre ? Car si je dis par exemple : quand le cours atteint telle valeur alors je veux que tu vendes x actions puis quand le cours atteint telle valeur je veux que tu achètes y actions. Et je backteste : qu’est-ce qui me prouve qu’en réel cela va se passer exactement pareil : dans l’hypothèse où on irait dans le passé et on exécuterait le scénario bien sûr :wink:
Comme j’ai été confronté à des ordres manuels qui ne passent pas, c’est pour ça que je pose cette question.

Je n’ai pas ce niveau de granularité en backtest. Faire du backtest de trading intraday je sais pas faire. Ca suppose de retracer chaque session journalière toutes les 5 mn et moins et il faut définir tes règles d’achat et de vente. J’ai vu quelques papiers passés sur l’application du momentum pour du day trading mais personellement je pense que le day trading c’est une proposition perdante. Je ne sais pas si on a en acces publique meme payant les données et le carnet d’ordre à ce niveau de granularité. C’est des données que les hedges funds possèdent et qu’ils font mouliner sur 30 ans sur une centaine de marchés. (et qu’ils peuvent corréler avec l’alignement de la lune et du soleil et d’autres bizzaries :grinning:)
Le backtest dans mon cas consiste à reproduire un ordre de vente ou d’achat à la fin de la séance du dernier jours de trading de chaque mois. Beaucoup plus simple.

Attends, laisse-moi deviner : comme tu trades principalement des titres vifs US, le taux de com’ effectif doit être dérisoire. C’est ça ?

oui exact.

@ZakZak : Merci pour votre réponse. Cela alimente ma réflexion :slight_smile:

@Hugo199 Maintenant, il y a aussi une alternative moins couteuse en temps si tu veux etre exposé au facteur momentum. Tu peux choisir un etf Momentum et tester sa perf avec Curvo. Aussi tu peux comparer différentes stratégies avec allocatesmartly. En accés libre il propose Hybrid Asset Allocation, un modèle basé momentum.
Tu peux aussi utiliser un stock screener pour selectionner des titres vifs qui répondent à des critères de momentum.
Tu peux aussi regarder les fonds momentum comme QMOM ici QMOM ETF - Alpha Architect ETFs
ou AQR https://funds.aqr.com/Funds/Equities/AQR-Large-Cap-Momentum-Style-Fund/AMONX#about
C’est à titre informatif car tu ne peux pas investir dessus.
Pas besoin de faire tout un bins avec excell ou Python. Je le fais parce que ça me passionne et j’aime faire ma propre cuisine et je peux me permettre une certaine prise de risque sur une partie de mon patrimoine.

1 « J'aime »

Encore merci pour tous ces conseils. C’est top !