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.")

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.