如果有人问你,现在给你100元和过一年后给你100元,你选哪个,你肯定会选现在;但是如果在现在给你100元和一年后给你110元之间让你选,你恐怕就要稍微考虑下。作为一个理性的投资人,不仅要考虑收益和风险,资金的时间价值,或者说时间成本,也是需要重点考虑的,否则,看起来盈利为正的策略,从长期来看收益却是负的。
时间成本中最需要考虑的就是现金的贴现率,通俗来说,就是你把钱存进银行,一年后所得到的利息比率。如果银行一年定期存款利率是2.5%,那么1万元一年后就是1.025万元,两年后就是1.0506万元。就是说按照2.5%的贴现率来计算,2年后1.0506万元,1年后的1.025万元,才等于今天的1万元。
当然贴现率可以按照银行存款利率来计算,也可以按照别的值来计算。当你进行投资决策的时候需要选择一个适合自己的贴现率,计算是否值得投资。在投资中,大量的计算都是围绕资金的时间价值转换进行的。比如说,一个投资项目,是从投资第二年开始,连续五年稳定产生现金收入。第二个投资项目,从第三年开始连续三年大量产生现金收入。这两个项目到底如何选择呢?在计算出这两个项目未来产生现金流转换成今天的现值后,就能一目了然做出选择了。
就个人而言,经常会纠结是否需要提前归还房贷。而知道资金的时间价值后就很好做出选择了。如果你的理财收益率高于银行的贷款利率,你的贴现值比银行的贴现值要高,你大可不必提前归还房贷。而一些信用卡贷款中,采用每月归还等额本金,并按总额本金计算贷款利息的方式,比如借12万元一年期贷款,按月归还1万元本金。采用这种方式,实际上12万元本金使用时间只有半年,所以实际利率翻了一倍,这时,需要将贷款名义利率转换成真实利率计算。只有了解了这些,才能在复杂的投资中做出正确的比较与选择。
如果银行利率是变化的,如何知道10年前的100元,存到现在是多少钱呢?
首先,获取过去十年的利率数值:
import baostock as bs
import pandas as pd
# 登陆系统
lg = bs.login()
# 显示登陆返回信息
print('login responderror_code:'+lg.error_code)
print('login respond error_msg:'+lg.error_msg)
# 获取存款利率
rs =bs.query_deposit_rate_data(start_date="2008-01-01",end_date="2015-12-31")
print('query_deposit_rate_datarespond error_code:'+rs.error_code)
print('query_deposit_rate_datarespond error_msg:'+rs.error_msg)
# 打印结果集
data_list = []
while (rs.error_code == '0') &rs.next():
# 获取一条记录,将记录合并在一起
data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list,columns=rs.fields)
# 结果集输出到csv文件
result.to_csv("D:/deposit_rate.csv",encoding="gbk", index=False)
print(result)
# 登出系统
bs.logout()
可以返回过去10年的活期存款利率,半年,1年,2年,3年,5年的定期利率。
返回数据说明 | |
参数名称 | 参数描述 |
pubDate | 发布日期 |
demandDepositRate | 活期存款(不定期) |
fixedDepositRate3Month | 定期存款(三个月) |
fixedDepositRate6Month | 定期存款(半年) |
fixedDepositRate1Year | 定期存款整存整取(一年) |
fixedDepositRate2Year | 定期存款整存整取(二年) |
fixedDepositRate3Year | 定期存款整存整取(三年) |
fixedDepositRate5Year | 定期存款整存整取(五年) |
installmentFixedDepositRate1Year | 零存整取、整存零取、存本取息定期存款(一年) |
installmentFixedDepositRate3Year | 零存整取、整存零取、存本取息定期存款(三年) |
installmentFixedDepositRate5Year | 零存整取、整存零取、存本取息定期存款(五年) |
根据不同时段的利率,就可以比较准确计算十年的总贴现率了。具体的计算方法比较复杂,暂时省略。