Инструментарий предоставляет конструкторы для наиболее распространенных финансовых инструментов. Конструктор - это функция, которая строит структуру, посвященную определенному типу объекта; в этой панели инструментов объект является типом рыночного инструмента.
Ниже перечислены приборы и их функции-конструкторы.
Инструмент | Функция конструктора |
|---|---|
Азиатский вариант | |
Вариант барьера | |
Связь | |
Облигационный опцион | |
Произвольный денежный поток | |
Составной вариант | |
Конвертируемая облигация | |
Примечание с фиксированной ставкой | |
Нота с плавающей ставкой | |
Кепка | |
Пол | |
Параметр «Поиск» | |
Опцион на акции | |
Обмен | |
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
Инструментарий финансовых инструментов предоставляет следующие функции:
Найдите конкретные инструменты в портфеле.
Создайте портфель подмножеств, состоящий из инструментов, выбранных из большего портфеля.
instfind функция находит инструменты с определенным значением параметра; возвращает индекс (положение) прибора в большом наборе приборов. instselect функция, с другой стороны, подмножества большого инструмента, установленного в портфель инструментов с обозначенными значениями параметров; он возвращает набор инструментов (портфель), а не индекс.
instfindОбщий синтаксис для instfind является
IndexMatch = instfind(InstSet, 'FieldName', FieldList, 'Data',... DataList, 'Index', IndexSet, 'Type', TypeList)
InstSet - набор инструментов для поиска. В InstSet инструменты, классифицированные по типу, каждый тип может иметь различные поля данных. Сохраненное поле данных представляет собой вектор строки или символьный вектор для каждого прибора.
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