SPB Git
2.7 KB · 38 lines python
1#!/usr/bin/env python32"""Ch. 31, figure « levier » (DONNÉES SYNTHÉTIQUES, cas 3) : TRI des fonds propres sur dix ans et rendement courant de la3première année (cash-on-cash) en fonction du ratio prêt-valeur, achat à la valeur DCF (2 208 566 $), prêt à 4,12 % sur 480 mois ;4repères : rendement sans levier 7,25 %, taux de capitalisation implicite 4,07 %, RPV retenu 66,8 % (RCD 1,20) et RPV 75 %.5Sortie : ch31-fig-levier.pdf."""6from __future__ import annotations7import sys, pathlib8sys.path.insert(0, str(pathlib.Path(__file__).resolve().parents[1]))9import numpy as np, matplotlib.pyplot as plt10from traite.style import setup, palette, savefig, LARGEUR11from cases import ch31_financement as c1213def main():14    setup()15    r = c.base(); fi = c.financement(r)16    t = c.tri_fp_courbe(r, np.linspace(0.0, 0.85, 52))17    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(LARGEUR, 3.0))18    x = t["rpv"] * 10019    ax1.plot(x, t["tri_fp"] * 100, color=palette.cat[0], lw=1.8, label="TRI des fonds propres (10 ans)")20    ax1.axhline(fi["tri_sans_levier"] * 100, color=palette.ink2, lw=0.8, ls="--"); ax1.text(1, 7.25 + 0.3, "sans levier : 7,25 %", fontsize=7.5, color=palette.ink)21    ax1.axhline(fi["k_annuel"] * 100, color=palette.cat[2], lw=0.8, ls=":"); ax1.text(1, fi["k_annuel"] * 100 + 0.3, "coût effectif de la dette k ≈ 4,06 %", fontsize=7.5, color=palette.ink)22    ax1.axvline(fi["rpv"] * 100, color=palette.cat[1], lw=0.8); ax1.text(fi["rpv"] * 100 - 1, 15.6, "RPV retenu\n66,8 % (RCD 1,20)", fontsize=7, ha="right", color=palette.ink)23    ax1.plot([fi["rpv"] * 100], [fi["tri_fp"] * 100], "o", color=palette.cat[1], ms=4.5)24    ax1.set_xlabel("Ratio prêt-valeur (%)"); ax1.set_ylabel("Rendement (%)"); ax1.set_xlim(0, 87); ax1.set_ylim(0, 17)25    ax1.set_title("Rendement total : levier positif", loc="left")26    ax2.plot(x, t["cash_on_cash_1"] * 100, color=palette.cat[0], lw=1.8)27    ax2.axhline(fi["R_dcf"] * 100, color=palette.ink2, lw=0.8, ls="--"); ax2.text(1, fi["R_dcf"] * 100 + 0.15, "R = RNE$_1$/V = 4,07 %", fontsize=7.5, color=palette.ink)28    ax2.axhline(0, color=palette.ink2, lw=0.6)29    ax2.axvline(fi["rpv"] * 100, color=palette.cat[1], lw=0.8)30    ax2.plot([fi["rpv"] * 100], [fi["cash_on_cash_1"] * 100], "o", color=palette.cat[1], ms=4.5)31    ax2.annotate("2,05 %", xy=(fi["rpv"] * 100, fi["cash_on_cash_1"] * 100), xytext=(fi["rpv"] * 100 - 22, 1.2), fontsize=7.5, arrowprops=dict(arrowstyle="-", color=palette.ink2, lw=0.6))32    ax2.set_xlabel("Ratio prêt-valeur (%)"); ax2.set_ylabel("Rendement courant, année 1 (%)"); ax2.set_xlim(0, 87); ax2.set_ylim(-2.5, 5)33    ax2.set_title("Rendement courant : levier négatif (R < f)", loc="left")34    savefig(fig, "ch31/ch31-fig-levier.pdf")3536if __name__ == "__main__":37    main()38
Files · da8a4ee0304be0aa9c54ed0aad08d985fc4539fc
Menu

Theme