1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package com.nickokiss.investor.function;
22
23 import java.math.BigDecimal;
24
25 import com.nickokiss.investor.calc.BondCalc;
26 import com.nickokiss.investor.util.TkFinConstructionException;
27
28
29
30
31
32 public class BondPriceFunction implements Function {
33
34 private BigDecimal faceValue;
35 private BigDecimal paymentsPerYear;
36 private BigDecimal remainingCouponPayments;
37 private BigDecimal couponValue;
38
39 public BondPriceFunction(BigDecimal faceValue, BigDecimal paymentsPerYear, BigDecimal remainingCouponPayments, BigDecimal couponValue) {
40 this.faceValue = faceValue;
41 this.paymentsPerYear = paymentsPerYear;
42 this.remainingCouponPayments = remainingCouponPayments;
43 this.couponValue = couponValue;
44 }
45
46 @Override
47 public BigDecimal getValue(BigDecimal yield) throws TkFinConstructionException {
48 BondCalc calc = new BondCalc();
49 return calc.getCurrentPrice(faceValue, yield, paymentsPerYear, remainingCouponPayments, couponValue);
50 }
51 }