Boucles et Conditions en Python
Les boucles en Python
Les boucles sont un concept essentiel en programmation, permettant d'exĂ©cuter un bloc de code plusieurs fois en fonction d'une condition ou d'un nombre d'itĂ©rations dĂ©terminĂ©. Dans le contexte de la finance, elles peuvent ĂȘtre utilisĂ©es pour analyser des donnĂ©es sur plusieurs pĂ©riodes ou pour effectuer des calculs rĂ©pĂ©titifs. Un exemple trĂšs concret serait le backtest, le backtest est une simulation sur le passĂ© dâune stratĂ©gie dâinvestissement ou de trading. Pour rĂ©aliser un backtest, nous allons parcourir chaque prix sur une pĂ©riode donnĂ©e, et cela se fait grĂące Ă une boucle. En Python, on utilise principalement deux types de boucles : for
et while
.
for
en Python
La boucle La boucle for
est utilisĂ©e pour parcourir une sĂ©quence et exĂ©cuter un bloc de code pour chaque Ă©lĂ©ment de cette sĂ©quence. Une sĂ©quence peut avoir plusieurs types comme une liste, un tuple, un dictionnaire ou une chaĂźne de caractĂšres. Nous verrons ces types lors de la prochaine sĂ©ance, pour lâinstant cela nâest pas trĂšs important pour la comprĂ©hension.
Par exemple, supposons que nous avons un solde de compte actuel de 3000âŹ, tous les mois, nous touchons un salaire de 2000⏠et nous avons 1800⏠de dĂ©pense. Nous souhaitons connaĂźtre Ă la fin de lâannĂ©e (aprĂšs 12 mois) le solde de notre compte :
balance = 3000
salary = 2000
expenses = 1800
for i in range(12):
balance = balance + salary - expenses
print("Solde aprĂšs", i+1, "mois", balance, "âŹ")
print("Le solde de mon compte en fin d'annĂ©e est :", balance, "âŹ")
Ici, nous définissons trois variables : balance
, salary
et expenses
. Ces variables représentent respectivement le solde de départ du compte, le salaire mensuel et les dépenses mensuelles.
Ensuite, nous utilisons une boucle for
pour simuler les transactions financiÚres sur une période de 12 mois. La fonction range(12)
génÚre une séquence de nombres de 0 à 11 (12 éléments au total).
Vous pouvez remarquer que les 2 lignes en dessous du fo
r ne sont pas alignĂ©es au mĂȘme niveau. En effet, elles sont ce quâon appelle indentĂ©es, c'est-Ă -dire espacĂ©es de 4 espaces Ă gauche. Les lignes indentĂ©es sont incluses par le for
, alors que celles non indentĂ©es comme la derniĂšre ne le seront pas. ConcrĂštement, lâaffichage âSolde aprĂšsâŠâ
sera affichĂ© 12 fois alors que le texte âLe solde de mon compteâŠâ
ne sera affichĂ© quâune seule fois.
Nous mettons par la suite à jour notre solde en lui ajoutant le salaire et en retirant les dépenses et affichons grùce à la fonction print()
notre nouveau solde, ainsi que le mois de lâannĂ©e. Comme nous lâavons vu plus haut, la fonction range(12)
gĂ©nĂšre une sĂ©quence de nombres de 0 Ă 11 donc lors de lâaffichage, nous ajouterons 1 Ă i
afin de commencer au mois 1 au lieu du mois 0.
Enfin, nous affichons le solde final en fin dâannĂ©e.
while
en Python
La boucle La boucle while
est utilisĂ©e pour exĂ©cuter un bloc de code tant qu'une condition est vraie. Par exemple, supposons que nous voulons calculer combien de temps faut-il pour doubler un investissement avec un taux d'intĂ©rĂȘt annuel fixe :
initial_investment = 1000
interest_rate = 0.05
years = 0
current_value = initial_investment
while current_value < initial_investment * 2:
current_value = current_value * (1 + interest_rate)
years += 1
print("Il faudra", years, "années pour doubler l'investissement.")
Dans cet exemple, le bloc de code à l'intérieur de la boucle while
sera exécuté tant que la valeur de current_value
est inférieure au double de l'investissement initial. à chaque itération, nous mettons à jour la valeur de current_value
avec les intĂ©rĂȘts et on incrĂ©mente years
de 1.
Nous sortons donc de la boucle while
lorsque la valeur de current_value
devient supérieur à 2 fois notre investissement initial. A ce moment, nous affichons grùce à la fonction print
la valeur de notre variable years
qui reprĂ©sente le nombre dâannĂ©e nĂ©cessaire pour doubler notre investissement.
Comment utiliser des conditions en Python ?
Les conditions sont également un concept important en programmation. Elles permettent d'exécuter un bloc de code si une condition est vraie, et éventuellement un autre bloc de code si cette condition est fausse. En Python, on utilise les mots-clés if
, elif
et else
pour définir des conditions. if
pour si, elif
pour sinon si et enfin else
pour sinon.
Voici un exemple simple :
bitcoin_price = 45000
if bitcoin_price <= 30000:
print("Acheter")
elif bitcoin_price > 30000 and bitcoin_price <= 50000:
print("Vendre la moitié")
elif bitcoin_price < 60000:
print("Conserver")
else:
print("Vendre la totalité")
Dans cet exemple, le programme va afficher "Vendre la moitié", car la valeur de bitcoin_price
est 45 000, ce qui est supérieur à 30 000 et inférieur à 50 000. Vous découvrez ici le mot clé and
qui reprĂ©sente lâopĂ©rateur et en français, il existe par ailleurs le or
qui représente le ou en français.
Voici quelques autres exemples simples dâutilisation de conditions:
text = "hello"
if text == "hello" or text == "hi":
print("text is hello or hi")
elif text != "hello":
print("text is not hello and also no hi")
condition = True
if condition is True:
print("My condition is true")
else:
print("My condition is false")
Exemple combinant boucles et conditions en Python
Pour illustrer l'utilisation combinĂ©e des boucles et des conditions en Python, prenons un exemple oĂč nous cherchons Ă dĂ©terminer combien de mois il vous faudra pour atteindre un objectif d'Ă©pargne, en tenant compte d'une augmentation possible de l'Ă©pargne mensuelle en fonction d'une promotion au travail.
- Objectif d'Ă©pargne : 10 000 âŹ
- Ăpargne mensuelle actuelle : 400 âŹ
- Promotion prévue dans 6 mois
- Augmentation de l'Ă©pargne mensuelle aprĂšs promotion : 200 ⏠(Ă©pargne mensuelle de 600 âŹ)
# Variables
savings_goal = 10000
monthly_savings = 400
promotion_month = 6
savings_increase = 200
# Initialiser les compteurs
months_needed = 0
total_savings = 0
# Boucle pour atteindre l'objectif d'épargne
while total_savings < savings_goal:
# Vérifie si la promotion a eu lieu
if months_needed == promotion_month:
monthly_savings += savings_increase
# Ajoutez l'épargne mensuelle au total
total_savings += monthly_savings
# Incrémentez le compteur de mois nécessaires
months_needed += 1
print(f"Il vous faudra {months_needed} mois pour atteindre votre objectif d'Ă©pargne de {savings_goal} âŹ.")
Dans cet exemple, nous utilisons une boucle while
pour simuler l'épargne mensuelle et vérifier si l'objectif d'épargne a été atteint. La condition if
à l'intérieur de la boucle vérifie si la promotion a eu lieu et met à jour l'épargne mensuelle en conséquence. Le compteur months_needed
permet de suivre le nombre de mois nécessaires pour atteindre l'objectif d'épargne.
Vous remarquerez Ă©galement lâutilisation de += . Pour comprendre a += 1
est exactement la mĂȘme chose que a = a + 1
. L'opérateur +=
ajoute la valeur de droite à la variable de gauche, puis affecte le résultat à la variable de gauche. Les opérateurs -=
ou ***=
**existent Ă©galement et marchent sur le mĂȘme principe.
a = 5
a += 3 # a = a + 3
print(a) # Affiche 8
b = 10
b -= 1 # b = b - 1
print(b) # Affiche 9
c = 2
c *= 15 # c = c * 15
print(c) # Affiche 30
Mise en pratique
Pour mettre en pratique les concepts abordés dans cette partie, essayons de résoudre un exercice simple. Imaginons que vous avez investi 1000 ⏠dans différents actifs financiers, et vous voulez savoir combien d'années, il faudra pour atteindre un certain objectif de capitalisation.
Supposons que vous avez les informations suivantes :
- Investissement initial : 1000 âŹ
- Objectif de capitalisation : 2000 âŹ
- Taux d'intĂ©rĂȘt annuel : 4 %
Questions :
- Combien d'années faudra-t-il pour atteindre l'objectif de capitalisation ?
- Modifiez le taux d'intĂ©rĂȘt annuel et vĂ©rifiez l'impact sur le nombre d'annĂ©es nĂ©cessaires pour atteindre l'objectif.
- Ajoutez une boucle
for
pour tester diffĂ©rents taux d'intĂ©rĂȘt annuels (par exemple, de 2 % Ă 8 %, par pas de 1 %) et affichez le nombre d'annĂ©es nĂ©cessaires pour atteindre l'objectif pour chaque taux.
Cet exercice devrait vous permettre de mieux comprendre l'utilisation des boucles et des conditions en Python appliquées au contexte de la finance. Un exemple de correction se trouve ici: https://github.com/RobotTraders/Python_For_Finance/blob/main/exercise_correction_chapter_2.ipynb. N'hésitez pas à adapter cet exemple à vos propres besoins et à explorer d'autres scénarios financiers.
Boucles et Conditions en Python
Créer un Robot de Trading Sans Code
Découvrez le Fear and Greed Index : un indicateur clé pour le trading de crypto-monnaies
L'arbitrage : Une rentabilité supérieure au trading sans risque ?
Comment créer un bot de trading rentable sans coder ?
Révélations sérieuses sur l'efficience des marchés : les singes rivalisent avec les banquiers !