tfra.py

Created by matthieumorvant

Created on February 05, 2024

2.19 KB


import math

def fra_calcul(montant, duree_debut, duree_accord, taux_garanti, taux_reference):
    # Calcul du différentiel
    differentiel = montant * (taux_garanti - taux_reference) * (duree_accord / 12)
    # Calcul de la valeur actualisée
    valeur_actualisee = differentiel / (1 + taux_reference * (duree_accord / 12))
    return differentiel, valeur_actualisee

# Entrée des données utilisateur
operation = input("'1' emprunt / '2' placement: ")
montant = float(input("Montant(€) : "))
duree_debut = float(input("Durée début à accord (mois) : "))
duree_accord = float(input("Durée de l'accord (mois) : "))
taux_garanti = float(input("Tx garanti par le FRA (%) : ")) / 100
taux_reference = float(input("Tx référence (échéance) (%) : ")) / 100

# Calcul et affichage des résultats
differentiel, valeur_actualisee = fra_calcul(montant, duree_debut, duree_accord, taux_garanti, taux_reference)

# Déterminer l'action (versé ou encaissé) en fonction de l'opération
if operation == '1':  # Emprunt
    action = "versé" if taux_reference < taux_garanti else "encaissé"
else:  # Placement
    action = "encaissé" if taux_reference < taux_garanti else "versé"

# Afficher les calculs détaillés
print("\nCalculs détaillés:")
print("Montant concerné: {:.2f} €".format(montant))
print("Durée de l'accord: {:.0f} mois".format(duree_accord))
print("Taux garanti par le FRA: {:.2f}%".format(taux_garanti * 100))
print("Taux de référence à l'échéance: {:.2f}%".format(taux_reference * 100))
print("Différentiel {} par l'investisseur : {:.2f} €".format(action, differentiel))
print("Formule du différentiel: Montant * (Taux garanti - Taux de référence) * (Durée de l'accord / 12)")
print("Valeur actualisée correspondante : {:.2f} €".format(valeur_actualisee))
print("Formule de la valeur actualisée: Différentiel / (1 + Taux de référence * (Durée de l'accord / 12))")

# Explications supplémentaires
if action == "encaissé":
    print("\nL'investisseur encaisse le différentiel car le taux de référence à l'échéance est inférieur au taux garanti.")
else:
    print("\nL'investisseur verse le différentiel car le taux de référence à l'échéance est supérieur au taux garanti.")