Calcolatrice TIR
Calcola il Tasso Interno di Rendimento (TIR) per una serie di flussi di cassa.
Flussi di Cassa Futuri
Informazioni sullo strumento
Il Tasso Interno di Rendimento (TIR) è una metrica critica per valutare la redditività e l'efficienza di investimenti o progetti. Questo calcolatore determina il tasso di sconto al quale il valore attuale netto (VAN) di tutti i flussi di cassa è pari a zero, fornendoti una singola percentuale che rappresenta il rendimento annuale del tuo investimento. Comprendere il TIR aiuta gli investitori e i professionisti finanziari a confrontare diverse opportunità di investimento su basi uguali, indipendentemente dalle loro dimensioni o dalla loro timeline.
Per utilizzare questo calcolatore, inserisci il tuo investimento iniziale (tipicamente un valore negativo) e tutti i flussi di cassa successivi in ordine cronologico con i rispettivi anni. Lo strumento risolve iterativamente il TIR utilizzando metodi numerici. Il TIR è comunemente utilizzato per valutare investimenti di capitale, acquisizioni aziendali, transazioni immobiliari e fattibilità di progetti. È particolarmente prezioso quando devi scegliere tra opportunità di investimento concorrenti o valutare se un progetto soddisfa il tuo tasso di rendimento richiesto.
Tieni presente che il TIR assume il reinvestimento dei flussi di cassa al tasso TIR stesso, il che potrebbe non essere sempre realistico; il TIR modificato (TIRM) può affrontare questo in scenari complessi. Inoltre, il TIR può produrre più soluzioni per schemi di flusso di cassa non convenzionali. Questo calcolatore fornisce il valore TIR primario ed è più affidabile quando i flussi di cassa seguono uno schema convenzionale con un'uscita iniziale seguita da entrate.
Domande Frequenti
Implementazione del Codice
def npv(rate: float, cash_flows: list) -> float:
"""Net Present Value at given rate."""
return sum(cf / (1 + rate) ** t for t, cf in enumerate(cash_flows))
def irr(cash_flows: list, max_iter: int = 1000, tol: float = 1e-7) -> float | None:
"""Internal Rate of Return via Newton-Raphson iteration."""
# Check sign change
positives = any(cf > 0 for cf in cash_flows)
negatives = any(cf < 0 for cf in cash_flows)
if not (positives and negatives):
return None
rate = 0.1 # initial guess
for _ in range(max_iter):
f = npv(rate, cash_flows)
# Derivative: d/dr NPV = sum(-t * cf / (1+r)^(t+1))
df = sum(-t * cf / (1 + rate) ** (t + 1) for t, cf in enumerate(cash_flows))
if df == 0:
break
new_rate = rate - f / df
if abs(new_rate - rate) < tol:
return new_rate
rate = new_rate
return None
# Example: invest $1000, receive $300, $400, $500 over 3 years
cash_flows = [-1000, 300, 400, 500]
result = irr(cash_flows)
if result is not None:
print(f"IRR = {result * 100:.2f}%")
print(f"NPV at IRR ≈ {npv(result, cash_flows):.6f}") # should be ~0Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.