【金融学习】商业贷款分析笔记

笔记内容来源于《金融数量分析-基于MATLAB编程(第4版)》。

按揭的通俗意义就是指用预购的商品房进行贷款抵押。它是指按揭人将预购的物业产权转让于按揭受益人(银行)作为还款保证,还款后,按揭受益人将物业的产权转让给按揭人。

具体地说,按揭贷款是指购房者以所预购的房屋作为抵押品而从银行获得贷款,购房者按照按揭契约中规定的归还方式和期限分期付款给银行;银行按一定的利率收取利息。如果贷款人违约,那么银行有权收走房屋。

1 按揭贷款还款方式

1)等额还款

借款人每期以相等的金额偿还贷款,按还款周期逐期归还,在贷款截至日期前偿还全部本息。例如,贷款30万元,20年还款期,每月还款4000元。

2)等额本金还款

借款人每期需偿还等额本金,同时付清本期应付的贷款利息,而每期归还的本金等于贷款总额除以贷款期数。实际每期还款总额为递减数列

3)等额递增还款

借款人每期以等额还款为基础,以每次及那个固定期数还款额增加一个固定金额的方式还款(如三年期贷款,每隔12个月增加还款100元,若第一年每月还款1000元,则第二年每月还款1100元,第三年为1200元)。此种还款方式适用于当前收入较低,但收入曲线呈上升趋势的年轻客户。

4)等额递减还款

借款人每期以等额还款为基础,以每次间隔固定期数还款额减少一个固定金额的方式还款(如三年期贷款,每隔12个月减少还款100元,若第一年每月还款1000元,则第二年每年还款900元,第三年为800元)。此种还款方式适用于当前收入较高,或有一定积蓄可用于还款的客户。

5)按期付息还款

借款人按期还本,按一间隔期(还本间隔)等额偿还贷款本金,再按另一间隔期(还息间隔)定期结息,如每三个月偿还一次贷款本金,每月偿还贷款利息。此种还款方式适合使用季度、年度奖金进行还款的客户。

6)到期还本还款

借款人在整个贷款期间不归还任何本金,在贷款到期日一次全部还清贷款本金。贷款利息可按月、按季或到期偿还,也可以在贷款到期日一次性偿还。

等额还款和等额本金还款是最主要的两种还款方式,其余几种基本上都是从这两种方式的基础上衍生出来的。

2 等额还款模型

借款人每期以相等的金额偿还贷款,按还款周期逐期归还,在贷款截止日前全部还清本息。

参数假设:

R:月贷款利率

B:总借款额

MP:月还款额(每月还款的钱,一部分还总借款额B,一部分还利息)

n:还款期

1.根据月初贷款余额计算该月还款额中的现金流,包括支付利息和偿还本金,月还款总额一定。

1
2
3
YE(t + 1) = YE(t) -BJ(t) 
BJ(t) = MP - IR(t)
IR(t) = YE(t) * R

YE(t)为月初贷款余额;IR(t)为月利息偿还额;BJ(t)为本月金额偿还额;t = 1,……,n。

2.随着如期缴纳最后一期月供贷款,贷款全部还清,即YE(t) = 0。
通常情况下,贷款总额和利息是已知的,月还款额与还款期限未定,根据上述等额还款模型,月还款期限存在着关联关系,当YE(1) = B时,计算YE(t + 1) = YE(t) - BJ(t) = 0,得到MP的值,最后的还款余额为0。

通过MATLAB编程,等额还款模型的函数语法如下:

F = AJfixPayment(MP, Num, B, Rate)

输入参数:

MP:每月还款总额

Num:还款期数

B:贷款总额

Rate:贷款利率

输出参数:

F:最后的贷款余额

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function F = AJfixPayment(MP, Num, B, Rate)
%初始化相关变量,初始值为0
IR = zeros(1, Nums);
YE = zeros(1, Nums);
BJ = zeros(1, Nums);
%第1期贷款本金
YE(1) = B;
for i = 1 : Num
%第1期应还利息
IR(i) = Rate * YE(i);
%第i期归还的本金 = 第i期还款 - 第i期利息
BJ(i) = MP - IR(i);
%非最后一次还款
if i < Num
%第i + 1期本金 = 第i期本金 - 第i期归还的本金
YE(i + 1) = YE(i) - BJ(i);
end
end
%目标函数
F = B - sum(BJ);
end

注:zeros(1, Num)表示预先设置一个Num维行零向量(注明零向量很有必要,因为最后要用sum函数,不能随便初始化,比如ones)。

例1:

贷款50万元,10年还款共120期,年贷款利率5%,若每月还款5000元,则贷款余额为多少?(月利率为年利率5%除以12):

1
2
3
4
5
6
7
8
9
%还款次数
Num = 12 * 10;
%贷款余额
B = 5e5;
%月利率
Rate = 0.05/12;
%每次还款5000元
MP =5000;
F = AJfixPayment(MP, Num, B, Rate)

输出结果如下:

1
2
3
4
F =

4.7093e+04

结算结果为4709.3元,即贷款余额为4709.3元。

使用fsolve函数求出合适的MP值,使得在120次还款后,贷款余额为0(fsolve函数,即求解x,使得F(x) = 0,求任意贷款余额的方法,构建G(x) = F(x) + a, a为任意正数)。

代码如下:

1
2
3
4
5
6
7
Num = 12 * 10;
B = 5e5;
Rate = 0.05 / 12;
%搜索初始值
MPo = 1000;
%调用fsolve函数求解
MP = fsolve(@(MP)AJfixPayment(MP, Num, B, Rate), MPo)

输出结果如下:

1
2
3
4
MP =

5.3033e+03

计算结果为5303.3元,即贷款50万元,10年还款总共120期,年贷利率5%,若每月还款5303.3元,则10年(即还款120期)后贷款余额为0。

注:fslove是MATLAB最主要的求解多变量方程与方程组的函数。

函数语法:

[x, fval, exitflag, output, jacobian] = fsolve(fun, x0, options)

输入参数:

fun:目标函数,一般使用M文件形式给出;

x0:优化算法初始迭代点;

options:参数设置。

输出参数:

x:最优点输出(或最后迭代点)。

fval:最优点(或最后迭代点)对应的函数值。

exitflag:函数结束信息(具体参见MATLAB Help)。

output:函数基本信息,包括迭代次数、目标函数最大计算次数、使用算法名称、计算规模;

jacobian:Jaobian矩阵(主要用来判断是否得到有效解)。

等额还款模型具有解析解:

等额还款模型.gif

MP为月还款额;R为月贷利率;B为总借款额;n为还款期限。

3 等额本金还款模型与计算

借款人每期需偿还等额本金,同时付清本期应付的贷款利息,而每期归还的本金等于贷款总额除以贷款期数。

参数设置:

R:月贷款利率;

B:借款总额;

MB:月还本金;

n:还款期。

1.根据月初贷款余额计算该月还款额中的现金流,包括支付的利息和偿还得本金,月还款本金一定。

1
2
3
4
5
MB = B / n
YE(1) = B
YE(t + 1) = YE(t) - MB
MP(t) = MB + R * YE(t)
IR(t) = R * YE(t)

式中:YE(t)为月初贷款余额;IR(t)为月利息偿还额;MP(t)为月还款总额;t = 1,……,n。

2 随着如期缴纳最后一期月供贷款,贷款全部还清,即YE(n) = 0.

等额本金还款得计算比较简单,函数语法如下:

MP = AJvarPayment(Num, B, Rate)

输入参数:

Num:还款期数;

B:贷款总额;

Rate:贷款利率。

输出参数:

1
2
3
4
5
6
function MP = AJvarPayment(Num, B, Rate)
MP = zeros(1, Num);
YE = zeros(1, Num);
MB = B / Num;
YE = B - cumsum([0, MB * ones(1, Num - 1)]);
MP = MB + Rate * YE;

cumsum(X)函数是累加函数,例如若X = [1, 2, 3, 4, 5, 6],则cumsum(X) = [1, 3, 6, 10, 15, 21]。

例2:

假设贷款50万元,10年还款工120期,年贷款利率5%,采用等额本金还款方式,则每月还款总额为多少?

求解代码如下:

1
2
3
4
Num = 12 * 10;
B = 5e5;
Rate = 0.05 / 12;
MP = AJvarPayment(Num, B, Rate)

输出结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

MP =

1.0e+03 *

1 至 14 列

6.2500 6.2326 6.2153 6.1979 6.1806 6.1632 6.1458 6.1285 6.1111 6.0938 6.0764 6.0590 6.0417 6.0243

15 至 28 列

6.0069 5.9896 5.9722 5.9549 5.9375 5.9201 5.9028 5.8854 5.8681 5.8507 5.8333 5.8160 5.7986 5.7813

29 至 42 列

5.7639 5.7465 5.7292 5.7118 5.6944 5.6771 5.6597 5.6424 5.6250 5.6076 5.5903 5.5729 5.5556 5.5382

43 至 56 列

5.5208 5.5035 5.4861 5.4688 5.4514 5.4340 5.4167 5.3993 5.3819 5.3646 5.3472 5.3299 5.3125 5.2951

57 至 70 列

5.2778 5.2604 5.2431 5.2257 5.2083 5.1910 5.1736 5.1563 5.1389 5.1215 5.1042 5.0868 5.0694 5.0521

71 至 84 列

5.0347 5.0174 5.0000 4.9826 4.9653 4.9479 4.9306 4.9132 4.8958 4.8785 4.8611 4.8438 4.8264 4.8090

85 至 98 列

4.7917 4.7743 4.7569 4.7396 4.7222 4.7049 4.6875 4.6701 4.6528 4.6354 4.6181 4.6007 4.5833 4.5660

99 至 112 列

4.5486 4.5312 4.5139 4.4965 4.4792 4.4618 4.4444 4.4271 4.4097 4.3924 4.3750 4.3576 4.3403 4.3229

113 至 120 列

4.3056 4.2882 4.2708 4.2535 4.2361 4.2187 4.2014 4.1840

>>

4 还款方式比较

通过上两例可以画出等额本金以及等额本息还款得对比图:

1
2
3
4
5
6
7
8
9
 ... ... %例2中等额本金程序
plot(m,(5.3033e+03)*ones(1,Num), 'r-');%例1中求得等额本息
hold on
plot(m, MP, 'b-');

xlabel('还款序列t');
ylabel('还款金额/元');

legend('MPFix','MPVar');

两种还款方式比较.jpg

以贷款50万元,10年还款工120期,年贷款利率5%为例,等额还款方式得还款总额为636390元,等额本金还款方式得总额为626040元,从数量上讲等额本金方式的总还款额较少。

但是如果考虑到货币得时间价值,PV(MPFix) = PV(MPVar) = 5000元,两种还款方式得现值都是相等的。

5 提前还款违约金估算

商业银行的盈利模式之一为吸收存款,放出贷款后的存贷差。以上述贷款案例为例,若贷款50万元,10年还款共120期,年贷款利率5%,则采用等额还款方式计算出MP = 5303.3元,银行的贷款利率为5%,如果其存款利率为4%(仅为假设数据),则现金流现值MATLAB计算代码如下:

1
2
3
4
RATE = 0.04 / 12;
N = 10 * 12;
Payment = 5303.3;
pv = pvfix(RATE, N, Payment)

输出结果如下:

1
2
3
pv =

5.2381e+05

若按照4%的年化利率贴现,则现值为523810元,即若不考虑运营成本,则银行侧壁贷款的利润为23810元。

若在第5年末提前还款,即提前60期还款,则每期5303.3元,贴现率分别为4%、5%,现金流现值MATLAB计算代码如下:

1
2
3
4
5
6
7
RATE1 = 0.04 / 12;
RATE2 = 0.05 / 12;
N = 5 * 12;
Payment = 5303.3;
pv1 = pvfix(RATE1, N, Payment)
pv2 = pvfix(RATE2, N, Payment)
pv1 - pv2

输出结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
pv1 =

2.8796e+05


pv2 =

2.8103e+05


ans =

6.9386e+03

结果分析:贴现率分别为4%、5%的现金流现值为287960元,281030元,提前还款给银行造成的损失为6938.6元。

以上计算均为示例计算,贴现率均为假设。

注:60期并未把款全部还完,还需在第5年末把剩余的额度用完,如果存贷款利率不同,最后还款也将给银行带来损失。

-------- 本文结束 感谢阅读 --------