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;
cfplot(CFlowDates, CFlowAmounts, 'Groups', {[2 3]}, 'ShowAmnt', 1);

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

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

Сложите стрелы потока наличности, происходящие в те же даты.

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

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

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');

Задайте 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])

Задайте подкачку с помощью 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');

Входные параметры

свернуть все

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

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

cfamounts может использоваться, чтобы сгенерировать CFlowDates.

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

Матрица потока наличности составляет в виде NINST- (Number of cash flows) матрица сумм потока наличности, с пустыми записями, дополненными NaNs. 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
    17Q1 00
    18Q1
    1901/03
    2001/03/00
    27Q1–2000
    28Mar2000
    292000–03–01

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

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

свернуть все

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

  • hLines — Горизонтальные и вертикальные линии используются в схеме потока наличности

  • hUArrowHead — Наконечники стрелки

  • hDArrowHead — "Вниз" наконечники стрелки

Указатели на оси для графика или подграфиков, возвращенных как (Number of axes)-by-1 вектор указателей на оси.

Введенный в R2013a