Announcement

Collapse
No announcement yet.

Unit Math Funktion InterestRate

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unit Math Funktion InterestRate

    Hallo Leute,

    bei mir klappt die folgende Funktion in Delphi nicht wirklich.

    erg ist vom Typ double definiert.

    Codezeile: erg:= InterestRate(10, 1000.0, 5000.0, 50000.0, ptEndOfPeriod);

    Sobald die "Codezeile" im Programm abgearbeitet wird, erscheint die Fehlermeldung "InterestRate" im Delphi Programm. Die Unit math wurde eingebunden.

    Hat jemand von euch Erfahrung mit finanzmathematischen Funktionen in Delphi bzw. gibt es da irgendwo eine gute Beispielsammlung, wie man die Funktionen der Unit math einbindet?

    Kennt jemand andere gute Mathe-Units, die über o.a. Funktionsumfang hinausgehen?

    Grüsse,
    Carsten

  • #2
    Hallo Carsten,
    <P>Du hast schon die Unit Math korrekt in Dein Programm eingebunden. Du hast nur deshalb eine Fehlermeldung bekommen, weil Du der Funktion InterestRate in sich unstimmige Zahlenwerte übergeben hast.
    <P>Mit Deinen übergebenen Werten löst Du die Exception EInvalidArgument aus. Laut Delphi-Hilfe wird diese Exception von finanzmathematischen Funktionen ausgelöst, "... wenn einer der Parameter außerhalb des gültigen Bereichs liegt oder die Berechnung unmöglich macht."
    <P>Die Parameter Payment (regelmäßige Zahlungen) und FutureValue (Wert am Ende der Laufzeit) müssen ein von PresentValue (Investition) <B>unterschiedliches Vorzeichen</B> haben.
    <P>Ob nun die Parameter Payment und FutureValue negativ und PresentValue positiv sein müssen (Darlehensberechnung) oder Payment / FutureValue postiv und PreventValue negativ (Investitonsrechnung), hängt von Deiner Aufgabenstellung ab. Üblich ist es, geleistete zahlungen und Verbindlichkeiten zu einem Stichtag (= noch zu leistende Zahlungen) mit negativen Werten und erhaltene Einnahmen und Forderungen zu einem Stichtag (= noch fließende Einnahmen) mit positiven Werten anzugeben.
    <P>InterestRate(1, -1000.0, 5000.0, -4500.0, ptEndOfPeriod)
    ergibt 0.1, also ein (Jahres-) Zinssatz von 10% (leicht im Kopf nachzurechnen). Interpretation: Du erhöltst ein Darlehen über 5.000 EUR (Einnahme, daher positiv). Du mußt jährlich hierfür 1.000 EUR an Annuitäten zahlen (Zahlung negativ!) und am Ende des ersten Jahres hast Du noch eine Darlehensschuld von 4.500 EUR.
    <P>InterestRate(5, 1000.0, -5000.0, 2000.0, ptEndOfPeriod)
    ergibt einen Zinssatz von ca, 10,21% p.A.. Interpretation: Du investierst heute 5,000 EUR (Zahlung, daher negativ), an Dich fließen jährlich 1.000 EUR zurück und am Ende des 5. Jahres kannst Du noch mit weiteren Einnahmen von 2.000 EUR rechnen.
    <P>InterestRate(10, -1000.0, 5000.0, -50000.0, ptEndOfPeriod)
    ergibt zwar 0.35827..., die Berechnung ist aber realitätsfremd. Denn wer nimmt schon ein Darlehen von 5.000 EUR auf, muß hierfür jährlich Annuitäten von 1.000 EUR leisten und hat nach 10 Jahren eine höhere Darlehensschuld (50.000 EUR) als zu Beginn?
    <P>Weiterhin viel Spa0 in den unerfindlichen Gründen der Finanzmathematik ;-).
    <P>Wolfgang Heberge

    Comment

    Working...
    X