C 언어로 수익률이 주어진 채권 가격 계산

CBeginner
지금 연습하기

소개

이 실습에서는 C 언어를 사용하여 채권의 수익률을 기반으로 채권 가격을 계산하는 방법을 배웁니다. 우선 쿠폰율, 액면가, 수익률 및 만기일과 같은 주요 채권 매개변수를 읽습니다. 그런 다음, 미래 채권 지급액을 현재 가치로 할인하는 현재 가치 계산을 구현하여 채권 가격을 얻습니다. 마지막으로 계산된 채권 가격을 출력합니다.

이 실습은 C 프로그래밍을 사용하여 기본적인 금융 수학 및 이자 계산을 다루며, 다양한 금융 애플리케이션에 적용 가능한 채권 가격 산정의 실제 예제를 제공합니다.

쿠폰율, 액면가, 수익률, 만기일 읽기

이 단계에서는 C 언어에서 채권 가격 계산에 필요한 주요 매개변수 (쿠폰율, 액면가, 수익률, 만기일) 를 읽고 초기화하는 방법을 배웁니다.

먼저 채권 가격 계산을 구현할 새로운 C 파일을 생성합니다.

cd ~/project
nano bond_price.c

이제 채권 매개변수를 선언하고 초기화하는 코드를 작성합니다.

#include <stdio.h>

int main() {
    // 채권 매개변수
    double coupon_rate = 0.05;   // 연 5% 쿠폰율
    double face_value = 1000.0;  // 채권 액면가
    double yield = 0.06;         // 만기까지의 연 수익률
    int maturity = 5;            // 만기까지의 기간 (년)

    // 채권 매개변수 출력
    printf("채권 매개변수:\n");
    printf("쿠폰율: %.2f%%\n", coupon_rate * 100);
    printf("액면가: $%.2f\n", face_value);
    printf("만기 수익률: %.2f%%\n", yield * 100);
    printf("만기까지 기간: %d년\n", maturity);

    return 0;
}

프로그램을 컴파일하고 실행합니다.

gcc bond_price.c -o bond_price
./bond_price

예상 출력:

채권 매개변수:
쿠폰율: 5.00%
액면가: $1000.00
만기 수익률: 6.00%
만기까지 기간: 5 년

모든 지급액을 현재 가치로 할인하기

이 단계에서는 채권 지급액에 대한 현재 가치 계산을 구현합니다. 이는 쿠폰 지급액과 액면가를 현재 가치로 할인하는 것을 포함합니다.

bond_price.c 파일을 업데이트하여 현재 가치 계산을 포함합니다.

cd ~/project
nano bond_price.c

현금 흐름의 현재 가치를 계산하도록 코드를 수정합니다.

#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;

    // 쿠폰 지급액 계산
    double coupon_payment = coupon_rate * face_value;

    // 쿠폰 지급액 할인
    for (int year = 1; year <= maturity; year++) {
        double present_value_coupon = coupon_payment / pow(1 + yield, year);
        bond_price += present_value_coupon;
    }

    // 액면가 할인
    double present_value_face = face_value / pow(1 + yield, maturity);
    bond_price += present_value_face;

    return bond_price;
}

int main() {
    // 채권 매개변수
    double coupon_rate = 0.05;   // 연 5% 쿠폰율
    double face_value = 1000.0;  // 채권 액면가
    double yield = 0.06;         // 만기까지의 연 수익률
    int maturity = 5;            // 만기까지의 기간 (년)

    // 채권 가격 계산
    double bond_price = calculate_bond_price(coupon_rate, face_value, yield, maturity);

    // 결과 출력
    printf("채권 가격 계산:\n");
    printf("쿠폰율: %.2f%%\n", coupon_rate * 100);
    printf("액면가: $%.2f\n", face_value);
    printf("만기 수익률: %.2f%%\n", yield * 100);
    printf("만기까지 기간: %d년\n", maturity);
    printf("채권 가격: $%.2f\n", bond_price);

    return 0;
}

수학 라이브러리와 함께 프로그램을 컴파일합니다.

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

예상 출력:

채권 가격 계산:
쿠폰율: 5.00%
액면가: $1000.00
만기 수익률: 6.00%
만기까지 기간: 5 년
채권 가격: $952.08

채권 가격 출력

이 단계에서는 채권 가격 계산 결과를 더 자세하고 정형화된 형식으로 출력하도록 채권 가격 프로그램을 개선합니다.

bond_price.c 파일을 업데이트하여 출력 형식을 개선합니다.

cd ~/project
nano bond_price.c

코드를 수정하여 자세한 채권 가격 정보를 표시합니다.

#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;

    // 쿠폰 지급액 계산
    double coupon_payment = coupon_rate * face_value;

    // 쿠폰 지급액 할인
    for (int year = 1; year <= maturity; year++) {
        double present_value_coupon = coupon_payment / pow(1 + yield, year);
        bond_price += present_value_coupon;
    }

    // 액면가 할인
    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("===== 채권 가격 분석 =====\n");
    printf("쿠폰율:          %.2f%%\n", coupon_rate * 100);
    printf("액면가:           $%.2f\n", face_value);
    printf("만기 수익률:    %.2f%%\n", yield * 100);
    printf("만기까지 기간:    %d년\n", maturity);
    printf("--------------------------------\n");
    printf("계산된 채권 가격: $%.2f\n", bond_price);
    printf("액면가 대비 할인액: $%.2f (%.2f%%)\n",
           face_value - bond_price,
           ((face_value - bond_price) / face_value) * 100);
    printf("===============================\n");
}

int main() {
    // 채권 매개변수
    double coupon_rate = 0.05;   // 연 5% 쿠폰율
    double face_value = 1000.0;  // 채권 액면가
    double yield = 0.06;         // 만기까지의 연 수익률
    int maturity = 5;            // 만기까지의 기간 (년)

    // 채권 가격 계산
    double bond_price = calculate_bond_price(coupon_rate, face_value, yield, maturity);

    // 자세한 채권 가격 정보 출력
    print_bond_details(coupon_rate, face_value, yield, maturity, bond_price);

    return 0;
}

프로그램을 컴파일하고 실행합니다.

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

예상 출력:

===== 채권 가격 분석 =====
쿠폰율:          5.00%
액면가:           $1000.00
만기 수익률:    6.00%
만기까지 기간:    5 년
--------------------------------
계산된 채권 가격: $952.08
액면가 대비 할인액: $47.92 (4.79%)
===============================

요약

이 실습에서는 C 언어로 채권 가격을 계산하는 데 필요한 주요 매개변수 (쿠폰율, 액면가, 수익률, 만기) 를 읽고 초기화하는 방법을 배웠습니다. 또한, 채권 지급액에 대한 현재 가치 계산을 구현하여 쿠폰 지급액과 액면가를 현재 가치로 할인했습니다. 마지막으로 계산된 채권 가격을 출력했습니다.

이 실습은 C 언어로 수익률이 주어졌을 때 채권 가격을 계산하는 단계별 가이드를 제공하여 채권 가격 산정 과정의 필수적인 측면을 다루었습니다. 제공된 지침을 따르면 개발자는 기본 개념을 확실히 이해하고 실제 채권 가격 산정 시나리오에 적용할 수 있습니다.