LPR利率
貸款市場報價利率(LPR)由各報價行於每月20日(遇節假日順延),以0.05個百分點爲步長,向全國銀行間同業拆借中心提交報價,全國銀行間同業拆借中心按去掉最高和最低報價後算術平均,向0.05%的整數倍就近取整計算得出LPR,於當日9時30分公佈,公衆可在全國銀行間同業拆借中心和中國人民銀行網站查詢。目前,LPR包括1年期和5年期以上兩個品種。
LPR浮動利率示例
如果您目前的個人房貸利率是在5年期貸款基準利率上打9折,那麼按照目前5年期貸款基準利率計算,您的實際執行利率水平爲4.41%(=4.9%×0.9)。根據人民銀行〔2019〕30號公告,個人房貸轉換前後利率水平保持不變。
(1)如果您選擇轉爲固定利率,那麼您的個人房貸在整個合同剩餘期限內,都將執行4.41%這個利率。
(2)如果您選擇轉爲參考LPR定價,您的個人房貸利率水平將按照“5年期以上LPR+(-0.39%)”確定。其中,-0.39是固定加點點差,根據當前實際執行利率(4.41%)與2019年12月公佈的5年期以上LPR(4.8%)之間的差確定。轉換後到第一個重定價日前,您的房貸利率還是4.41%,但計算方式變成了“LPR4.8%+(-0.39%)”;從第一個重定價日起,您的房貸利率就會變成“當時最新的5年期LPR+(-0.39%)”;以後每個重定價日都以此類推。
貸款利息計算公式
1、等額本息法:計算公式月還款額=本金*月利率*[(1+月利率)^n/[(1+月利率)^n-1];式中n表示貸款月數,^n表示n次方,如^240,表示240次方(貸款20年、240個月),月利率=年利率/12;總利息=月還款額*貸款月數-本金
2、等額本金法:計算公式:月還款額=本金/n+剩餘本金*月利率;總利息=本金*月利率*(貸款月數/2+0.5)。
python實現
前提條件:貸款100w,貸款週期:30年,基準利率4.9%,LPR基準使用2019年12月公佈的4.8%
計算不同折扣利率(上浮下浮利率情況),未來LPR利率情況下對貸款利率和月供影響
結果如下:
分析:截圖是貸款100w,30年,打85折對比情況,如果貸款調整成LPR浮動利率,每年1月1日爲更新日,2020年5月20日更新的5年期LPR利率是4.65%若該利率不變(即到12月也是該數值),則明年施行此利率,調整LPR浮動利率每月少繳月供87元,若LPR一直保持不變(當然不可能的)30年少繳3w左右。
中短期來看利率是下行的,如果這個下行時間持續比較長,那麼會緩解貸款壓力,但是利率是均值回覆的,若有幾年利率上漲會帶來月供壓力的風險,因爲利率變更選擇只有一次。所以如果是保守者就選擇固定利率。
代碼:
import numpy as np
import pandas as pd
def repayment_fun(loan_amount, current_benchmark_interest_rate, N=20):
"""
等額本息計算每月償還金額,和總金額
:param loan_amount:貸款總金額
:param current_benchmark_interest_rate:當前基準利率
:param N:貸款週期
:return:
"""
month_rate = current_benchmark_interest_rate / 12
repayment = loan_amount * month_rate * (1 + month_rate) ** (N * 12) / (
(1 + month_rate) ** (N * 12) - 1)
return repayment, repayment * N * 12
def style_apply(series, colors, back_ground=''):
"""
:param series: 傳過來的數據是DataFramt中的一列 類型爲pd.Series
:param colors: 內容是字典 其中key 爲標題名 value 爲顏色
:param back_ground: 北京顏色
:return:
"""
series_name = series.name[0]
a = list()
# 爲了給每一個單元格上色
for col in series:
# 其中 col 爲pd.DataFrame 中的 一個小單元格 大家可以根據不同需求爲單元格設置不同的顏色
# 獲取什麼一級標題獲取什麼顏色
if series_name in colors:
for title_name in colors:
if title_name == series_name:
back_ground = 'background-color: ' + colors[title_name]
# '; border-left-color: #080808'
a.append(back_ground)
return a
# 基準利率
benchmark_interest_rate = 4.9 * 0.01
# 折扣
discount = np.arange(0.7, 1.25, 0.05)
# LPR未來利率利率
lpr = np.arange(4, 6, 0.05) * 0.01
# 2019年12月LPR利率
base_lpr = 4.8 * 0.01
# 加點
diff = base_lpr - benchmark_interest_rate * discount
# 貸款
loan = 100 * 10000
# 期限
term = 30
data = []
for discount_item in discount:
diff = base_lpr - benchmark_interest_rate * discount_item
discount_rate = discount_item * benchmark_interest_rate
print(loan, discount_rate, term)
discount_repayment, discount_total_amount = repayment_fun(loan, discount_rate, term)
for lpr_item in lpr:
lpr_rate = lpr_item - diff
lpr_repayment, lpr_total_amount = repayment_fun(loan, lpr_rate, term)
data.append(
{"LPR利率": lpr_item, "折扣利率": discount_item, "浮動利率月供": round(lpr_repayment,2), "固定利率月供": round(discount_repayment, 2),
"月供差": round((lpr_repayment - discount_repayment), 2),
"累計少繳金額": round(lpr_total_amount - discount_total_amount, 2)})
output_data = pd.DataFrame(data)
output_data = output_data.style.background_gradient(cmap='gray_r')
output_data.to_excel('lpr.xlsx', index=None)