第三课:现值

小卡 金融 2019-11-19 36 0
[~~☛关于启用赞助会员☚~~]

#如前所述,我们可以获得复合收益,让我们通过遍历整个过程来了解收益如何
#在时间轴上
periods = 5
principal = 100
r = .05
for t in range(periods+1):
    A = principal*(1+r)**t
    timelinePlot(periods,(A,t))
每个期间,我们都会计算带有复利的本金的价值,然后在该期间绘制该价值。

现值背后的想法是我们做相反的事情。假设我们在时间5收到了向我们承诺的$ 100的付款?今天的诺言值多少钱?您可能要考虑5年内为此将获得多少利息。我们目前正在看的是...

#现在的问题是,今天我们在5年内的100美元价值是多少
#在图上看起来像这样
timelinePlot(5,(100,5))
在解决这个问题之前,让我们考虑一个单一的时期,例如第一年向我们承诺的105美元。

#我们要弄清楚的是复利的反向
#因此,让我们从一个更简单的问题开始,一年只需支付一个月费和105美元
timelinePlot(1,(105,1))
想象一下有人来找您,说如果您今天给他们$ 100,他们会在一年内给您$ 105。你会做吗?如果利率为10%怎么办?如果您将这100美元投资到银行而不是交给该销售员,则与其答应105美元,您在第1阶段将从银行获得110美元。这绝对不是您想要的交易!

获得的银行利息:

#对于银行,我们在0期有100,在1期有110
timelinePlot(1,(100,0))
timelinePlot(1,(110,1))
通过与业务员进行投资获得的金额:

#使用债券,我们在0期有100,但在1期只有105
timelinePlot(1,(100,0))
timelinePlot(1,(105,1))
#因此,我们认为更好的交易是银行
然后,问题就变成了,您现在一年后要为那105美元支付什么。要考虑这笔交易,您必须支付的费用少于或等于您可以在银行投资以在一年中获得$ 105的费用。这将我们带入现值方程。

P V = C /(1 + r )**t

PV =现值
C =时间t的现金流量
r =贴现率
t =钱被投资的年数或时间段。
这意味着我们要为在时间1收到$ 105的合同支付的费用是....

#所以问题是,我们想为债券支付多少钱,以使我们有理由购买债券?
#我们希望获得10%的回报
#意味着我们想要这个...
price = 105/1.1
print(price)
就图表而言,我们将获得以下图表。

timelinePlot(1,(105/1.1,0))
timelinePlot(1,(105,1))
#现在我们同意
#并且我们也将多余的$ 4.5存入银行,这意味着我们最终仍剩下$ 110
如果我们想在时间1内仍然赚取$ 110,我们可以将多余的$ 4.54存入银行,而我们赚取的利息将使我们达到$ 110。

我将更改再次创建的函数以采用多个输入,以便可以在同一行上绘制多个现金流量。

#现在,我将功能更改为接受多个输入
#我们要开始将投资决策建模为现金流量为负的现金流量
#用于投资并为回报带来积极影响
def timelinePlot(periods,values):
    #Create our plot
    fig = plt.figure()
    ax = fig.add_subplot(111)

    #Set the limits of our plots (in terms of values, not dimensions)
    ax.set_xlim(0,10)
    ax.set_ylim(0,10)

    #Set the minimums that we will be plotting in (we give a 1 or 10% margin on each side)
    xmin = 1
    xmax = 9

    #Set the y of where our plot will be centered around, 5 is the middle
    y = 5

    #Set height for our ticks
    height = 1

    #Get the spacing between each tick
    delta = (xmax-xmin)/periods
    #Create the positions for each tick
    positions = [xmin+delta*x for x in list(range(periods+1))]

    #Plot the horizontal line
    plt.hlines(y, xmin, xmax)

    for t in range(periods+1):
        #Plot the tick
        plt.vlines(positions[t], y - .5, y + .5)
        #Plot the time period below
        plt.text(positions[t], y-1.2, t, horizontalalignment='center',fontsize=14)
    #Get rid of axes
    plt.axis('off')

    for value in values:
        #Plot a red dot on the year that our value is at
        plt.plot(positions[value[1]],y, 'ro', ms = 15, mfc = 'r')
        #Plot the values above, use rounding to keep it clean
        plt.text(positions[value[1]], y+1.2, "$"+str(round(value[0],1)), horizontalalignment='center',fontsize=18)


    plt.show()
这个新函数需要数年的时间,并列出了代表现金流量的元组列表,并返回了我们的图形。我们还将使用负数表示将资金投入到投资中,而正数表示使用中的现金流量。

#所以银行的决定现在看起来像这样
timelinePlot(1,[(-100,0),(110,1)])

版权免责声明

卡卡教学资源网所有资源全部来源于网络整理,本站目地只是为了提供给网友学习研究任何人以任何方式架设运营或出现任何法律问题都与本站无关,如同意观点请下载,如不同意请离开!卡卡教学资源网特此声明!

分享:

扫一扫在手机阅读、分享本文

本站资源所有内容免费,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号
×