Работа с денежными потоками

39
Работа с денежными потоками Рассмотрим модельную задачу: инвестор на протяжении n лет вкладывает в начале каждого i-ого базового периода а в конце того же периода получает доход . Текущая процентная ставка r ( или учетная ставка d). В частности. Величины P и C могут быть равны нулю. Связь текущей стоимость в момент времени , T – базовый временной период и будущей стоимостью: Можно требовать t=0, так как платежи часто осуществляются в конце периода. Также можно выписать текущую стоимость проекта в виде потока платежей Можно пересчитать будущую стоимость проекта: 1 i P i C k t kT t (1 ) 1 k t fv pv r r T 0 (1 ) n i i i CF nvp r 0 (1 ) n ni i i fv CF r

Upload: myrna

Post on 05-Feb-2016

74 views

Category:

Documents


0 download

DESCRIPTION

Работа с денежными потоками. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Работа с денежными потоками

Работа с денежными потокамиРассмотрим модельную задачу: инвестор на протяжении n лет вкладывает в начале каждого i-ого базового периода а в конце того же периода получает доход . Текущая процентная ставка r ( или учетная ставка d). В частности. Величины P и C могут быть равны нулю.Связь текущей стоимость в момент времени , T – базовый временной период и будущей стоимостью:

Можно требовать t=0, так как платежи часто осуществляются в конце периода.Также можно выписать текущую стоимость проекта в виде потока платежей

Можно пересчитать будущую стоимость проекта:

1iP

iC

kt kT t

(1 ) 1k tfv pv r r

T

0 (1 )

nii

i

CFnvp

r

0

(1 )n

n ii

i

fv CF r

Page 2: Работа с денежными потоками

Функции MatLab

• nvp=pvvar(cash_flow, percent, payments_date)• fv=fvvar(cash_flow, percent, payments_date)• Внутренняя доходность оценивается с помощью функции

inner_income=xirr(cash_flow, payments_date, start_condition, number_iterations)

• cash_flow – массив потока платежей CF• percent – процентная ставка• payments_date – даты платежей• В функции xirr последние два аргумента

необязательные. Start_condition дает стартовую точку для решения уравнения COF=CIF.

Page 3: Работа с денежными потоками

Сложные критерии.Предыдущие критерии достаточно просты. Имеется два

критерия, которые позволяют провести более точный анализ платежей.

Первый – дюрация Маколея. Второй – выпуклость. Пусть стоимость положительного потока платежей P зависит

от процентной ставки r достаточно гладко. Тогда функцию P(r) можно разложить в ряд Тейлора в

окрестности фиксированной точки r.После преобразований формулы Тейлора, получим формулу

Здесь - модифицированная дюрация, а V(r) – выпуклость.

21( ) ( ) ( )( )

2mP P r D r r V r r

( )mD r

Page 4: Работа с денежными потоками

Сложные критерии. Дюрация

Модифицированная дюрация связана с дюрацией Маколея следующим соотношением

Собственно дюрация выражается через параетры задачи:

Она имеет смысл средневзвешенного времени полного платежа.

( )( )

1m

D rD r

r

1 1

( )( ) , , ( ) ( )

( )

n ni

i i i ii i

pv CFD r t w w P r pv CF

P r

Page 5: Работа с денежными потоками

Сложные критерии. Выпуклость.Как и дюрация, выпуклость вычисляется через параметры

задачи:

Момент времени, как и в дюрации, Дюрация представляет собой линейный показатель

изменения цены P при изменении ставки r на . При таком изменении цена P изменяется нелинейно, но

как выпуклая функция ставки. Выпуклость и показывает на сколько выпукла эта функция при малом изменении.

С математической точки зрения

22

1

1( ) ( )

(1 )

n

i ii

V r t w D rr

it i

r

( ) '( ), ( ) ''( )D r P r V r P r

Page 6: Работа с денежными потоками

Сложные критерии. MatLab.Для вычисления дюрации используется функция [duration,

mod_duration] = cfdur(flow, income)Для вычисления выпуклости – функция convexity =

cfconv(flow, income)Параметры. Аргумент flow – массив последовательных

платежей. Второй – income – ставка доходности для одного периода.

Выходные аргументы. Аргумент duration – дюрация Маколея, mod_duration – модифицированная дюрация. Convexity – выпуклость.

Дюрация и модифицированная дюрация имеют размерность количества периодов. Выпуклость – количество периодов в квадрате.

Page 7: Работа с денежными потоками

Пример. Простые критерии.

• Рассмотрим модельную задачу. Имеется два проекта на 5 лет, начиная с конца 2011 года, при текущей процентной ставке 10%. Платежи производятся в последний рабочий понедельник месяца.

• Проект 1. Начальное вложение 100 млн. руб. Получение ежегодных доходов, начиная с конца второго года по 47, 53, 30 и 20 млн. руб.

• Проект 2. Начальное вложение 80 млн. руб. Дополнительное вложение 40 млн. руб в начале 4-ого года. Ежегодные доходы с конца первого года по 25, 15, 20, 30 и 80 млн. руб. В последний год ожидается платеж двумя равными частями в конце каждого полугодия.

• Без учета зависимости стоимости платежей от времени, то доход от каждого из этих проектов равен 50 млн. руб.

Page 8: Работа с денежными потоками

Последовательное составление программы.

• Составление массивов платежей.Первый проект. Cf1=[-100, 0, 47, 53, 30, 20]Второй проект. Cf2=[-80, 25, 15, -20, 30, 40, 40]• Отрицательное число означает исходящий

платеж.

Page 9: Работа с денежными потоками

Построение массива дат платежей.• Первый проект.>> date_flow1=[];

for i = 1:6 date_flow1 (i) = lweekdate(2, 2011 + i, 12); end• Второй проект.>> date_flow2=[]; date_flow2 = date_flow1; date_flow2(6) = lweekdate(2, 2017, 6) ; date_flow2(7) = date_flow1(6);

Page 10: Работа с денежными потоками

Простые критерии.

• Сравнение по критерию npvnpv1 = pvvar(Cf1, 0.1, date_flow1)npv2 = pvvar(Cf2, 0.1, date_flow2)

• Критерий fv:fv1 = fvvar(Cf1, 0.1, date_flow1)fv2 = fvvar(Cf2, 0.1, date_flow2)

• Расчет внутренней ставки доходности (критерий IRR)int_rate1 = xirr(Cf1, date_flow1, 0.13, 100)int_rate2 = xirr(Cf2, date_fIow2, 0.13, 100)

Page 11: Работа с денежными потоками

Листинг программы.

Page 12: Работа с денежными потоками

Результаты>> cash_flow

npv1 =

11.6828 11,5500

npv2 =

11.5804 11,4774

fv1 =

18.7847 18,6050

fv2 =

18.6199 18,4881

int_rate1 =

0.1408 0,1403

int_rate2 =

0.1434 0,1429По первому и второму критерию

первый проект предпочтительнее, чем второй.

Однако по внутренней норме

доходности второй лучше.Оба проекта показывают

достаточно близкие значения, поэтому воспользуемся двумя оставшимися критериями для оценки. Рассчитаем дюрацию и выпуклость.

Page 13: Работа с денежными потоками

Пример. Сложные критерии. Расчет поступлений.

• В качестве поступлений во втором проекте следует выбирать полугодовой период, так как в нем присутствует выплата за полугодовой период.

• Поэтому и в первом проекте следует выбирать полугодовой интервал. Иначе будут несоразмерные величины.

Page 14: Работа с денежными потоками

Пример. Расчет дюрации и выпуклости.

Cf11=[0, 0, 0, 47, 0, 53, 0, 30, 0, 20];Cf21=[0, 25, 0, 15, 0, 0, 0, 30, 40, 40];

dur1 = cfdur(Cf11, 0.1/2)cxl = cfconv(Cf11, 0.1/2)dur2 = cfdur(Cf21, 0.1/2)cx2 = cfconv(Cf21, 0.1/2)

Page 15: Работа с денежными потоками

Листинг программы.

Page 16: Работа с денежными потоками

Результаты.>> cash_flow1

dur1 =

6.1118 6,1118

cxl =

42.9530 42,9530

dur2 =

6.9540 6,9540

cx2 =

58.9449 58,9449

Из расчета видно, что второй поток чувствительнее, чем первый, к изменению процентной ставки (оба параметра больше). Как следствие имеет больший риск, связанный с возможными ее изменениями в период осуществления проекта.

Задача. Можно было бы воспользоваться очевидным фактом, что два полугодия составляют один год и пользоваться этим при вычислении дюрации. Однако это не так: результаты будут отличаться на порядок

. Проверить это для рассмотренного примера.

2(( ) )o r

Page 17: Работа с денежными потоками

Анализ кредитов. Функция amortize.[per_credit, per_percent, debt, payment] = amortize(rate, periods, summ, balance, moment)

Первые три аргумента обязательны:rate - процентная ставка по кредиту за один периодperiods – полное число периодов расчета по займуsumm – сумма полученных заемщиком денежных средств

Два последних аргумента необязательны:moment (по умолчанию 0) – флаг, равный 1 при выплатах в начале периода и 0 – в концеbalance (по умолчанию 0) – та сумма, которая остается неоплаченной, если задается

отрицательное число. Или сумма, которую будет должен кредитор заемщику после погашения долга.

Возвращает эта функция три массива (первые три аргумента) размерности periods и одно число:per_credit – платежи по сумме кредита за каждый периодper_percent – выплаты по начисленным процентам за остаток кредита в каждый периодdebt – оставшийся долг после текущего платежаpayment – сумма общей разовой выплаты

Page 18: Работа с денежными потоками

Анализ кредитов. Другие функции.

Процентную ставку позволяет вычислить функция• rate = annurate(periods, payment, summ, balance, moment)Рассчитать разовый платеж можно с помощью• payment = payper(rate, periods, summ, balance, moment)Следующая функция позволяет работать с накоплениями в

банке и определить за какое время накопится в банке необходимая сумма.

• periods = annuterm(rate, payment, summ, deposit, moment)• summ – сумма на начало вклада; deposit – сумма на

конец вклада.

Page 19: Работа с денежными потоками

Анализ кредитов. Пример.

• Пусть необходимо принять решение о рассмотрении кредита в 1 млн. руб. в течении 10 лет. Процентная ставка – 20% годовых.

Page 20: Работа с денежными потоками

Результаты.per_credit = 38.5228 46.2273 55.4728

66.5673 79.8808 95.8569 115.0283 138.0340 165.6408 198.7690

per_percent = 200.0000 192.2954

183.0500 171.9554 158.6420 142.6658 123.4944 100.4888

72.8820 39.7538

debt =961.4772 915.2499 859.7772

793.2098 713.3291 617.4721 502.4438 364.4098 198.7690 -0.0000

payment = 238.5228

Page 21: Работа с денежными потоками

Продолжение примера.

Page 22: Работа с денежными потоками

Результат

Функция annuraterate1 = 0.2000

Функция payperpayment1 = 238.5228

Функция annutermperiods = 7.9964

Page 23: Работа с денежными потоками

Портфельный анализ рисковых активов.

Основные функции портфельного анализа основаны на моделях Марковица и Тобина и их модификациях. Вначале кратко поясним суть вопроса.

В общей постановке задача портфельного инвестирования для инвестора формулируется так. Инвестор рассматривает возможность вложения капитала в некоторый набор акций (рисковых активов), выбранный им из личных соображений, и желает составить портфель ценных бумаг так, чтобы его доходность была бы наибольшей при фиксированном риске или риск был бы наименьшим при выбранной доходности портфеля. В рассматриваемой модели за меру риска принимается среднеквадратическое отклонение доходности ценных бумаг или портфеля от ее математического ожидания. На выбор портфеля влияет также отношение инвестора к риску, т. е. насколько он готов увеличить рискованность вложения с целью получить большую доходность.

В простейшем случае поиск наилучшего портфеля состоит из двух шагов: построение эффективной границы Марковица с использованием функций frontcon или portopt и выбор портфеля с помощью функции portalloc в соответствии с отношением инвестора к риску и значениями процентных ставок для безрискового вложения и заимствования.

Page 24: Работа с денежными потоками

Математическая постановка.

Пусть инвестор рассматривает вопрос о составлении портфеля из n активов. Ожидаемые доходности которых представлены вектором y, а их ковариации – матрицей V:

Сам портфель определяется вектором , компоненты которого указывают долю покупки того или иного актива, .

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

1 , 1( ,..., ) ,

nTn ij i j

y y y V v

1( ,..., )Tnx x x

1

1n

ii

x

0ix

Page 25: Работа с денежными потоками

Математическая постановка. Продолжение.

Ограничение означает, что инвестор не может осуществлять краткосрочные продажи (продавать заимствованные бумаги).

Ожидаемая доходность обозначается через , а его риск (среднеквадратичное отклонение) - .

Справедливы следующие формулы-определения

0ix

py

p

,T Tp py x y x Vx

Page 26: Работа с денежными потоками

Математическая постановка. Продолжение. II.

Пусть и - наименьшая и наибольшая доходности. Тогда , и если для каждого фиксированного значения доходности y построить график , то получится кривая. называемая пулей Марковица. Часть этой кривой является эффективной границей.

Каждой точке на эффективной границе соответствует эффективный портфель в смысле седловой точки.

miny maxy

min max[ , ]py y y

( )p py

0 0,p py

Page 27: Работа с денежными потоками

Построение эффективной границы.

Итак, инвестор определился с доходностями и рисками по каждому вложению. Он построил матрицу коэффициентов корреляции между этими активами. MatLab в расчетах пользуется матрицей ковариаций.

Переход к этой матрице осуществляется при помощи функции MatrCov = corr2cov(Disp, MatrCorr)

Здесь Disp – вектор среднеквадратичных отклонений.Необходимо отметить, что матрица корреляции должна

быть симметричной и положительно определенной. В MatLab нет проверки на эти условия, поэтому в случае ошибки можно получить неправдоподобные результаты.

Page 28: Работа с денежными потоками

Построение эффективной границы. II

[Prisk, Pincome, Pparts] = portopt(Aincome, Acov, Pnumber, PNincome, borders)

Функция имеет два обязательных аргумента: Aincome и Acov – вектор доходностей и матрицу ковариаций.

Параметры Pnumber, Pnincome задают разбиение интервала . . Если задан один из них, то второй должен быть пустым. Определяют количество портфелей.

Параметр borders задает ограничения на неизвестные x.Выходные параметры – вектор рисков для каждого портфеля,

вектор ожидаемых доходностей портфеля и матрица, в которой каждая строка – доли активов в портфеле.

min max[ , ]y y

Page 29: Работа с денежными потоками

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

ограничения. Делается это с помощью функцииborders = portcons(‘type’, data1, data2, ... , dataN)

• Default. Стандартные ограничения , . Передается один параметр – число активов.

• AssetLims. Ограничения на активы. Передается два обязательных аргумента: первый – вектор L, второй – вектор U. Один необязательный аргумент – число активов.

• Custom. Произвольные ограничения . Передается два обязательных аргумента. Первый – матрица A размерности число ограничений на число активов. Второй – вектор b.

0 1i i iL x U

1

1n

ii

x

0ix

Ax b

Page 30: Работа с денежными потоками

Выбор оптимального портфеля.

Построение эффективной границы дает инветору множество эффективных портфелей. Из них выбирается тот, который наилучше отражает его отношение к риску: чем выше доходность, тем выше риск.

MatLab использует функцию предпочтения Неймана-Монгерштерна

Здесь a – индекс неприятия риска.

1( , )

2p p p pU y y a

Page 31: Работа с денежными потоками

Выбор оптимального портфеля. II

Уравнение U=const описывает кривую безразличия.

Инвестор стремится максимизировать функцию U на множестве допустимых портфелей.

Поэтому оптимальным будет тот портфель, который отвечает точке касания эффективной границы и кривой безразличия.

Page 32: Работа с денежными потоками

Выбор оптимального портфеля. III

Необходимо учесть, что MatLab позволяет использовать модифицированную модель инвестирования.

Инвестор может вкладывать средства в безрисковый актив с процентной ставкой

Или брать заем по ставке Таким образом к эффективной границе присоединяется в

соответствующих точках касания две прямых – безрисковая и кредитная.

Эти точки касания определяют еще два пакета, называемые касательными.

Из условия касания можно определить коэффициент вложения средств в этот актив

Здесь - риск для найденной точки на эффективной границе, а - риск соответствующего касательного пакета.

fr

b fr r

lTp

lTp

Page 33: Работа с денежными потоками

Средства MatLab для выбора оптимального портфеля

[Frisk, Fincome, Fparts, coef, Optrisk, Optincome]=portalloc(Prisk, Pincome, Pparts,…, NRalloc, NRpercent, Index)

Первые три входящих аргумента – те, которые были посчитаны с помощью функции portopt.

NRalloc, NRpercent – размер вложения и процентная ставка безрискового вложения.

Index – индекс неприятия риска. Чем выше, тем меньший риск выбирается. Рекомендуется: 4 – для осторожного инвестора, 2 – для рискового.

Frisk, Fincome, Fparts – риск, доходность, доли касательного портфеляCoef – коэффициент вложения средств в касательный активOptrisk, Optincome – риск и доходность оптимального портфеля.Если вызвать функцию без указания выходных параметров, то тогда

будет начерчен график.

Page 34: Работа с денежными потоками

Пример.

Page 35: Работа с денежными потоками

Результат выполнения.Prisk =

0.0805 0.0850 0.0985 0.1230 0.2050

Pincome =

0.1317 0.1465 0.1613 0.1762 0.1910

Pparts =

0.5747 0 0.0487 0.2336 0 0.1430 0.3381 0 0.2988 0.0599 0 0.3032 0.1069 0 0.4386 0 0.0442 0.4102 0 0 0.2955 0 0.2357 0.4688 0 0 0 0 0 1.0000

Page 36: Работа с денежными потоками

Пример. Продолжение.

Page 37: Работа с денежными потоками

Результат выбора оптимального портфеля. Нерисковый и рисковый случаи.

Page 38: Работа с денежными потоками

Результат. IIportalloc with output parametrs. No risk.

Frisk =

0.1013

Fincome =

0.1641

Fparts =

0.0870 0 0.4120 0 0.0798 0.4211

coef =

2.2908

Optrisk =

0.2321

Optincome =

0.2855

portalloc with output parametrs. With risk.

Frisk =

0.1013

Fincome =

0.1641

Fparts =

0.0870 0 0.4120 0 0.0798 0.4211

coef =

4.5816

Optrisk =

0.4643

Optincome =

0.5011

Page 39: Работа с денежными потоками

Финальный анализ.

Наиболее интересным является значения коэффициента coef.

Случай, когда он меньше единицы. Это указывает, что инвестору следует вложить долю средств coef в касательный актив, а остальное – в безрисковый.

Случай, когда он больше единицы. Это означает, что следует взять заем на долю coef-1 и вложить полученный кредит в касательный портфель.