Программа оптимизации рискового портфеля
Программа оптимизации рискового портфеля
Введение.
На финансовом рынке обращается множество ценных бумаг:
государственные ценные бумаги, муниципальные облигации, корпоративные акции
и т.д. Если у участника рынка есть свободные деньги, то их можно отнести в
банк и получать проценты или купить на них ценные бумаги и получать
дополнительный доход. Но в какой банк отнести? Какие ценные бумаги купить?
Малорисковые ценные бумаги, как правило, и малодоходны, высокодоходные, как
правило, более рисковые. Экономическая наука может дать некоторые
рекомендации для решения этого вопроса.
Постановка задачи.
Рассмотрим общую задачу распределения капитала, который участник
рынка хочет потратить на покупку ценных бумаг, по различным видам ценных
бумаг. Предваряя точные математические постановки, констатируем очевидную
общую цель инвестора – вложить деньги так, чтобы сохранить свой капитал, а
при возможности и нарастить его.
Набор ценных бумаг, находящихся у участника рынка, называется его
портфелем. Стоимость портфеля – это суммарная стоимость всех составляющих
его бумаг. Если сегодня его стоимость есть Р , а через год она окажется
равной Р( , то (Р(-Р)/Р естественно назвать доходностью портфеля в
процентах годовых. Т.е. доходность портфеля – это доходность на единицу его
стоимости.
Пусть хi – доля капитала, потраченная на покупку ценных бумаг i-го
вида. Рассуждения о долях эквивалентны тому, что весь выделенный капитал
принимается за единицу. Пусть di – доходность в процентах годовых ценных
бумаг i-го вида в расчете на одну денежную единицу.
Найдем доходность всего портфеля dp. С одной стороны, через год
капитал портфеля будет равен 1+ dp, с другой - стоимость бумаг i-го вида
увеличиться с х до xi + di*xi, так что суммарная стоимость портфеля будет
равна (xi + (xi*di = 1 + (xi*di. Приравнивая оба выражения для стоимости
портфеля, получаем dp = (xi*di.
Итак, задача увеличения капитала портфеля эквивалентна аналогичной
задаче о доходности портфеля, выраженной через доходности бумаг и их доли.
Как правило, доходность бумаг колеблется во времени, так что будем
считать ее случайной величиной. Пусть mi,(i – средняя ожидаемая доходность
и среднее квадратическое отклонение (СКО) этой случайной доходности, т.е.
mi=M[di] - математическое ожидание доходности и ri=(Vii, где Vii –
вариация или дисперсия i-ой доходности. Будем называть mi, ri
соответственно эффективностью и риском i-ой ценной бумаги. Через Vij
обозначим ковариацию доходностей ценных бумаг i-го и j-го вида (или
корреляционный момент Kij).
Так как доходность составляющих портфель ценных бумаг случайна, то и
доходность портфеля есть также случайная величина. Математическте ожидание
доходности портфеля есть M[dp]=x1*M[d1]+…+xn*M[dn]=(xi*mi обозначим его
через mp. Дисперсия доходности портфеля есть D[dp]=((xi*xj*Vij. Так же, как
и для ценных бумаг, назовем mp эффективностью портфеля, а величину
(p=(D[dp] – риском портфеля rp. Обычно дисперсия доходности портфеля
называется его вариацией Vp.
Итак, эффективность и риск портфеля выражены через эффективности
составляющих его ценных бумаг и их совместные ковариации.
Портфель Марковица минимального риска.
Существует несколько вариантов задач оптимизации рискового портфеля.
Мы рассмотрим только одну. Это так называемый «портфель Марковица». Эта
задача была сформулирована и решена американским экономистом Г. Марковицем
(H. Markovitz) в 1952 году , за что позднее он получил нобелевскую премию.
Пусть имеются n видов ценных бумаг, из которых инвестор хочет
сформировать портфель. Необходимо найти xi, минимизирующие вариацию
портфеля
Vp=(( xi*xj*Vij
при условии, что обеспечивается заданное значение эффективности
портфеля mp, т.е. (xi*mi=mp.
Поскольку xi – доли, то в сумме они должны составлять единицу: (xi=1.
Оставив за инвестором выбор средней эффективности портфеля и помогая
ему минимизировать в этом случае неопределенность, получаем следующую
задачу по оптимизации портфеля ценных бумаг:
min (( xi*xj*Vij
(xi=1
(mi*xi=mp
xi?0,…,xn?0
Это задача квадратичного программирования. Опустив условия
неотрицательности переменных, получаем собственно задачу Марковица.
Решение.
С помощью функции Лагранжа сведем задачу на условный экстремум к
задаче на безусловный экстремум:
L(x1,…,xn,(,()= (( Vij*xi*xj - (*((mi –1) - (*((mi*xi – mp),
(L/(xs=2*(Vis*xi - ( - (*ms=0, s=1,…,n. (*)
производные по (, ( воспроизводят указанные выше два соотношения, тем
самым для (n+2) переменных x1,…,xn, (, ( получаем (n+2) уравнения.
Запишем полученные уравнения в матричной форме, используя следующие
обозначения:
1 x1 m1
e= . x= . m= . x(=(x1,…,xn), m(=(m1,…,mn)
. . .
1 xn mn
Штрих применяется для обозначения операции транспонирования матрицы.
B- матрица ковариаций, B-1 – обратная ей матрица. Следовательно
уравнения (*) примут вид:
B*x = ((/2)*e + ((/2)*m,
e(*x = 1,
m(*x = mp.
Основное допущение этой модели состоит в том, что между
эффективностями m1,…,mn нет линейной связи, поэтому ковариационная матрица
B невырождена (|B|<>0), следовательно, существует обратная матрица В-1.
Используя этот факт разрешим в матричной форме относительно х:
х = ((/2)*В-1*е + ((/2)* В-1*m, (**)
подставив это решение в первое и второе условия, получим два
уравнения для определения (/2 и (/2:
(е(*В-1*е)*(/2 + (е(*В-1*m)*(/2 =1
(m(*B-1*e)*(/2 + (m(*В-1*m)*(/2 =mp.
Решая два последних уравнения по правилу Крамера, находим
(/2 = ((m(*В-1*m)-mp*(е(*В-1*m))/((е(*В-1*е)*(m(*В-1*m)-(m(*B-1*e)2)
(/2 = (mp*(е(*В-1*е)-(m(*B-1*e))/((е(*В-1*е)*(m(*В-1*m)-(m(*B-1*e)2)
Подставляя это решение в (**) получаем следующую структуру
оптимального портфеля:
[(m(*В-1*m)-mp*(е(*В-1*m)]*В-1*е + [mp*(е(*В-1*е) - (m(*B-1*e)]*В-
1*m
x* =
(е(*В-1*е)*(m(*В-1*m) - (m(*B-1*e)2
Простой подстановкой убеждаемся, что е(*х*=1 и m(*х*=mp.
Кроме того, находим минимальную дисперсию, соответствующую
оптимальной структуре:
[m2p*(е(*В-1*е) – 2*mp*(m(*B-1*e) + (m(*В-1*m)]
D*p=
[(е(*В-1*е)*(m(*В-1*m) - (m(*B-1*e)2]
Тогда (*p=( D*p, что и является минимальным риском портфеля.
Если x*i?0, то это означает рекомендацию вложить долю x*i наличного
капитала в ценные бумаги i-го вида. Если же x*ii then
begin
B[l,k]:=(B1[l,k]-(B1[l,i]*B1[i,k]/B1[i,i]));
E[l,k]:=(E1[l,k]-(B1[l,i]*E1[i,k]/B1[i,i]));
end;
end;
end;
end;
for i:=1 to n do {суммирование по строкам, формирование
вектора-столбца Be}
begin
for j:=1 to n do
begin
be[i]:=be[i]+e[i,j];
end;
end;
for i:=1 to n do {формирование вектора-столбца Bm}
begin
for j:=1 to n do
begin
Bm[i]:=Bm[i]+m[j]*e[i,j];
end;
end;
for i:=1 to n do
begin {нахождение констант}
ebe:=ebe+be[i]; {суммирование по стоблцу}
ebm:=ebm+bm[i];
mbm:=mbm+m[i]*bm[i];
mbe:=mbe+m[i]*be[i];
end;
end;
procedure vvod ;
label out1, out2, out3, out4, out5;
var z:real; mi,ma:real;
begin
writeln;
writeln(' КУРСОВОЙ ПРОЕКТ');
writeln;
writeln;
writeln(' ПО ДИСЦИПЛИНЕ МАТЕМАТИЧЕСКИЕ МЕТОДЫ ФИНАНСОВО-
ЭКОНОМИЧЕСКОГО АНАЛИЗА');
writeln;
writeln(' АВТОР: БОЛДИН СЕРГЕЙ, ФИНМЕН II-3.');
writeln;
writeln(' ТЕМА: ЗАДАЧА ОПТИМИЗАЦИИ РИСКОВОГО ПОРТФЕЛЯ.');
writeln;
writeln;
writeln;
out1:
writeln;
writeln(' Введите количество видов ценных бумаг, из которых вы
хотите ');
write(' сформировать портфель (не более 10): ');
readln(n);
if (nint(n)) or (n>10) then
begin
writeln(' Ошибка ввода! Число должно быть натуральным и
меньше 10 ! ');
goto out1;
end;
writeln;
writeln(' Введите эффективности (доходности) ценных бумаг:');
for i:=1 to n do
begin
E[i,i]:=1;
out2:
write(' ',i,'-ого вида : ');
readln(m[i]);
if (m[i]=sqrt(b[i,i])*sqrt(b[j,j]) then
begin
writeln(' Ошибка ввода! Число должно быть положительным и
меньше произведения СКО этих бумаг! ');
goto out4;
end;
b[i,j]:=z;
b[j,i]:=z;
if i<>j then begin E[i,j]:=0; end;
end;
end;
writeln;
ma:=0;
for i:=1 to n do
begin
if m[i]>ma then ma:=m[i];
end;
mi:=100000000;
for i:=1 to n do
begin
if m[i]ma) then
begin
writeln(' Ошибка ввода!');
write(' Число должно быть в пределах эффективностей ценных
бумаг!: ');
goto out5;
end;
end;
procedure vivod ;
begin
writeln;
writeln(' Структура портфеля. Доли ценных бумаг.');
for i:=1 to n do
begin
x:=((mbm-mp*ebm)*be[i]+(mp*ebe-mbe)*bm[i])/(ebe*mbm-mbe*mbe);
writeln(' ',i,'-го вида: ',x:6:5);
if x<0 then
begin
writeln(' Так как доля бумаг ',i,'-го вида отрицательна, то
необходимо ');
writeln(' провести сделку "short sale", исключить бумаги
этого вида из портфеля');
writeln(' и решить задачу заново.');
end;
end;
writeln;
writeln(' Минимальный риск портфеля: ',sqrt((mp*mp*ebe-
2*mp*mbe+mbm)/(ebe*mbm-mbe*mbe)):6:5);
end;
begin
clrscr;
textcolor(yellow);
textbackground(blue);
vvod;
base;
vivod;
readln;
end.
Список литературы:
1. Колемаев В.А. Математическая экономика. М.: «Юнити» 1998.
Малыхин В.И. Финансовая математика. М.: «Юнити» 2000.