CC3 M104 -Appliquer les mathématiques pour
le traitement des données-
Analyse du Cours du Bitcoin
Mr Hamza Saber
Consignes générales
— Le travail doit être rendu sous forme d’un rapport
— Tous les calculs et graphiques doivent être réalisés avec Python
— Le code doit être commenté et les résultats clairement interprétés
— Date de rendu : 26/04/2025
— Longueur suggérée : 30 pages maximum (code inclus)
Contexte
En tant qu’analyste financier, vous êtes chargé d’analyser l’évolution du cours du Bitcoin
entre le 1er janvier 2019 et le 1er janvier 2025. Votre analyse devra utiliser des méthodes
quantitatives pour fournir des insights actionnables.
Le rapport doit aborder les points suivants :
1 Acquisition des données
1. Téléchargez les données historiques du Bitcoin (BTC/EUR) depuis Yahoo Finance :
— Période : 01/01/2019 au 01/01/2025
— Lien : [Link]
— Fréquence : Quotidienne
2. Chargez les données dans un DataFrame Pandas
3. Vérifiez qu’il n’y a pas de valeurs manquantes
2 Compréhension des données
1. Expliquez la signification de chaque colonne :
— Open (Ouverture)
— High (Maximum)
— Low (Minimum)
1
— Close (Fermeture)
— Adj Close (Fermeture ajustée)
— Volume
2. Quelle est la différence entre Close et Adj Close ?
3. Calculez la fourchette moyenne quotidienne (High - Low)
3 Traitement des données
1. Convertissez les prix EUR en MAD (Dirham marocain) en utilisant :
Prix MAD = Prix EUR × Taux EUR/MAD
— Utilisez un taux constant de 10.8 MAD pour 1 EUR
— Créez de nouvelles colonnes pour chaque prix en MAD
2. Tracez le graphique du prix de fermeture en MAD sur la période complète
3. Décrivez visuellement l’évolution (tendance générale, volatilité, événements mar-
quants)
4 Analyse des rendements
1. Calculez les variations relatives quotidiennes (rendements) :
Closet − Closet−1
Rt = × 100
Closet−1
2. Tracez l’évolution des rendements quotidiens
3. Calculez l’ensemble des mesures statistiques (tendance centrale, dispersion et forme)
4. Tracez l’histogramme des rendements avec une courbe de densité
5. Est ce que les rendements quotidients suivent une distribution normale ? vérifiez cela
en effectuant un test de normalité (Choisissez un seul test : Shapiro-Wilk,Jarque-
Bera,kolomogorov-Smirnov,...)
5 Etude de saisonnalité
1. Sur un seul graphique, superposez l’évolution du prix du BTC pour chaque année
(une courbe par année, différenciée par des couleurs)
2. Observe-t-on des fluctuations saisonnières périodiques dans le cours du Bitcoin
(BTC) ? Si oui, quels sont les cycles récurrents identifiables (par exemple : variations
mensuelles, trimestrielles ou annuelles) ?
6 Étude d’auto-corrélation
1. Définition de l’auto-corrélation :
Pour une série de rendements financiers Rt , l’auto-corrélation au décalage k s’ex-
prime par :
2
Cov(Rt , Rt+k )
ρ(k) =
σ(Rt )σ(Rt+k )
Calculez l’auto-corrélation pour k = 1,2,3
2. Tracez l’autocorrélogramme des rendements des prix de BTC-MAD
3. Interprétez
7 Backtester une stratégie de Trading
7.1 Génralités
Le backtesting consiste à tester une stratégie d’investissement sur des données historiques
pour évaluer sa performance.
Une moyenne mobile permet de lisser une série de valeurs exprimées en fonction du temps
(série chronologique). Elle permet d’éliminer les fluctuations les moins significatives. On
calcule des moyennes mobiles d’ordre 3, 4, 5, etc. L’ordre est le nombre de périodes
(années, trimestres, mois, etc.) sur lesquelles la moyenne mobile est calculée.
t
1 X
SMA(n) = Pi
n i=t−n+1
7.2 Stratégie proposée
Nous allons implémenter et backtester une stratégie de moyennes mobiles simple :
— Moyenne Mobile Courte (MMC) : 20 jours
— Moyenne Mobile Longue (MML) : 50 jours
— Règles :
— Achat quand la MMC croise la MML par le bas (signal haussier)
— Vente quand la MMC croise la MML par le haut (signal baissier)
— Investissement initial : 100 000 MAD
7.3 Implémentation
1. Calculez les deux moyennes mobiles :
19
1 X
MMCt = Closet−i
20 i=0
49
1 X
MMLt = Closet−i
50 i=0
2. Générez les signaux de trading :
— Signal d’achat quand MMCt > MMLt et MMCt−1 ≤ MMLt−1
— Signal de vente quand MMCt < MMLt et MMCt−1 ≥ MMLt−1
3
3. Tracez sur un même graphique :
— Prix de fermeture
— MMC et MML
— Signaux d’achat/vente (marqueurs verts/rouges)
7.4 Calcul du P&L
1. Initialisez le portefeuille :
Cash initial = 1 000 000 MAD
Nombre de BTC = 0
2. Pour chaque transaction :
— Achat :
Acheter 0.1 BTC
— Vente :
Vendre 0.1 BTC
3. Calculez la valeur finale du portefeuille :
Valeur finale = Cash + (Nombre de BTC × Dernier prix)
4. Calculez le rendement total :
Valeur finale
Rendement = − 1 × 100
1 000 000
7.5 Métriques de performance
Calculez et interprétez :
— Nombre total de transactions
— Rendement absolu (MAD) et relatif (%)
— Rendement annualisé :
365
Rendement total n
Rendement annualisé = 1 + −1
100
où n = nombre total de jours
7.6 Analyse comparative
Comparez la performance de la stratégie avec :
— Achat et conservation (Buy & Hold)
— Investissement sans risque (taux fixe de 3% annuel)
4
7.7 Améliorations possibles
Proposez des pistes pour améliorer la stratégie :
— Ajout de filtres de volatilité
— Optimisation des périodes des moyennes mobiles
— Gestion du risque (stop-loss)
Critères d’évaluation
Élément Points
Qualité du code et commentaires 3
Exactitude des calculs 4
Qualité des visualisations 3
Profondeur de l’analyse 5
Clarté de la présentation 3
Complétude du rendu 2
Total 20
Remarques supplémentaires
— Les librairies Python recommandées : Pandas, NumPy, Matplotlib, Seaborn
— L’originalité de l’analyse sera valorisée