def calculer_resultats(creance, tx_a_terme, strike, tx_spot, prime_percent): # Calcul de la prime prime_payee = (prime_percent / 100) * (creance / tx_spot) detail_prime = "{}% de {} / {} = {:.2f} €".format(prime_percent, creance, tx_spot, prime_payee) # Calcul du seuil de rentabilité x x = (1 / strike) - (prime_payee / creance) detail_x = "(1 / {}) - ({:.2f} / {}) = {:.4f}".format(strike, prime_payee, creance, x) # Calcul de l'encaissement sans couverture sans_couverture = creance / tx_a_terme detail_sans_couverture = "{} / {} = {:.2f} €".format(creance, tx_a_terme, sans_couverture) if tx_a_terme > strike: # Exercer l'option description_action = "Tx à terme > Strike: Option levée" montant_encaisse = creance / strike detail_montant_encaisse = "{} / {} = {:.2f} €".format(creance, strike, montant_encaisse) else: # Ne pas exercer l'option description_action = "Tx à terme < Strike: Option non levée" montant_encaisse = sans_couverture detail_montant_encaisse = "{} / {} = {:.2f} €".format(creance, tx_a_terme, montant_encaisse) # Calculs nets net_encaisse = montant_encaisse - prime_payee detail_net_encaisse = "{:.2f} - {:.2f} = {:.2f} €".format(montant_encaisse, prime_payee, net_encaisse) cours_obtenu = creance / net_encaisse detail_cours_obtenu = "{} / {:.2f} = {:.3f}".format(creance, net_encaisse, cours_obtenu) detail_calculs = """ Prime payée au vendeur: {} Montant encaissé brut (Nat/Etr): {} Montant net encaissé: {} Cours obtenu après couverture (Nat/Etr): {} Encaissement sans couverture (Nat/Etr): {} Seuil de rentabilité (x) (Nat/Etr): {}""".format(detail_prime, detail_montant_encaisse, detail_net_encaisse, detail_cours_obtenu, detail_sans_couverture, detail_x) return description_action, detail_calculs # Entrée des données utilisateur creance = float(input("Entrez la créance : ")) tx_a_terme = float(input("Entrez le Tx à terme (Nat/Etr) : ")) strike = float(input("Entrez le Strike (Nat/Etr) : ")) tx_spot = float(input("Entrez le Tx spot (Nat/Etr) : ")) prime_percent = float(input("Entrez le pourcentage de prime : ")) # Exécution des calculs description_action, detail_calculs = calculer_resultats(creance, tx_a_terme, strike, tx_spot, prime_percent) # Affichage des résultats print("\nRésultats:") print(description_action) print(detail_calculs)