Тулбокс предоставляет конструкторам для наиболее распространенных финансовых инструментов. Конструктор является функцией, которая создает структуру, выделенную определенному типу объекта; в этом тулбоксе объект является типом инструмента рынка.
Инструменты и их конструкторы в этом тулбоксе описаны ниже.
Инструмент | Конструктор |
---|---|
Азиатская опция | |
Барьерный опцион | |
Связь | |
Опция связи | |
Произвольный поток наличности | |
Составная опция | |
Конвертируемая облигация | |
Примечание с фиксированной процентной ставкой | |
Долговое обязательство с плавающей ставкой | |
\cap | |
Пол | |
Опция Lookback | |
Фондовый опцион | |
Подкачка | |
Swaption |
Каждый инструмент имеет параметры (поля), которые описывают инструмент. Функции тулбокса позволяют вам сделать следующее:
Создайте инструмент или портфель инструментов.
Перечислите сохраненные инструментальные типы и информационные поля.
Перечислите инструментальные полевые данные.
Поисковые и избранные инструменты.
Инструментальная структура состоит из различных полей согласно инструментальному типу. Поле является элементом данных, сопоставленным с инструментом. Например, инструмент связи содержит поля: CouponRate
, Settle
, Maturity
. Кроме того, каждый инструмент имеет поле, которое идентифицирует инвестиционный тип (связь, дно, пол, и так далее).
В действительности набор параметров для каждого инструмента не фиксируется. У вас есть способность добавить дополнительные параметры. Эти дополнительные поля проигнорированы функциями тулбокса. Они могут использоваться, чтобы присоединить дополнительную информацию к каждому инструменту, такому как внутренний код, описывающий связь.
Параметры, не заданные при создании инструментального значения по умолчанию к NaN
, который, в целом, означает что функции с помощью инструментального набора (такие как intenvprice
или hjmprice
) будет использовать значения по умолчанию. Во время оценки происходит ошибка, если какое-либо из обязательных полей отсутствует, такие как Strike
в дне или CouponRate
в связи.
Используйте instaddfield
функция, чтобы создать своего рода инструмент или добавить новые свойства в инструменты в существующем инструментальном наборе.
Создать своего рода инструмент с instaddfield
, необходимо задать три аргумента:
Type
FieldName
Data
Type
задает тип нового инструмента, например, Future
. FieldName
называет поля исключительно сопоставленными с новым типом инструмента. Data
содержит данные для полей нового инструмента.
Дополнительным четвертым аргументом является ClassList
. ClassList
задает типы данных содержимого каждого уникального поля для нового инструмента.
Используйте любой синтаксис, чтобы создать своего рода инструмент с помощью instaddfield
:
InstSet = instaddfield('FieldName', FieldList, 'Data', DataList,... 'Type', TypeString) InstSet = instaddfield('FieldName', FieldList, 'FieldClass',... ClassList, 'Data' , DataList, 'Type', TypeString)
Чтобы добавить новые инструменты в существующий набор, используйте:
InstSetNew = instaddfield(InstSetOld, 'FieldName', FieldList,... 'Data', DataList, 'Type', TypeString)
Как пример, рассмотрите фьючерсный контракт с датой поставки от 15 июля 2000 и указанную цену 104,40$. Поскольку программное обеспечение Financial Instruments Toolbox™ непосредственно не поддерживает этот инструмент, необходимо создать его с помощью функционального instaddfield
. Используйте эти параметры, чтобы создать инструменты:
Ввод: Future
Имена полей: Delivery
и Price
Данные: Доставка 15 июля 2000, и цена составляет 104,40$.
Введите данные в MATLAB:
Type = 'Future'; FieldName = {'Delivery', 'Price'}; Data = {'Jul-15-2000', 104.4};
Наконец, создайте портфель с одним инструментом:
Port = instaddfield('Type', Type, 'FieldName', FieldName,... 'Data', Data);
Теперь используйте функциональный instdisp
исследовать получившийся портфель одно инструмента:
instdisp(Port) Index Type Delivery Price 1 Future Jul-15-2000 104.4
Поскольку ваш портфель Port
имеет ту же структуру как те созданное использование функционального instadd
, можно объединить портфели, созданные с помощью instadd
с портфелями, созданными с помощью instaddfield
. Например, можно теперь добавить два инструмента дна в Port
с instadd
.
Strike = [0.06; 0.07]; Settle = '08-Feb-2000'; Maturity = '15-Jan-2003'; Port = instadd(Port, 'Cap', Strike, Settle, Maturity);
Просмотрите получившийся портфель с помощью instdisp
.
instdisp(Port) Index Type Delivery Price 1 Future 15-Jul-2000 104.4 Index Type Strike Settle Maturity CapReset Basis Principal 2 Cap 0.06 08-Feb-2000 15-Jan-2003 1 0 100 3 Cap 0.07 08-Feb-2000 15-Jan-2003 1 0 100
Financial Instruments Toolbox обеспечивает функции, которые включают вам к:
Найдите определенные инструменты в портфеле.
Создайте портфель подмножества, состоящий из инструментов, выбранных из большего портфеля.
instfind
функция находит инструменты с определенным значением параметров; это возвращает индекс КИП (положение) в большом инструментальном наборе. instselect
функция, с другой стороны, подмножества большой инструмент установлена в портфель инструментов с обозначенными значениями параметров; это возвращает инструментальный набор (портфель), а не индекс.
instfind
Общий синтаксис для instfind
IndexMatch = instfind(InstSet, 'FieldName', FieldList, 'Data',... DataList, 'Index', IndexSet, 'Type', TypeList)
InstSet
инструмент собирается искать. В InstSet
инструменты, категоризированные типом, каждый тип может иметь различные поля данных. Сохраненное поле данных является вектором-строкой или вектором символов для каждого инструмента.
FieldList
, DataList
, и TypeList
аргументы указывают на значения, чтобы искать в FieldName
данные
, и Type
поля данных инструмента установлены. FieldList
массив ячеек имен полей, характерных для инструментов. DataList
массив ячеек или матрица приемлемых значений для одного или нескольких параметров, заданных в FieldList
. FieldName
и Data
(поэтому, FieldList
и DataList
) параметры должны появиться вместе или нисколько.
IndexSet
вектор целочисленных индексов, определяющих положения инструментов в инструментальном наборе проверять на соответствия; значением по умолчанию являются все индексы, доступные в инструментальном наборе. TypeList
вектор символов или инструменты ограничения массива ячеек из символьных векторов, чтобы совпадать с одним из TypeList
типы; значением по умолчанию являются все типы в инструментальном наборе.
IndexMatch
вектор положений инструментов, совпадающих с входными критериями. Инструменты возвращены в IndexMatch
если весь FieldName
данные
, Index
, и Type
условия соблюдают. Инструмент удовлетворяет отдельному полевому условию если сохраненный FieldName
данные совпадают с любой из строк, перечисленных в DataList
для того FieldName
.
instfind
Примеры. Примеры используют обеспеченный MAT-файл deriv.mat
.
MAT-файл содержит инструментальный набор, HJMInstSet
, это содержит восемь инструментов семи типов.
load deriv.mat
instdisp(HJMInstSet) Index Type CouponRate Settle Maturity Period Basis ... Name Quantity 1 Bond 0.04 01-Jan-2000 01-Jan-2003 1 NaN ... 4% bond 100 2 Bond 0.04 01-Jan-2000 01-Jan-2004 2 NaN ... 4% bond 50 Index Type UnderInd OptSpec Strike ExerciseDates AmericanOpt Name Quantity 3 OptBond 2 call 101 01-Jan-2003 NaN Option 101 -50 Index Type CouponRate Settle Maturity FixedReset Basis Principal Name Quantity 4 Fixed 0.04 01-Jan-2000 01-Jan-2003 1 NaN NaN 4% Fixed 80 Index Type Spread Settle Maturity FloatReset Basis Principal Name Quantity 5 Float 20 01-Jan-2000 01-Jan-2003 1 NaN NaN 20BP Float 8 Index Type Strike Settle Maturity CapReset Basis Principal Name Quantity 6 Cap 0.03 01-Jan-2000 01-Jan-2004 1 NaN NaN 3% Cap 30 Index Type Strike Settle Maturity FloorReset Basis Principal Name Quantity 7 Floor 0.03 01-Jan-2000 01-Jan-2004 1 NaN NaN 3% Floor 40 Index Type LegRate Settle Maturity LegReset Basis Principal LegType Name Quantity 8 Swap [0.06 20] 01-Jan-2000 01-Jan-2003 [1 1] NaN NaN [NaN] 6%/20BP Swap 10 |
Найдите все инструменты с датой погашения от 01 января 2003.
Mat2003 = ... instfind(HJMInstSet,'FieldName','Maturity','Data','01-Jan-2003')
Mat2003 = 1 4 5 8
Найдите все дно и инструменты пола с датой погашения от 01 января 2004.
CapFloor = instfind(HJMInstSet,... 'FieldName','Maturity','Data','01-Jan-2004', 'Type',... {'Cap';'Floor'})
CapFloor = 6 7
Найдите все инструменты, где портфель длинен, или закоротите количество 50.
Pos50 = instfind(HJMInstSet,'FieldName',... 'Quantity','Data',{'50';'-50'})
Pos50 = 2 3
instselect
Синтаксис для instselect
тот же синтаксис что касается instfind
. instselect
возвращает полный портфель вместо индексов в исходный портфель. Сравните значения, возвращенные обеими функциями путем вызова их эквивалентно.
Ранее вы использовали instfind
найти все инструменты в HJMInstSet
с датой погашения от 01 января 2003.
Mat2003 = ... instfind(HJMInstSet,'FieldName','Maturity','Data','01-Jan-2003')
Mat2003 = 1 4 5 8
Теперь используйте тот же инструментальный набор в качестве начальной точки, но выполните instselect
функция вместо этого, чтобы произвести новый инструментальный набор, совпадающий с идентичными критериями поиска.
Select2003 = ... instselect(HJMInstSet,'FieldName','Maturity','Data',... '01-Jan-2003') instdisp(Select2003)
Index Type CouponRate Settle Maturity Period Basis EndMonthRule IssueDate FirstCouponDate LastCouponDate StartDate Face Name Quantity 1 Bond 0.04 01-Jan-2000 01-Jan-2003 1 NaN NaN NaN NaN NaN NaN NaN 4% bond 100 Index Type CouponRate Settle Maturity FixedReset Basis Principal Name Quantity 2 Fixed 0.04 01-Jan-2000 01-Jan-2003 1 NaN NaN 4% Fixed 80 Index Type Spread Settle Maturity FloatReset Basis Principal Name Quantity 3 Float 20 01-Jan-2000 01-Jan-2003 1 NaN NaN 20BP Float 8 Index Type LegRate Settle Maturity LegReset Basis Principal LegType Name Quantity 4 Swap [0.06 20] 01-Jan-2000 01-Jan-2003 [1 1] NaN NaN [NaN] 6%/20BP Swap 10
instselect
Примеры. Эти примеры используют портфель ExampleInst
предоставленный MAT-файл InstSetExamples.mat
.
load InstSetExamples.mat
instdisp(ExampleInst)
Index Type Strike Price Opt Contracts 1 Option 95 12.2 Call 0 2 Option 100 9.2 Call 0 3 Option 105 6.8 Call 1000 Index Type Delivery F Contracts 4 Futures 01-Jul-1999 104.4 -1000 Index Type Strike Price Opt Contracts 5 Option 105 7.4 Put -1000 6 Option 95 2.9 Put 0 Index Type Price Maturity Contracts 7 TBill 99 01-Jul-1999 6
Инструментальный набор содержит три инструментальных типа: Option
, Futures
, и TBill
. Используйте instselect
сделать новый инструментальный набор, содержащий только опции, нанесло удар по 95
. Другими словами, выберите все инструменты, содержащие поле Strike
и со значением данных для того поля равняются 95
.
InstSet = instselect(ExampleInst,'FieldName','Strike','Data',95); instdisp(InstSet)
Index Type Strike Price Opt Contracts 1 Option 95 12.2 Call 0 2 Option 95 2.9 Put 0
Можно использовать все различные формы instselect
и instfind
определять местоположение определенных инструментов в этом инструментальном наборе.
hedgeopt
| hedgeslf
| instadd
| instaddfield
| instdelete
| instdisp
| instfields
| instfind
| instget
| instgetcell
| instlength
| instselect
| instsetfield
| insttypes
| intenvset