Ценовые полы с использованием модели Normal или Bachelier
[
цены на полы с использованием модели Normal (Bachelier) ценообразования для отрицательных ставок. FloorPrice
,Floorlets
]
= floorbynormal(RateSpec
,Strike
,Settle
,Maturity
,Volatility
)floorbynormal
вычисляет цены на ванильные полы и амортизирующие полы.
[
добавляет необязательные аргументы пары "имя-значение".FloorPrice
,Floorlets
]
= floorbynormal(___,Name,Value
)
Рассмотрим инвестора, который попадает в контракт, который взимает процентную ставку по кредиту на 100 000 долларов США под -,6% ежеквартально в течение 3 месяцев, начиная с 1 января 2009 года. Принимая, что с 1 января 2008 года нулевая ставка составляет 0,69394%, и волатильность 20%, используйте эти данные для вычисления минимальной цены. Сначала вычислите RateSpec
, а затем используйте floorbynormal
для вычисления FloorPrice
.
ValuationDate = 'Jan-01-2008'; EndDates ='April-01-2010'; Rates = 0.0069394; Compounding = -1; Basis = 1; % calculate the RateSpec RateSpec = intenvset('ValuationDate', ValuationDate, ... 'StartDates', ValuationDate,'EndDates', EndDates, ... 'Rates', Rates,'Compounding', Compounding,'Basis', Basis); Settle = 'Jan-01-2009'; % floor starts in a year Maturity = 'April-01-2009'; Volatility = 0.20; FloorRate = -0.006; FloorReset = 4; Principal=100000; FloorPrice = floorbynormal(RateSpec, FloorRate, Settle, Maturity, Volatility,... 'Reset',FloorReset,'ValuationDate',ValuationDate,'Principal', Principal,... 'Basis', Basis)
FloorPrice = 1.8212e+03
floorbynormal
и Сравнение с floorbyblk
Определите RateSpec
.
Settle = datenum('20-Jan-2016'); ZeroTimes = [.5 1 2 3 4 5 7 10 20 30]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = datemnth(Settle,12*ZeroTimes); RateSpec = intenvset('StartDate',Settle,'EndDates',ZeroDates,'Rates',ZeroRates)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 2
Disc: [10x1 double]
Rates: [10x1 double]
EndTimes: [10x1 double]
StartTimes: [10x1 double]
EndDates: [10x1 double]
StartDates: 736349
ValuationDate: 736349
Basis: 0
EndMonthRule: 1
Определите напольный инструмент и цену с floorbyblk
.
ExerciseDate = datenum('20-Jan-2026');
[~,ParSwapRate] = swapbyzero(RateSpec,[NaN 0],Settle,ExerciseDate)
ParSwapRate = 0.0216
Strike = .01; BlackVol = .3; NormalVol = BlackVol*ParSwapRate; Price = floorbyblk(RateSpec,Strike,Settle,ExerciseDate,BlackVol)
Price = 1.2297
Оцените напольный инструмент, используя floorbynormal
.
Price_Normal = floorbynormal(RateSpec,Strike,Settle,ExerciseDate,NormalVol)
Price_Normal = 1.9099
Оцените напольный инструмент, используя floorbynormal
для негативного удара.
Price_Normal = floorbynormal(RateSpec,-.005,Settle,ExerciseDate,NormalVol)
Price_Normal = 0.0857
Strike
- Тариф, по которому осуществляется этажТариф, по которому проводится занятие на этаже, задается как NINST
-by- 1
вектор десятичных значений.
Типы данных: double
Settle
- Дата расчета за этажДата расчета этажа, заданная как NINST
-by- 1
вектор серийных номеров дат, векторов символов даты, объектов datetime или строковых объектов.
Типы данных: double
| char
| datetime
| string
Maturity
- Дата зрелости для этажаДата зрелости этажа, заданная как NINST
-by- 1
вектор серийных номеров дат, векторов символов даты, объектов datetime или строковых объектов.
Типы данных: double
| char
| datetime
| string
Volatility
- Нормальные значения волатильностиЗначения нормальных волатильностей, заданные как NINST
-by- 1
вектор числовых значений.
Для получения дополнительной информации о модели Normal, смотрите Работа с отрицательными процентными ставками с использованием функций.
Типы данных: double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
[FloorPrice,Floorlets] = floorbynormal(RateSpec,Strike,Settle,Maturity,Volatility,'Reset',CapReset,'Principal',100000,'Basis',7)
'Reset'
- Сброс частотной оплаты в год 1
(по умолчанию) | числоСбросьте частотный платеж в год, заданный как разделенная разделенными запятой парами, состоящая из 'Reset'
и a NINST
-by- 1
вектор.
Типы данных: double
'Principal'
- Условная основная сумма100
(по умолчанию) | числоУсловная основная сумма, заданная как разделенная разделенными запятой парами, состоящая из 'Principal'
и a NINST
-by- 1
вектор или NINST
-by- 1
массив ячеек. Каждый элемент в NINST
-by- 1
массив ячеек является NumDates
-by- 2
массив ячеек, где первый столбец является датами, а второй - связанным основным объемом. Дата указывает на последний день действия основного значения.
Использование Principal
для прохождения расписания для вычисления цены амортизирующей прописной буквы.
Типы данных: double
| cell
'Basis'
- Основа прибора для подсчета дней0
(фактический/фактический) (по умолчанию) | целое число от 0
на 13
Базис инструмента с отсчетом дней, представляющий базис, используемый при аннуализации входной скорости передачи, заданный как разделенная разделенными запятой парами, состоящая из 'Basis'
и a NINST
-by- 1
вектор целых чисел. Значения:
0 = факт/факт
1 = 30/360 (SIA)
2 = факт/360
3 = факт/365
4 = 30/360 (PSA)
5 = 30/360 (ISDA)
6 = 30/360 (европейский)
7 = факт/365 (японский)
8 = факт/факт (ICMA)
9 = факт/360 (ICMA)
10 = факт/365 (ICMA)
11 = 30/360E (ICMA)
12 = факт/365 (ISDA)
13 = BUS/252
Для получения дополнительной информации см. раздел Базиса.
Типы данных: double
'ValuationDate'
- Дата наблюдения за инвестиционным горизонтомValuationDate
не задан, тогда Settle
используется (по умолчанию) | серийный номер даты | вектор символов даты | объект datetime | строковый объектДата наблюдения инвестиционного горизонта, заданная как разделенная разделенными запятой парами, состоящая из 'ValuationDate'
и серийный номер даты, вектор символов даты, объект datetime или строковые массивы.
Типы данных: double
| char
| datetime
| string
'ProjectionCurve'
- Кривая ставок, используемая при генерации будущих денежных потоковProjectionCurve
не задан, тогда RateSpec
используется как для дисконтирования денежных потоков, так и для прогнозирования будущих денежных потоков (по умолчанию) | структуреКривая ставки, которая будет использоваться при прогнозировании будущих денежных потоков, заданная как разделенная разделенными запятой парами, состоящая из 'ProjectionCurve'
и структуру кривой скорости. Эта структура должна быть создана с помощью intenvset
. Используйте этот необязательный вход, если прямая кривая отличается от кривой скидки.
Типы данных: struct
FloorPrice
- Ожидаемая цена этажаОжидаемая цена этажа, возвращенная за NINST
-by- 1
вектор.
Floorlets
- ПолыFloorlets, возвращается как NINST
-by- NCF
массив каплетов, заполненных NaN
с.
floor является договором, который включает гарантию, устанавливающую минимальную процентную ставку, которая должна быть получена держателем, на основе плавающей процентной ставки в противном случае.
Выплата за этаж:
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.