Anleihepreisberechnung mit Rendite in C

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Labor lernen wir, den Preis einer Anleihe anhand ihres Kuponrendites in C zu berechnen. Wir beginnen mit dem Einlesen der wichtigsten Anleiheparameter, einschließlich Kuponrate, Nennwert, Rendite und Laufzeit. Anschließend implementieren wir die Barwert-Berechnung, um alle zukünftigen Anleihezahlungen auf ihren aktuellen Wert zu diskontieren, wodurch wir den Anleihepreis erhalten. Schließlich geben wir den berechneten Anleihepreis aus.

Das Labor behandelt grundlegende Finanzmathematik und Zinsberechnungen mit C-Programmierung und bietet ein praktisches Beispiel für die Anleihebewertung, das in verschiedenen Finanzanwendungen anwendbar ist.

Kuponrate, Nennwert, Rendite und Laufzeit einlesen

In diesem Schritt lernen wir, die für die Anleihepreisberechnung in C erforderlichen Parameter einzulesen und zu initialisieren. Diese Parameter umfassen die Kuponrate, den Nennwert, die Rendite und die Laufzeit.

Erstellen wir zunächst eine neue C-Datei, um unsere Anleihepreisberechnung zu implementieren:

cd ~/project
nano bond_price.c

Schreiben wir nun den Code, um die Anleiheparameter zu deklarieren und zu initialisieren:

#include <stdio.h>

int main() {
    // Anleiheparameter
    double coupon_rate = 0.05;   // 5% jährliche Kuponrate
    double face_value = 1000.0;  // Nennwert der Anleihe
    double yield = 0.06;         // Jährliche Rendite bis zur Fälligkeit
    int maturity = 5;            // Jahre bis zur Fälligkeit

    // Ausgabe der Anleiheparameter
    printf("Anleiheparameter:\n");
    printf("Kuponrate: %.2f%%\n", coupon_rate * 100);
    printf("Nennwert: $%.2f\n", face_value);
    printf("Rendite bis zur Fälligkeit: %.2f%%\n", yield * 100);
    printf("Jahre bis zur Fälligkeit: %d\n", maturity);

    return 0;
}

Kompilieren und ausführen des Programms:

gcc bond_price.c -o bond_price
./bond_price

Beispielausgabe:

Anleiheparameter:
Kuponrate: 5.00%
Nennwert: $1000.00
Rendite bis zur Fälligkeit: 6.00%
Jahre bis zur Fälligkeit: 5

Alle Zahlungen auf den Barwert diskontieren

In diesem Schritt implementieren wir die Barwert-Berechnung für Anleihezahlungen, die die Diskontierung von Kuponzahlungen und des Nennwerts auf ihren Barwert umfasst.

Aktualisieren Sie die Datei bond_price.c, um die Barwert-Berechnung einzubeziehen:

cd ~/project
nano bond_price.c

Ändern Sie den Code, um den Barwert der Zahlungsströme zu berechnen:

#include <stdio.h>
#include <math.h>

double calculate_bond_price(double coupon_rate, double face_value,
                             double yield, int maturity) {
    double bond_price = 0.0;

    // Kuponzahlung berechnen
    double coupon_payment = coupon_rate * face_value;

    // Kuponzahlungen diskontieren
    for (int year = 1; year <= maturity; year++) {
        double present_value_coupon = coupon_payment / pow(1 + yield, year);
        bond_price += present_value_coupon;
    }

    // Nennwert diskontieren
    double present_value_face = face_value / pow(1 + yield, maturity);
    bond_price += present_value_face;

    return bond_price;
}

int main() {
    // Anleiheparameter
    double coupon_rate = 0.05;   // 5% jährliche Kuponrate
    double face_value = 1000.0;  // Nennwert der Anleihe
    double yield = 0.06;         // Jährliche Rendite bis zur Fälligkeit
    int maturity = 5;            // Jahre bis zur Fälligkeit

    // Anleihepreis berechnen
    double bond_price = calculate_bond_price(coupon_rate, face_value, yield, maturity);

    // Ergebnisse ausgeben
    printf("Anleihepreisberechnung:\n");
    printf("Kuponrate: %.2f%%\n", coupon_rate * 100);
    printf("Nennwert: $%.2f\n", face_value);
    printf("Rendite bis zur Fälligkeit: %.2f%%\n", yield * 100);
    printf("Jahre bis zur Fälligkeit: %d\n", maturity);
    printf("Anleihepreis: $%.2f\n", bond_price);

    return 0;
}

Kompilieren Sie das Programm mit der Mathematikbibliothek:

gcc bond_price.c -o bond_price -lm
./bond_price

Beispielausgabe:

Anleihepreisberechnung:
Kuponrate: 5.00%
Nennwert: $1000.00
Rendite bis zur Fälligkeit: 6.00%
Jahre bis zur Fälligkeit: 5
Anleihepreis: $952.08

Anleihepreis ausgeben

In diesem Schritt erweitern wir unser Anleihepreisprogramm, um eine detailliertere und formatierte Ausgabe der Anleihepreisberechnung zu liefern.

Aktualisieren Sie die Datei bond_price.c, um die Ausgabeformatierung zu verbessern:

cd ~/project
nano bond_price.c

Ändern Sie den Code, um eine detaillierte Darstellung des Anleihepreises hinzuzufügen:

#include <stdio.h>
#include <math.h>

double calculate_bond_price(double coupon_rate, double face_value,
                             double yield, int maturity) {
    double bond_price = 0.0;

    // Kuponzahlung berechnen
    double coupon_payment = coupon_rate * face_value;

    // Kuponzahlungen diskontieren
    for (int year = 1; year <= maturity; year++) {
        double present_value_coupon = coupon_payment / pow(1 + yield, year);
        bond_price += present_value_coupon;
    }

    // Nennwert diskontieren
    double present_value_face = face_value / pow(1 + yield, maturity);
    bond_price += present_value_face;

    return bond_price;
}

void print_bond_details(double coupon_rate, double face_value,
                         double yield, int maturity, double bond_price) {
    printf("===== Anleihepreisanalyse =====\n");
    printf("Kuponrate:          %.2f%%\n", coupon_rate * 100);
    printf("Nennwert:           $%.2f\n", face_value);
    printf("Rendite bis zur Fälligkeit:    %.2f%%\n", yield * 100);
    printf("Jahre bis zur Fälligkeit:    %d\n", maturity);
    printf("--------------------------------\n");
    printf("Berechneter Anleihepreis: $%.2f\n", bond_price);
    printf("Abzinsung vom Nennwert:     $%.2f (%.2f%%)\n",
           face_value - bond_price,
           ((face_value - bond_price) / face_value) * 100);
    printf("===============================\n");
}

int main() {
    // Anleiheparameter
    double coupon_rate = 0.05;   // 5% jährliche Kuponrate
    double face_value = 1000.0;  // Nennwert der Anleihe
    double yield = 0.06;         // Jährliche Rendite bis zur Fälligkeit
    int maturity = 5;            // Jahre bis zur Fälligkeit

    // Anleihepreis berechnen
    double bond_price = calculate_bond_price(coupon_rate, face_value, yield, maturity);

    // Detaillierte Anleihepreisinformationen ausgeben
    print_bond_details(coupon_rate, face_value, yield, maturity, bond_price);

    return 0;
}

Kompilieren und ausführen des Programms:

gcc bond_price.c -o bond_price -lm
./bond_price

Beispielausgabe:

===== Anleihepreisanalyse =====
Kuponrate:          5.00%
Nennwert:           $1000.00
Rendite bis zur Fälligkeit:    6.00%
Jahre bis zur Fälligkeit:    5
--------------------------------
Berechneter Anleihepreis: $952.08
Abzinsung vom Nennwert:     $47.92 (4.79%)
===============================

Zusammenfassung

In diesem Labor haben wir gelernt, wie man die wichtigsten Parameter für die Anleihepreisberechnung in C liest und initialisiert, einschließlich Kuponrate, Nennwert, Rendite und Laufzeit. Anschließend haben wir die Barwert-Berechnung für Anleihezahlungen implementiert, indem wir Kuponzahlungen und den Nennwert auf ihren Barwert diskontiert haben. Schließlich haben wir den berechneten Anleihepreis ausgegeben.

Das Labor bot eine schrittweise Anleitung zur Berechnung des Anleihepreises unter Berücksichtigung der Rendite in C und deckte die wesentlichen Aspekte des Anleihepreisfindungsprozesses ab. Durch die Befolgung der bereitgestellten Anweisungen können Entwickler ein solides Verständnis der zugrunde liegenden Konzepte erlangen und diese auf reale Anleihepreisfindungsszenarien anwenden.