Финансовые инструменты Toolbox™ содержащие функцию liborfloat2fixed, которая вычисляет номинальную доходность с фиксированной ставкой, которая приравнивает сторону с плавающей ставкой свопа к стороне с фиксированной ставкой. Решатель устанавливает текущее значение фиксированной стороны в текущее значение плавающей стороны без необходимости выстраивать и сравнивать фиксированные и плавающие периоды.
Ставки являются квартальными, например, ставки фьючерсов на евродоллары.
Дата вступления в силу - первая третья среда после даты расчета.
Все сроки поставки разнесены на 3 месяца.
Все периоды начинаются в третью среду месяцев поставки.
Все периоды заканчиваются в одни и те же даты месяцев поставки, через 3 месяца после дат начала.
База начисления плавающих ставок равна фактическому/360.
Применимые форвардные скорости оцениваются путем интерполяции в месяцах, когда данные форвардной скорости недоступны.
Дизайн позволяет создавать облигации любого купона, основы или частоты на основе ввода плавающей ставки.
Дата начала - это дата оценки, т.е. дата заключения соглашения о заключении договора к дате расчета.
Расчет может выполняться на дату начала или после нее. Если это после, результат форвардного контракта с фиксированной ставкой.
Датой вступления в силу считается первая третья среда после расчета, та же дата, что и у плавающего курса.
Дата окончания облигации - определенное количество лет, в тот же день и месяц, что и дата вступления в силу.
Купонные выплаты происходят в юбилейные даты. Частота определяется периодом связи.
Фиксированные скорости не интерполируются. Создается облигация с фиксированной ставкой той же текущей стоимости, что и для платежей по плавающей ставке.
В этом примере показано использование функций при расчете фиксированной ставки, применимой к серии 2-, 5- и 10-летних свопов на основе рыночных данных Евродоллара. По данным Чикагской товарной биржи (https://www.cmegroup.com), данные евродоллара в пятницу, 11 октября 2002 г., были такими, как показано в следующей таблице.
Примечание
Этот пример иллюстрирует вычисления подкачки в программном обеспечении MATLAB ®. Сроки использования набора данных не были тщательно изучены и предполагались в качестве прокси для ставки свопа, сообщенной 11 октября 2002 года.
Евродоллар Данные за пятницу, 11 октября 2002
Месяц | Год | Обосноваться |
|---|---|---|
10 | 2002 | 98.21 |
11 | 2002 | 98.26 |
12 | 2002 | 98.3 |
1 | 2003 | 98.3 |
2 | 2003 | 98.31 |
3 | 2003 | 98.275 |
6 | 2003 | 98.12 |
9 | 2003 | 97.87 |
12 | 2003 | 97.575 |
3 | 2004 | 97.26 |
6 | 2004 | 96.98 |
9 | 2004 | 96.745 |
12 | 2004 | 96.515 |
3 | 2005 | 96.33 |
6 | 2005 | 96.135 |
9 | 2005 | 95.955 |
12 | 2005 | 95.78 |
3 | 2006 | 95.63 |
6 | 2006 | 95.465 |
9 | 2006 | 95.315 |
12 | 2006 | 95.16 |
3 | 2007 | 95.025 |
6 | 2007 | 94.88 |
9 | 2007 | 94.74 |
12 | 2007 | 94.595 |
3 | 2008 | 94.48 |
6 | 2008 | 94.375 |
9 | 2008 | 94.28 |
12 | 2008 | 94.185 |
3 | 2009 | 94.1 |
6 | 2009 | 94.005 |
9 | 2009 | 93.925 |
12 | 2009 | 93.865 |
3 | 2010 | 93.82 |
6 | 2010 | 93.755 |
9 | 2010 | 93.7 |
12 | 2010 | 93.645 |
3 | 2011 | 93.61 |
6 | 2011 | 93.56 |
9 | 2011 | 93.515 |
12 | 2011 | 93.47 |
3 | 2012 | 93.445 |
6 | 2012 | 93.41 |
9 | 2012 | 93.39 |
С помощью этих данных можно вычислить 1-, 2-, 3-, 4-, 5-, 7- и 10-летние ставки свопа с помощью функции панели инструментов. liborfloat2fixed. Функция требует ввода только данных евродоллара, даты расчета и тенора свопа. Затем программное обеспечение MATLAB выполняет необходимые вычисления.
Чтобы проиллюстрировать работу этой функции, сначала загрузите данные, содержащиеся в предоставленном листе Excel ®EDdata.xls.
[EDRawData, textdata] = xlsread('EDdata.xls');
Извлеките месяц из первого столбца и год из второго столбца. Ставка, используемая в качестве прокси, представляет собой среднее арифметическое ставок при открытии и закрытии.
Month = EDRawData(:,1); Year = EDRawData(:,2); IMMData = (EDRawData(:,4)+EDRawData(:,6))/2; EDFutData = [Month, Year, IMMData];
Затем введите текущую дату.
Settle = datenum('11-Oct-2002');
Чтобы вычислить 2-летнюю ставку свопа, установите тенор в значение 2.
Tenor = 2;
Наконец, вычислите скорость свопа с помощью liborfloat2fixed.
[FixedSpec, ForwardDates, ForwardRates] = ... liborfloat2fixed(EDFutData, Settle, Tenor)
MATLAB возвращает ставку парного свопа 2,23% с использованием настроек по умолчанию (квартальное суммирование и начисление 30/360) и данных форвардных дат и ставок (ежеквартальное суммирование).
FixedSpec =
Coupon: 0.0223
Settle: '16-Oct-2002'
Maturity: '16-Oct-2004'
Period: 4
Basis: 1
ForwardDates =
731505
731596
731687
731778
731869
731967
732058
732149
ForwardRates =
0.0178
0.0168
0.0171
0.0189
0.0216
0.0250
0.0280
0.0306
В FixedSpec вывод, обратите внимание, что ставка свопа фактически идет вперед с третьей среды октября 2002 года (16 октября 2002 года), через 5 дней после оригинала Settle ввод (11 октября 2002). Однако это все еще лучший прокси для ставки свопа на Settle, поскольку предположение просто начинает период действия свопа и не влияет на его метод оценки или его продолжительность.
Коррекция, предложенная Халлом и Уайтом, улучшает результат, включив регулировку выпуклости как часть ввода в liborfloat2fixed. (См. Hull, J., Опционы, фьючерсы и другие деривативы, 4-е издание, Прентис-Холл, 2000.) Для длительного свопа, например, пять и более лет, эта коррекция может оказаться большой.
Корректировка требует дополнительных параметров:
StartDate, который вы делаете таким же, как Settle (по умолчанию) путем предоставления пустой матрицы [] в качестве входных данных.
ConvexAdj сказать liborfloat2fixed для выполнения регулировки.
RateParam, которая предоставляет параметры a и S в качестве исходных данных для процесса короткой ставки Халл-Уайт.
Дополнительные параметры InArrears и Sigma, для которых можно использовать пустые матрицы [] для принятия значений по умолчанию MATLAB.
FixedCompound, с помощью которого можно упростить сравнение со значениями, приведенными в таблице H15 статистического релиза Федеральной резервной системы, путем преобразования квартального объединения по умолчанию в полугодовое объединение с (по умолчанию) основой 30/360.
StartDate = []; Interpolation = []; ConvexAdj = 1; RateParam = [0.03; 0.017]; FixedCompound = 2; [FixedSpec, ForwardDaates, ForwardRates] = ... liborfloat2fixed(EDFutData, Settle, Tenor, StartDate, ... Interpolation, ConvexAdj, RateParam, [], [], FixedCompound)
Это возвращает 2,21% в виде двухлетней ставки свопа, достаточно близкой к сообщенной ставке свопа на эту дату.
Аналогично, следующая таблица суммирует решения для 1-, 3-, 5-, 7- и 10-летних ставок свопа (скорректированных на выпуклость и нескорректированных).
Расчетные и средние по рынку данные по ставкам свопа в пятницу, 11 октября 2002 г.
Длина замены (годы) | Неприспособленный | Приспособленный | Таблица H15 | Скорректированная ошибка |
|---|---|---|---|---|
1 | 1.80% | 1.79% | 1.80% | -1 |
2 | 2.24% | 2.21% | 2.22% | -1 |
3 | 2.70% | 2.66% | 2.66% | 0 |
4 | 3.12% | 3.03% | 3.04% | -1 |
5 | 3.50% | 3.37% | 3.36% | +1 |
7 | 4.16% | 3.92% | 3.89% | +3 |
10 | 4.87% | 4.42% | 4.39% | +3 |
Эти результаты можно использовать далее, например, для хеджирования портфеля. liborduration функция предоставляет возможность хеджирования по длительности. Можно изолировать активы (или пассивы) от риска риска по процентной ставке с помощью соглашения свопа.
Предположим, что вы являетесь владельцем связи со следующими характеристиками:
Номинальная стоимость 100 миллионов долларов
Купон в размере 7% выплачивается раз в полгода
5% доходности до погашения
Поселение 11 октября 2002 года
Срок погашения 15 января 2010 года
Начисление процентов по факту/365
Использование bnddury функция из программного обеспечения Financial Toolbox™ показывает измененную продолжительность 5,6806 лет.
Для иммунизации этого актива можно ввести фиксированный по оплате своп, в частности своп в размере условного принципала (Ns), так что Ns * SwapDuration + $100M * 5,6806 = 0 (или Ns = -100 * 5 .6806/SwapDuration).
Предположим, что в качестве инструмента хеджирования используется 5-, 7- или 10-летний своп (3,37%, 3,92% и 4,42% из предыдущей таблицы).
SwapFixRate = [0.0337; 0.0392; 0.0442];
Tenor = [5; 7; 10];
Settle = '11-Oct-2002';
PayFixDuration = liborduration(SwapFixRate, Tenor, Settle)
Это дает продолжительность -3.6835, -4.7307 и -6.0661 лет для 5-, 7- и 10-летних свопов. Соответствующая условная сумма вычисляется с помощью
Ns = -100*5.6806./PayFixDuration
Ns = 154.2163 120.0786 93.6443
Условная сумма, введенная в фиксированную сторону свопа, мгновенно иммунизирует портфель.
liborduration | liborfloat2fixed | liborprice