Тулбокс предоставляет конструкторам для наиболее распространенных финансовых инструментов. Конструктор является функцией, которая создает структуру, выделенную определенному типу объекта; в этом тулбоксе объект является типом инструмента рынка.
Инструменты и их конструкторы в этом тулбоксе описаны ниже.
Инструмент | Конструктор |
|---|---|
Азиатская опция | |
Барьерный опцион | |
Связь | |
Опция связи | |
Произвольный поток наличности | |
Составная опция | |
Конвертируемая облигация | |
Примечание с фиксированной процентной ставкой | |
Долговое обязательство с плавающей ставкой | |
\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
3instselectСинтаксис для 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