IRR Rechner
Berechnet die Interne Rendite (IRR) für eine Reihe von Cashflows.
Zukünftige Cashflows
Über dieses Tool
Der Interne Zinssatz (IZF) ist eine kritische Kennzahl zur Bewertung der Rentabilität und Effizienz von Investitionen oder Projekten. Dieser Rechner bestimmt den Diskontierungssatz, bei dem der Barwert (NPV) aller Zahlungsströme null ist, und gibt Ihnen einen einzelnen Prozentsatz an, der die jährliche Rendite Ihrer Investition darstellt. Das Verständnis des IZF hilft Investoren und Finanzexperten, verschiedene Investitionsmöglichkeiten unabhängig von ihrer Größe oder ihrem Zeithorizont auf gleicher Basis zu vergleichen.
Um diesen Rechner zu nutzen, geben Sie Ihre Anfangsinvestition (typischerweise ein negativer Wert) und alle nachfolgenden Zahlungsströme in chronologischer Reihenfolge mit ihren jeweiligen Jahren ein. Das Tool löst den IZF iterativ mit numerischen Methoden. Der IZF wird häufig zur Evaluierung von Kapitalinvestitionen, Unternehmensübernahmen, Immobilientransaktionen und Projektdurchführbarkeit verwendet. Er ist besonders wertvoll, wenn Sie zwischen konkurrierenden Investitionsmöglichkeiten wählen müssen oder beurteilen möchten, ob ein Projekt Ihre erforderliche Rendite erfüllt.
Beachten Sie, dass der IZF davon ausgeht, dass Zahlungsströme zum IZF-Satz selbst reinvestiert werden, was nicht immer realistisch sein kann; der modifizierte Interne Zinssatz (MIZF) kann dies in komplexen Szenarien berücksichtigen. Darüber hinaus kann der IZF für unkonventionelle Zahlungsmuster mehrere Lösungen ergeben. Dieser Rechner liefert den primären IZF-Wert und ist am zuverlässigsten, wenn Zahlungsströme einem konventionellen Muster mit einer anfänglichen Auszahlung gefolgt von Einzahlungen entsprechen.
Häufig gestellte Fragen
Code-Implementierung
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.