Тулбокс предоставляет конструкторы для наиболее распространенных финансовых инструментов. Конструктор является функцией, которая создает структуру, посвященную определенному типу объекта; в этом тулбоксе объектом является тип рыночного инструмента.
Инструменты и их функции конструктора перечислены ниже.
Инструмент | Функция конструктора |
---|---|
Азиатская опция | |
Барьерные опции | |
Связь | |
Опция облигации | |
Произвольный денежный поток | |
Составная опция | |
Конвертируемая облигация | |
Примечание с фиксированной ставкой | |
Примечание с плавающей скоростью | |
Прописная буква | |
Пол | |
Опция поиска | |
Опция запаса | |
Обмен | |
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
инструменты, классифицированные по типам, каждый тип может иметь различные поля данных. Сохраненное поле данных является вектором-строкой или вектором символов для каждого инструмента.
The FieldList
, DataList
, и TypeList
аргументы указывают значения для поиска в FieldName
, Data
, и Type
поля данных набора приборов. FieldList
- массив ячеек с именами полей, характерными для инструментов. DataList
- массив ячеек или матрица приемлемых значений для одного или нескольких параметров, заданных в FieldList
. FieldName
и Data
(поэтому FieldList
и DataList
) параметры должны появляться вместе или не появляться вообще.
IndexSet
вектор целочисленных индексов, обозначающих положения приборов в наборе приборов для проверки соответствия; по умолчанию это все индексы, доступные в наборе приборов. TypeList
- вектор символов или массив ячеек из векторов символов, ограничивающий инструменты в соответствии с одним из TypeList
типы; по умолчанию это все типы в наборе приборов.
IndexMatch
- вектор положений инструментов, соответствующий входным критериям. Инструменты возвращаются в IndexMatch
если все FieldName
, Data
, 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