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