贴现曲线的构建。极客教育计划,第5部分

让我们学习如何建立折扣曲线。我马上要说:拥有最新的市场数据非常重要。如果您正在寻找美元,欧元或其他某种货币的利率掉期协议,则Internet上没有太多公开信息。大多数数据可通过交易终端或专业市场数据提供商获得。我在一个大型斯堪的纳维亚银行集团的网站上找到了丹麦,瑞典和挪威克朗的数据,以及欧元和美元的数据。







接下来,我们将尝试绘制瑞典克朗的折扣曲线。



这篇文章是我第三次视频讲座“构建折扣曲线的改编版,这是Finmath for Fintech课程的一部分。



因此,我们的克朗折扣曲线将是每天的隔夜利率。我们知道的第一件事就是所谓的基准利率-短期存款(贷款)的利率。此外,已知的互换期限为一年到三十年。为了说明该方法,我们将绘制长达十年的曲线。在此图中可以看到当前的市场数据值:







要开始绘制曲线,我们需要做一些假设。



为了简单起见,我们假设掉期交易是固定的浮动掉期交易,每六个月定期付款一次。下图是一年互换的图表。我们知道,一开始的基本税率为零。要计算公平掉期价格,我们需要知道六个月贴现率和12个月贴现率的值。作为浮动的“腿”,我们将拥有什么?假设我们将为每个范围支付平均隔夜价值。也就是说,浮动“腿”的价值长达六个月-这将是180天的平均隔夜价值。 12个月点的浮动时间段将是相同的,只是在这里从181天到360天会有一个总和。







这种平均方法是众所周知的。这称为隔夜指数掉期,在市场产品中经常使用。浮动边在此定义为该期间的平均值。



我们知道基本利率和掉期成本。显然,如果我们写一个“公平”的公平价格公式,那么我们将有太多未知数。我们不知道6个月的折现率,12个月的折现率,除了一个-第一个利率之外,我们不知道利率的值。太多的未知数和一个方程式。







以下假设将有助于我们解决此问题。我们知道零点的利率-这是基准利率。我们将假设利率线性变化。让我们将12个月时的利率值指定为X。







在6个月时,它将是X / 2(0到X之间的算术平均值),我们可以找到任意一天的利率值。计算第6点和第12点的浮动利率并不困难:



L1=X4





L1=3X4





现在让我们继续讲折扣因素。我们使用基于隔夜利率的折扣曲线。因此,六个月点的折现因子是每个点180个折现因子的乘积,这显然是X的某种功能







。12个月点折现因子以类似的方式构造,唯一的区别是我需要更多的乘数。这也将是X的某种功能。







因此,折现因子用X表示,还有浮动汇率的第一和第二值。让我们继续写方程式。我们知道掉期价格的价值,比方说等于P。回想一下公平价格的等式。我们需要在12个月时将P乘以折现系数,并等于以下总和:







让我提醒您,一天的折现系数将由以下公式确定:



DFi=1(1+ri360)





其中,r i是利率的值。我使用数字360的假设是一年中有360天(这是日历的非常常见的约定)。在任何给定的点上,我们都知道如何使用线性插值法来表示折现因子r i以X表示。我们的方程式证明只有一个未知数,可以使用数值方法求解。如何执行此操作-请参阅Python代码



因此,我们知道如何找到1年点的利率值。使用线性插值的假设并基于我们从市场上获得的掉期价值,我们将找到X的值。在这里,我们绘制了曲线的第一部分:







现在,要计算两年的掉期价格,我们需要6个月,12个月,18个月和2年点的值。我们将使用与上次完全相同的假设。让我们调用所需比率Y的值,并使用关于插值线的假设,恢复曲线的第二部分。因此,我们将逐步达到最终目标-至10年。







此方法称为bootstrap。它不是完美的方法,也不是唯一正确的方法,但是它很容易实现和理解-引导方法作为入门很不错。







我们找到了折扣曲线。它给我们带来什么?正式来说,这些是未来十年内任何时候的隔夜利率的值。您可能会问:“谁需要它?”确实,很难想象有一个客户来找您说:“我想开一个为期567天的一日存款”的情况。这是一种相当不可理解的情况,不应以这种直接形式来感知所构造的曲线。



假设我们未来七年半有某种付款方式。问题:我们如何知道它的当前值?



这正是折扣曲线将要回答的问题。我们将沿着曲线的每个点进行计算,计算每个点的折扣系数,并在该点结束七年半的旅程,找到最终的折扣系数,再乘以付款-这将是一个诚实的价格。







我使用的模型,即我采用的浮动汇率,如何对中间值进行插值,以及总体而言,我选择插值的事实很大程度上取决于我拥有的数据类型。我的数据很少-只有一个基准利率和掉期价值。如果有更多可用数据或不同数据,则很可能会更改模型。但是,bootstrap方法(当您首先在较短的部分上绘制曲线,然后再依赖于先前获得的值来进行进一步绘制时)仍然适用。



现在,请记住,除了折现曲线外,我们还需要LIBOR曲线(TIBOR,EURIBOR等)。不同之处在于我们将哪些工具添加到模型中进行计算。我们将寻找包含LIBOR的合约,并以类似的方式,使用自举法,重建LIBOR曲线。



如果必须构建真实的LIBOR曲线,请务必小心使用哪些工具来构建它,并仔细评估将要使用的模型。在这种情况下,我使用隔夜贴现,但是需要使用不同的方法来构建LIBOR曲线。折价最有可能是每三个月或六个月一次,具体取决于工具。如果有足够的数据,则可以绘制LIBOR曲线,EURIBOR曲线,TIBOR曲线和其他任何曲线。



如果客户来找您:“我希望利率互换不是十年,而是134个月,我将每25天支付一次浮动LIBOR,”这不是问题。我们有一个LIBOR曲线,使用插值假设,我们可以在任何点恢复LIBOR值。我们知道折扣曲线在每个点的价值,我们还可以计算所有付款,并找到平衡这些浮动付款的固定“支路”的价格。因此,您可以通过绘制几条曲线来找到几乎任何工具的公平价格值。



因此,让我们再次浏览重点内容。我获取了可用数据并提出了一些假设。首先,支付时间表:双方多久支付一次固定支票和浮动支票的频率。其次,我将如何计算浮动边的下注?第三个假设是关于线性下注的。使用所有这三个假设,我制定了几个非线性方程,并用数值方法求解。 Jupyter笔记本可以在这里找到。从一年的最短时间段开始,依次从两年,三年等开始,我重新构建了长达10年的时间间隔的曲线。这是我的折现曲线,可用于评估任何工具。这种方法称为引导程序:曲线段(我一开始就算过),第二步中使用了它,否则,我在第二步中得到的结果,将其用于第三步,依此类推,直到曲线完全形成为止。



我希望现在您不再“浮动”于浮动利率这一主题,而可以在利率掉期中找到香草。您还可以使用bootstrap方法构建任何曲线。



本系列的所有文章




All Articles