Ⅰ. 서론
자금 흐름 일치 문제(cash flow matching problem, CFMP)는 T년도의 장기간에 걸쳐 지급해야 금액을 전액 현금으로 준비하여 매년 지급하는 것이 아니라 채권이나 은행 예금에 투자한 원금과 이자로 충당하는 문제로, 지급 총액 대비 투자 금액을 최대한으로 줄이는 것이 목적이다.[1]
CFMP를 풀 수 있는 방법으로는 선형계획법(linear programming, LP)이 유일하게 알려져 있다.[2-15]
그러나 LP는 T년도 각각에 대한 채권이나 은행 예금의 투자액과 이자에 대한 지급액의 선형 함수 T개를 모두 충족하는 n 종류의 채권과 은행 예금의 투자액을 결정해야 하는 복잡함으로 인해 수기 식으로는 풀 수 없으며, 반드시 선형계획법 해결사(linear programming solver, LPS)의 도움을 받아야만 한다. 대표적인 LPS로는 LINGO(optimization modeling software for linear, nonlinear, and integer programming)[3]가 알려져 있다.
본 논문에서는 LPS 도움없이 완전 수기 식으로 CFMP를 풀 수 있는 알고리즘을 제안한다. 제안된 방법은 최장기 만기 도래 채권부터 최 단기 만기 도래 채권까지 만기도래 내림차순으로 차기 채권의 만기 도래 이전 년도까지 지불액을 충족하는 채권 수량을 매입하는 양을 결정하는 단순한 방법을 적용하였으며, 첫 해부터 최 단기 채권 만기 도래 년도 이전년도 까지는 은행 예금의 원금과 이자액으로 충족시키는 방법으로 은행 예금액을 결정하는 방법을 채택하였다. 2장에서는 예제 문제를 대상으로 선형계획법을 적용하여 얻은 결과의 문제점을 고찰해 본다. 3장에서는 T년도의 어느 한 해에도 은행 잔고 부족액이 발생하지 않는 자금 흐름 일치 문제의 해를 수기 식으로 얻는 알고리즘을 제안한다. 4장에서는 추가 문제를 대상으로 제안된 알고리즘을 적용하여 성능을 검증한다.
Ⅱ. 관련 연구와 문제점
자금흐름 문제에서, 부채 Li (i = 1, 2, ⋯, T)를 커버하기 위해, n 종류의 채권 bj (j = 1, 2, ⋯, n)를 구매하여야 하며, 각 년도에 필요한 현금 흐름 량을 Fij, 각 채권의 초기 구매 가를 pj라 할 경우 선형계획법으로 표현하면 식 (1)과 같으며, 식 (2)의 목적함수의 값인 채권 구매량 xj와 예금 잉여금(surplus) si를 구해야만 한다.[4]
\(\begin{aligned}\begin{array}{l}\sum_{j=1}^{n} F_{1}, x_{j}-s_{1}=L_{1} \\ \sum_{j=1}^{n} F_{i j} x_{j}+s_{i-1}-s_{i}=L_{i}, \quad i=2, \cdots, T\end{array}\end{aligned}\) (1)
minpTx, s.t. Fx + Rs = L, x, s ≥ 0 (2)
where Ri, i = -1, Ri+1, i = 1
표 1은 Baker[2]에서 인용된 연금 채무 기금(funding a pension liability) 마련을 위한 CFMP-1 자금흐름 일치 문제이다. 연금 채무는 14년 동안 총 $310,000을 지급해야 하며, 이를 위해 만기 5년, 11년과 14년의 채권 3종에 투자하여 매년 발생하는 명목 수익률(annual coupon)과 만기 시 원금과 수익률을 가지고 지급액을 해결하며, 채권이 만기되기 이전의 초기 4년간은 은행 단기 예금의 원금과 잔액 이자율 4%(0.04)로 해결하고자 한다. 채권은 액면가(face value)가 $1,000인 경우 현재 구매가(current value)는 각각 $980, $970과 $1,050이며, 명목 수익률은 각각 $60(6%, 0.06), $65(6.5%, 0.065)와 $75(7.5%, 0.075)이다. 이 경우 Y00년에 투자할 채권 구매량 b1, b2, b3와 예금(saving) s를 결정하는 문제이다. 채권과 예금은 정수 값을 가진다.
표 1. 연금채무 CFMP-1
Table 1. CFMP-1 of pension liability
Baker[2]는 CFMP-1에 선형계획법을 적용하여 그림 1의 결과를 제시하였다. 여기서 문제점은 Y04, Y10, Y13과 Y14의 은행 잔고 부족으로 지급액을 충족시키지 못하는 사태가 발생한다는 점이다. 즉, $0.47, $0.60, $1.16과 $1.43의 총 $3.66 부족액이 발생하였다. 따라서 채권은 정수로, 예금은 정수 값인 단위($1,000)를 소수점 아래 셋째자리까지 정확한 액수를 구하여야만 함을 알 수 있다. 참고로 선형계획법으로 구한 결과는 $186,767.71을 투자하여 $310,000을 마련하는 것이다. 여기서 $186,767.71은 73,695x0.98+77,208x0.97+28,837x1.05+ 9,376으로 구한다. 이 데이터는 단위가 $1,000이므로 $186,767,710을 투자하여 14년간 지급해야 할 $310,000,000을 마련하는 계획이다.
그림 1. CFMP-1의 선형계획법 해
Fig. 1. Solution of LP for CFMP-1
이와 같이 CFMP는 T년도의 선형 함수 식을 만족하는 n개의 채권과 은행 예금액을 구하는 선형계획법은 수기 식으로 구하기는 거의 불가능하여 선형계획법 해결사(solver) 프로그램의 도움을 받을 수밖에 없다.
Ⅲ. 장기채권 우선 잔고 알고리즘
본 장에서는 선형계획법을 활용하지 않고, 수기 식으로 CFMP를 풀 수 있는 알고리즘을 제안한다. 제안된 알고리즘은 최장기 채권을 우선으로 장기-단기 채권 순으로 다음 채권의 만기 이전년도까지의 은행 잔고와 부족액의 균형을 맞추고, 최 단기 채권 만기 이전 부족액은 은행 예금으로 충족시키는 장기채권 우선 잔고 알고리즘(long-term bond first balance algorithm, LBFBA)을 제안한다. 제안된 알고리즘은 그림 2와 같이 수행된다.
그림 2. 장기채권 우선 잔고 알고리즘
Fig. 2. Long-term bond first balance algorithm, (LBFBA)
표 1의 CFMP-1 문제에 대해 제안된 LBFBA를 적용한 결과는 그림 3에 제시되어 있다. (a)는 초기치를 설정한 경우이며, (b)는 최장기 채권인 b3 채권 매수 량을 결정하는 과정이다. b3 채권은 최종 년도(Y14)에 만기가 도래하여 1,075b3로 d14 = p14인 $31,000을 충족시키면 되므로 b3 = 31,000/1.075 = 28,837로 -1 < s14 - d14 ≤ 0을 충족시킨다. 여기서 d14 = -$0.23으로 채권 매수 량은 실수 값을 가질 수 없는 관계로 발생하였다. 이 부족액은 마지막으로 설정할 예금 이자로 충당하면 된다.
그림 3. CFMP-1에 관한 장기채권 우선 잔고 알고리즘
Fig. 3. LBFBA for CFMP-1
b2는 Y11에서 만기가 도래하여 Y13까지 부족액을 충족시키면 되므로 s13 - d13 ≥ 0이 되도록 값을 1000, 100, 10, 1 단위로 조절하여 해를 얻는다. b1은 Y5에서 만기가 도래하여 Y10까지 부족액을 충족시키면 되므로 s10 - d10 ≥ 0이 되도록 값을 1000, 100, 10, 1 단위로 조절하여 해를 얻는다. 마지막으로 s는 b1 채권이 Y05에서 만기가 도래하므로 Y04년까지의 부족액을 충족시켜야 하므로 s4 - d4 ≥ 0이면서 기존의 채권(정수 값)으로 부족액이 발생한 s14 ≥ d14도 충족시키도록 예금 액수를 결정하면 된다.
Ⅳ. 알고리즘 적용 및 결과 분석
본 장에서는 표 2의 CFMP-2[3]에 대해 제안된 LBFBA를 적용하여 본다. CFMP-2는 주 복권회사에서 로또 상금을 15년간 $319,000,000을 분할 지급하는 계획이며, 첫 해(Y00)에는 현금으로 $10,000,000을 지급하고, 나머지 14년간에는 채권 2종류와 은행 예금과 이자로 충당하고자 하는 문제이다. 이 문제에 대해 선형계획법 해결사인 LINGO 패키지를 이용하여 그림 4의 결과를 제시하였다.
표 2. 로또 상금 지급 CFMP-2
Table 2. CFMP-2 of lottery prizes
그림 4. CFMP-2에 관한 LINGO 해
Fig. 4. LINGO solution for CFMP-2
그림 4의 결과를 보면 b1은 96, b2는 90, 단기 펀드에 $4.8000, 초기 현금 $10을 투자하여 총 투자액은 $195.73으로 $319(단위 : 1,000,000)를 지급하고자 하였으나 Y05와 Y12에서 잔액이 부족하여 지급불능 사태가 발생할 수 있음을 알 수 있다. CFMP-2에 대해 LBFBA를 적용한 결과는 그림 5에 제시하였다. 여기서 b2는 64, b1은 118, f는 $10.8740, 초기 현금 $10을 투자하여 총 투자액은 $198.27로 15년간 은행 잔고 부족으로 인한 사태를 방지할 수 있음을 알 수 있다. 결론적으로 LINGO에 비해 $4.54를 추가한 투자액을 보였으나 잔고 부족 사태를 방지하는 결과를 얻을 수 있었다.
그림 5. CFMP-2에 관한 장기채권 우선 잔고 알고리즘
Fig. 5. LBFBA for CFMP-2
제안된 LBFBA는 모든 실험 데이터에 대해 은행 잔고 부족 사태 없이 최적의 자금 흐름 일치 계획을 만들 수 있음을 보였으며, 선형계획법 해결사의 도움 없이 수기식으로 해를 구하는 단순함도 보였다.
Ⅴ. 결론
본 논문은 자금흐름 일치 문제(CFMP)에 대해 선형계획법 해결사의 도움 없이 수기 식에 해를 구할 수 있는 알고리즘을 제안하였다.
CFMP는 T년도 간 지불 총액을 전액 현금으로 지급하지 않고 n 종류의 채권과 은행 예금에 투자하여 원금과 이자로 충당하는 계획을 수립하는 문제이다. 이 문제의 핵심은 채권은 만기까지는 원금을 회수할 수 없으므로 최 단기 채권이 만기가 도래하는 이전 년도까지는 은행 예금의 원금과 이자로 충당해야 하며, 현 채권 만기가 도래하는 년도부터 차기 채권 만기 도래 이전 년도까지는 현재의 채권 원금을 은행 예금으로 재투자하여 원금과 이자로 충당하는 방법을 적용하면 쉽게 문제를 풀수 있다. 따라서 본 논문에서는 최장기 채권부터 최 단기 채권까지 만기 도래 내림차순으로 해당 채권의 원금과 은행 이자로 차기 채권 만기 도래 이전 년도의 은행 예금 잔금(surplus, si)과 지급 부족액(deficit, di)에 대해 si - di ≥ 0로 지급불능 사태를 방지하도록 하였다. 채권 매수 량과 은행 예금액은 1000, 100, 10, 1 단위로 조절하면서 si - di ≥ 0가 되도록 수기 식으로 결정하였다.
본 논문에서 제안한 알고리즘을 2개의 문제에 대해 적용한 결과 선형계획법은 특정 연도에 부족액이 발생하는 경향을 보였으나 제안된 알고리즘은 항상 si - di ≥ 0로 CFMP의 원래 취지를 정확히 반영한 자금흐름 일치 계획을 수립할 수 있음을 보였다.
References
- Goldman Sachs Asset Management "Cash Flow Matching: The Next Phase of Pension Plan Management," pp. 1-7, Feb. 2020.
- K. R. Baker, "Gaining Insight in Linear Programming from Patterns in Optimal Solutions," INFORMS Transactions on Education, Vol. 1, No. 1, pp. 4-17, Sep. 2000, https://doi.org/10.1287/ited.1.1.4
- Lindo Systems, "LINGO 16.0 Users Manual: Bond Portfolio Optimization Model: PBOND," https://www.lindo.com/doc/online_help/lingo16_0/index.html?bond_portfolio_optimization_pbond.htm, Retrieved Nov. 2022.
- Wikipedia, "Cashflow matching," https://en.wikipedia.org/wiki/Cashflow_matching, Retrieved Nov. 2022.
- G. Cornuejols, J. Pena, and R. Tutuncu, "Optimization Methods in Finance(2nd ed.)," Cambridge University Press. pp. 35-37. 2018.
- G. Iyrngar, "Cash Flow Matching: A Risk Management Approach," North American Actuarial Journal, Vol. 13, No. 3, pp. 370-384, Jan. 2009. https://doi.org/10.1080/10920277.2009.10597562
- D. Shang and S. Uryasev, "Cash Flow Matching Problem with CVaR Constraints: A Case Study with Portfolio Safeguard," Project Report 2011-1, Risk Management and Financial Engineering Lab. Department of Industrial and Systems Engineering, University of Florida, Jan. 2011.
- R-bloggers, "A Simple ALM Cash Flow Matching using Excel and R," https://www.r-bloggers.com/2021/09/a-simple-alm-cash-flow-matching-using-excel-and-r/, Sep. 2021.
- Breaking Down Finance, "Cash Flow Matching," https://breakingdownfinance.com/finance-topics/bond-valuation/cash-flow-matching/, Retrieved Nov. 2022.
- J. Davis, "Cash Matching Strategy," https://www.youtube.com/watch?v=ytEJDB-cXlM, Retrieved Nov. 2022.
- V. Jhawar, "Portfolio Immunization vs. Cash Flow Matching: What's the Difference?," https://www.investopedia.com/articles/investing/022615/portfolio-immunization-vs-cash-flow-matching.asp, Jan. 2022.
- Course Hero, "A simple optimal portfolio problem is the cash matching problem," https://www.coursehero.com/tutors-problems/Math-Other/28541237-A-simple-optimal-portfolio-problem-is-the-cash-matching-problem-Suppo/, Retrieved Nov. 2022.
- R. Nils, "Rolling 13 Month Cash Flow Report," https://www.solverglobal.com/report-budget-forecast-and-dashboard-template-glossary/rolling-13-month-cash-flow-report-example/, Aug. 2020.
- GGM Nonprofit Consulting, "Model Cash Flow Projection (Free Download)," https://www.ggmnonprofitconsulting.com/news/2020/2/4/notes-on-using-the-monthly-cash-flow-projection, Retrieved Nov. 2022.
- W. Suo, "Comm 324 -Managing Bond Portfolios Passive Strategies," https://slideplayer.com/slide/9196525/,Retrieved Nov. 2022.