Financial Instruments Toolbox™ содержащие функцию liborfloat2fixed
, который вычисляет выражение с фиксированной скоростью, который приравнивает сторону с плавающей скоростью свопа к стороне с фиксированной скоростью. Решатель устанавливает текущее значение фиксированной стороны на текущее значение плавающей стороны без необходимости выстраивать и сравнивать фиксированные и плавающие периоды.
Ставки ежеквартальны, например, для фьючерсов на Eurodollar.
Дата вступления в силу - первая третья среда после даты расчета.
Все даты доставки разнесены на 3 месяца.
Все периоды начинаются в третью среду месяца доставки.
Все периоды заканчиваются в одни и те же даты месяцев доставки, через 3 месяца после даты начала.
Базис начисления плавающих ставок фактический/360.
Применимые форвардные ставки оцениваются путем интерполяции в месяцах, когда данные форвардной скорости недоступны.
Проект позволяет вам создать облигацию любого купона, базиса или частоты, основанную на входе с плавающей ставкой.
Дата начала является датой оценки, т.е. датой заключения соглашения о заключении договора к дате расчета.
Расчет может быть на или после даты начала. Если это происходит после, выводится прямой контракт с фиксированной ставкой.
Датой вступления в силу считается первая третья среда после расчета, та же дата, что и у плавающего курса.
Дата окончания срока действия облигации обозначена как количество лет в тот же день и месяц, что и дата вступления в силу.
Купонные выплаты происходят в юбилейные даты. Частота определяется периодом связи.
Фиксированные скорости не интерполированы. Создается облигация с фиксированной ставкой, имеющая то же текущее значение, что и для платежей с плавающей ставкой.
Этот пример показывает использование функций при вычислении фиксированной ставки для серии 2-, 5- и 10-летних свопов на основе рыночных данных Eurodollar. По данным Чикагской товарной биржи (https://www.cmegroup.com
), данные Eurodollar в пятницу, 11 октября 2002 года, были показаны в следующей таблице.
Примечание
Этот пример иллюстрирует расчеты свопов в MATLAB® программное обеспечение. Сроки использования набора данных не были тщательно изучены и были приняты в качестве прокси для ставки свопа, сообщенной 11 октября 2002 года.
Данные Eurodollar в пятницу, 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
. Функция требует, чтобы вы вводили только данные Eurodollar, дату сальдирования и тенор свопа. Затем 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
.
Tenor = 2;
Наконец, вычислите скорость свопа с liborfloat2fixed
.
[FixedSpec, ForwardDates, ForwardRates] = ... liborfloat2fixed(EDFutData, Settle, Tenor)
MATLAB возвращает ставку par-свопа 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., опции, Futures, and Other Derivatives, 4th Edition, Prentice Hall, 2000.) Для длительного свопа, например, пять лет и более, эта коррекция может оказаться большой.
Регулировка требует дополнительных параметров:
StartDate
, который вы делаете таким же, как Settle
(по умолчанию) путем предоставления пустой матрицы []
как вход.
ConvexAdj
чтобы сказать liborfloat2fixed
для выполнения регулировки.
RateParam
, который обеспечивает параметры a
и S
как вход в процесс кратковременной скорости Hull-White.
Необязательные параметры InArrears
и Sigma
, для чего можно использовать пустые матрицы []
для принятия значений по умолчанию MATLAB.
FixedCompound
, с помощью которого можно облегчить сравнение со значениями, приведенными в Таблице H15 Federal Reserve Statistical Release, путем преобразования ежеквартального компаундирования по умолчанию в полугодовое компаундирование с базисом (по умолчанию) 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% как 2-летний курс свопа, довольно близкий к отчетному курсу свопа на эту дату.
Аналогично, в следующей таблице обобщены решения для 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 года
Начисление процентов на фактическом базисный
Использование 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