exponenta event banner

cfplot

Визуализация денежных потоков финансовых инструментов

Описание

пример

cfplot(CFlowDates,CFlowAmounts) строит график движения денежных средств для указанных сумм движения денежных средств (CFlowAmounts) и даты (CFlowDates). Длина и ориентация каждой стрелки соответствуют сумме денежного потока.

пример

cfplot(___,Name,Value) строит график движения денежных средств для указанных сумм движения денежных средств (CFlowAmounts), даты (CFlowDates) и необязательные аргументы пары имя-значение.

пример

h = cfplot(___,Name,Value) возвращает дескриптор к объектам строки, используемым в схеме денежного потока.

пример

[h,axes_handle] = cfplot(___,Name,Value) возвращает дескрипторы к объектам линии и осям, используя необязательные аргументы пары имя-значение.

Примеры

свернуть все

Определить CFlowAmounts и CFlowDates с использованием cfamounts функция.

CouponRate = [0.06; 0.05; 0.03];
Settle = '03-Jun-1999';
Maturity = ['15-Aug-2000';'15-Dec-2000';'15-Jun-2000'];
Period = [1; 2; 2];  Basis = [1; 0; 0];
[CFlowAmounts, CFlowDates] = cfamounts(...
CouponRate, Settle, Maturity, Period, Basis)
CFlowAmounts = 3×5

   -4.8000    6.0000  106.0000       NaN       NaN
   -2.3352    2.5000    2.5000    2.5000  102.5000
   -1.4011    1.5000    1.5000  101.5000       NaN

CFlowDates = 3×5

      730274      730347      730713         NaN         NaN
      730274      730286      730469      730652      730835
      730274      730286      730469      730652         NaN

Постройте график всех денежных потоков на одной оси и пометьте первые две.

cfplot(CFlowDates, CFlowAmounts, 'ShowAmnt', [1 2])

Figure contains an axes. The axes contains 17 objects of type line, text.

Сгруппируйте второй и третий денежные потоки.

figure;
cfplot(CFlowDates, CFlowAmounts, 'Groups', {[2 3]}, 'ShowAmnt', 1);

Figure contains an axes. The axes contains 11 objects of type line, text.

Отформатируйте ось дат и установите галочки на фактические даты движения денежных средств.

figure;
cfplot(CFlowDates, CFlowAmounts, 'Groups', {[2 3]}, 'ShowAmnt', 1, ...
'DateFormat', 6, 'DateSpacing', 100);

Figure contains an axes. The axes contains 11 objects of type line, text.

Делите стрелки денежного потока на те же даты.

figure;
cfplot(CFlowDates, CFlowAmounts, 'Groups', {[2 3]}, 'ShowAmnt', 1, ...
'DateFormat', 6, 'DateSpacing', 100, 'Stacked', 1);

Figure contains an axes. The axes contains 11 objects of type line, text.

Создайте вложенные печати из нескольких групп и добавьте заголовки с помощью маркеров перемещения осей.

figure;
[h, axes_handle] = cfplot(CFlowDates, CFlowAmounts, ...
'Groups', {[1] [2 3]}, 'ShowAmnt', 1, 'Stacked', 2, ...
'DateSpacing', [1 60 2 100], 'DateFormat', [1 12 2 6]);
title(axes_handle(1), 'Group 1', 'FontWeight', 'bold');
title(axes_handle(2), 'Group 2', 'FontWeight', 'bold');

Figure contains 2 axes. Axes 1 with title Group 1 contains 6 objects of type line, text. Axes 2 with title Group 2 contains 6 objects of type line.

Определить CFlowDates использование datetime ввод и график денежного потока.

CouponRate = [0.06; 0.05; 0.03];
Settle = '03-Jun-1999';
Maturity = ['15-Aug-2000';'15-Dec-2000';'15-Jun-2000'];
Period = [1; 2; 2];  Basis = [1; 0; 0];
[CFlowAmounts, CFlowDates] = cfamounts(...
CouponRate, Settle, Maturity, Period, Basis);
cfplot(datetime(CFlowDates,'ConvertFrom','datenum','Locale','en_US'), CFlowAmounts, 'ShowAmnt', [1 2])

Figure contains an axes. The axes contains 17 objects of type line, text.

Определите своп с помощью swapbyzero функция.

Settle = datenum('08-Jun-2010');
RateSpec = intenvset('Rates', [.005 .0075 .01 .014 .02 .025 .03]',...
'StartDates',Settle, 'EndDates',{'08-Dec-2010','08-Jun-2011',...
'08-Jun-2012','08-Jun-2013','08-Jun-2015','08-Jun-2017',...
'08-Jun-2020'}');
Maturity = datenum('15-Sep-2020');
LegRate = [.025 50];
LegType = [1 0]; % fixed/floating
LatestFloatingRate = .005;
[Price, SwapRate, AI, RecCF, RecCFDates, PayCF,PayCFDates] = ...
swapbyzero(RateSpec, LegRate, Settle, Maturity,'LegType',LegType,...
'LatestFloatingRate',LatestFloatingRate)
Price = -6.7258
SwapRate = NaN
AI = 1.4575
RecCF = 1×12

   -1.8219    2.5000    2.5000    2.5000    2.5000    2.5000    2.5000    2.5000    2.5000    2.5000    2.5000  102.5000

RecCFDates = 1×12

      734297      734396      734761      735127      735492      735857      736222      736588      736953      737318      737683      738049

PayCF = 1×12

   -0.3644    0.5000    1.4048    1.9823    2.8436    3.2842    3.8218    4.1733    4.5164    4.4666    4.8068  104.6743

PayCFDates = 1×12

      734297      734396      734761      735127      735492      735857      736222      736588      736953      737318      737683      738049

Определить CFlowDates и CFlowAmounts для свопа и создания графика денежного потока с использованием cfplot.

CFlowDates = [PayCFDates;RecCFDates];
CFlowAmounts = [-PayCF;RecCF];
cfplot(CFlowDates, CFlowAmounts, 'Groups', {[1 2]});
xlabel('Numeric Cash Flow Dates');

Figure contains an axes. The axes contains 6 objects of type line.

Входные аргументы

свернуть все

Матрица серийных номеров дат или массивов datetime для денежных потоков, указанных как NINSTоколо-(Number of cash flows) матрица дат движения денежных средств в номерах дат, с пустыми записями, дополненными NaNs.

Каждая строка CFlowDates матрица представляет инструмент так, что CFlowDates(k,:) - вектор дат движения денежных средств для k-й инструмент. Строки дополняются завершающими NaNs, если количество денежных потоков не одинаково для всех инструментов.

cfamounts может использоваться для генерации CFlowDates.

Типы данных: double

Матрица сумм денежных потоков, указанных как NINSTоколо-(Number of cash flows) матрица сумм денежных потоков, с пустыми записями, дополненными NaNс. CFlowAmounts матрица должна быть того же размера, что и CFlowDates.

cfamounts может использоваться для генерации CFlowAmounts.

Типы данных: double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: cfplot(CFlowDates,CFlowAmounts,'Groups',{[2 3]},'ShowAmnt',1,'DateFormat',6,'DateSpacing',100)

Группировать денежные потоки, указанные как разделенная запятыми пара, состоящая из 'Groups' и следующие значения:

  • 'off' - Показать все приборы в одном наборе осей, расположенных сверху вниз.

  • 'individual' - Создание вложенных графиков и печать каждого инструмента по собственной оси.

  • GRP - массив ячеек групп приборов, {Group1, Group2,... }. При этом создаются подсхемы и графики каждой группы на каждой оси. При указании {Group1, Group2,... }, каждая Группа должна быть взаимоисключающими векторами INSTIndex. Неуказанные инструменты не показаны на сгруппированном графике.

Типы данных: char | cell

Стрелки стека, если денежные потоки находятся в одном направлении в тот же день, указанный как пара, разделенная запятыми, состоящая из 'Stacked' и следующие значения:

  • 'off' - Для всех групп все стрелки начинаются от горизонтальной линии.

  • 'all' - Для всех групп стрелки складываются, если денежные потоки находятся в одном направлении в один и тот же день.

  • 'GRPIndex' - Для указанных групп стрелки складываются, если денежные потоки находятся в одном направлении в один и тот же день.

Типы данных: char

Показать количество на стрелках, указанное как разделенная запятыми пара, состоящая из 'ShowAmnt' и следующие значения:

  • 'off' - Скрытие сумм денежных потоков на стрелках.

  • 'all' - Показать суммы денежных потоков на стрелках.

  • [INSTIndex или GRPIndex] - Показать суммы денежных потоков для указанного вектора инструментов (когда 'Groups' является 'off') или группы.

Типы данных: char | cell

Управление интервалом между данными, указанным как разделенная запятыми пара, состоящая из 'DateSpacing' и следующие значения:

  • 'off' - Засечки оси даты расположены регулярно.

  • TickDateSpace - галочки по оси дат размещаются на фактических датах движения денежных средств. Клещи пропускают некоторые денежные потоки, если они меньше, чем TickDateSpace особняком.

Типы данных: char | double

Формат даты, указанный как пара, разделенная запятыми, состоящая из 'DateFormat' и следующие значения:

  • 'off' - Метки засечки оси даты указаны в номерах дат.

  • DateFormNum - номер формата даты (2 = 'mm/dd/yy', 6 = 'mm/dd', и 10 = 'yyyy'). Дополнительные значения для DateFormNum являются следующими:

    DateFormNumПример
    2 03/01/00
    3Март
    503
    603/01
    701
    8В среду
    9W
    102000
    1100
    12Mar00
    171 квартал 00
    18Q1
    1901/03
    2001/03/00
    271 квартал 2000
    28Mar2000
    292000–03–01

Типы данных: char | double

Выходные аргументы

свернуть все

Обрабатывает объекты строки, возвращаемые как NINSTоколо-3 матрица маркеров перемещения к линейным объектам, содержащая [hLines, hUArrowHead, hDArrowHead] где:

  • hLines - Горизонтальные и вертикальные линии, используемые в схеме движения денежных средств

  • hUArrowHead - Стрелки «вверх»

  • hDArrowHead - Стрелки «Вниз»

Маркеры перемещения к осям для графика или вложенных диаграмм, возвращаемые как (Number of axesоколо-1 вектор ручек к осям.

См. также

| | | (инструментарий финансовых инструментов)

Представлен в R2013a