Zum Inhalt springen
🛠️ToolsShed

IRR Rechner

Berechnet die Interne Rendite (IRR) für eine Reihe von Cashflows.

Zukünftige Cashflows

Jahr 1
Jahr 2
Jahr 3
Jahr 4

Ü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 ~0

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.