Смекни!
smekni.com

Программа оптимизации рискового портфеля (стр. 1 из 2)

Введение.

На финансовом рынке обращается множество ценных бумаг: государственные ценные бумаги, муниципальные облигации, корпоративные акции и т.д. Если у участника рынка есть свободные деньги, то их можно отнести в банк и получать проценты или купить на них ценные бумаги и получать дополнительный доход. Но в какой банк отнести? Какие ценные бумаги купить? Малорисковые ценные бумаги, как правило, и малодоходны, высокодоходные, как правило, более рисковые. Экономическая наука может дать некоторые рекомендации для решения этого вопроса.

Постановка задачи.

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

Набор ценных бумаг, находящихся у участника рынка, называется его портфелем. Стоимость портфеля – это суммарная стоимость всех составляющих его бумаг. Если сегодня его стоимость есть Р , а через год она окажется равной Р¢, то (Р¢-Р)/Р естественно назвать доходностью портфеля в процентах годовых. Т.е. доходность портфеля – это доходность на единицу его стоимости.

Пусть хi – доля капитала, потраченная на покупку ценных бумаг i-го вида. Рассуждения о долях эквивалентны тому, что весь выделенный капитал принимается за единицу. Пусть di – доходность в процентах годовых ценных бумаг i-го вида в расчете на одну денежную единицу.

Найдем доходность всего портфеля dp. С одной стороны, через год капитал портфеля будет равен 1+ dp, с другой - стоимость бумаг i-го вида увеличиться с х до xi+ di*xi, так что суммарная стоимость портфеля будет равна Sxi+ Sxi*di = 1 + Sxi*di. Приравнивая оба выражения для стоимости портфеля, получаем dp= Sxi*di.

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

Как правило, доходность бумаг колеблется во времени, так что будем считать ее случайной величиной. Пусть mi,si – средняя ожидаемая доходность и среднее квадратическое отклонение (СКО) этой случайной доходности, т.е. mi=M[di] - математическое ожидание доходности и ri=ÖVii, где Vii – вариация или дисперсия i-ой доходности. Будем называть mi, ri соответственно эффективностью и риском i-ой ценной бумаги. Через Vijобозначим ковариацию доходностей ценных бумаг i-го и j-го вида (или корреляционный момент Kij).

Так как доходность составляющих портфель ценных бумаг случайна, то и доходность портфеля есть также случайная величина. Математическте ожидание доходности портфеля есть M[dp]=x1*M[d1]+…+xn*M[dn]=Sxi*mi обозначим его через mp. Дисперсия доходности портфеля есть D[dp]=SSxi*xj*Vij. Так же, как и для ценных бумаг, назовем mp эффективностью портфеля, а величину sp=ÖD[dp] – риском портфеля rp. Обычно дисперсия доходности портфеля называется его вариацией Vp.

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

Портфель Марковица минимального риска.

Существует несколько вариантов задач оптимизации рискового портфеля. Мы рассмотрим только одну. Это так называемый «портфель Марковица». Эта задача была сформулирована и решена американским экономистом Г. Марковицем (H. Markovitz) в 1952 году , за что позднее он получил нобелевскую премию.

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

Vp=SSxi*xj*Vij

при условии, что обеспечивается заданное значение эффективности портфеля mp, т.е. Sxi*mi=mp.

Поскольку xi – доли, то в сумме они должны составлять единицу: Sxi=1.

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

min SS xi*xj*Vij

Sxi=1

Smi*xi=mp

xi≥0,…,xn≥0

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

Решение.

С помощью функции Лагранжа сведем задачу на условный экстремум к задаче на безусловный экстремум:

L(x1,…,xn,m,l)= SS Vij*xi*xj - l*(Smi –1) - m*(Smi*xi – mp),

¶L/¶xs=2*SVis*xi - l - m*ms=0, s=1,…,n. (*)

производные по l, m воспроизводят указанные выше два соотношения, тем самым для (n+2) переменных x1,…,xn, l, mполучаем (n+2) уравнения.

Запишем полученные уравнения в матричной форме, используя следующие обозначения:


1 x1 m1

e= . x= . m= . x¢=(x1,…,xn), m¢=(m1,…,mn)

. . .

1 xnmn

Штрих применяется для обозначения операции транспонирования матрицы.

B- матрица ковариаций, B-1 – обратная ей матрица. Следовательно уравнения (*) примут вид:

B*x = (l/2)*e + (m/2)*m,

e¢*x = 1,

m¢*x = mp.

Основное допущение этой модели состоит в том, что между эффективностями m1,…,mn нет линейной связи, поэтому ковариационная матрица B невырождена (|B|<>0), следовательно, существует обратная матрица В-1. Используя этот факт разрешим в матричной форме относительно х:

х = (l/2)*В-1*е + (m/2)* В-1*m, (**)

подставив это решение в первое и второе условия, получим два уравнения для определения l/2 и m/2:


(е¢*В-1*е)*l/2 + (е¢*В-1*m)*m/2 =1

(m¢*B-1*e)*l/2 + (m¢*В-1*m)*m/2 =mp.

Решая два последних уравнения по правилу Крамера, находим

l/2 = ((m¢*В-1*m)-mp*(е¢*В-1*m))/((е¢*В-1*е)*(m¢*В-1*m)-(m¢*B-1*e)2)

m/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]

Тогда s*p=ÖD*p, что и является минимальным риском портфеля.

Если x*i≥0, то это означает рекомендацию вложить долю x*i наличного капитала в ценные бумаги i-го вида. Если же x*i<0, то содержательно это означает провести операцию “short sale” (“короткая продажа”).

Что это за операция? Инвестор, формирующий портфель, обязуется через какое-то время поставить ценные бумаги i-го вида (вместе с доходом, какой они принесли бы их владельцу за это время). За это сейчас он получает их денежный эквивалент. Эти деньги он присоединяет к своему капиталу и покупает рекомендуемые оптимальным решением ценные бумаги. Так как ценные бумаги других видов (т.е. не i-го вида) более эффективны, то инвестор оказывается в выигрыше.

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

Пример.

Дано: m1=11, s1=4, m2=10, s2=3, m3=9, s3=1, ценные бумаги не коррелированы. Определить оптимальный портфель при mp=10.

Ответ: Доли ценных бумаг x1=0,3396; x2=0,3208; x3=0,3396. Минимальный риск sp=1,699. Эффект диверсификации портфеля наглядно виден на данном примере. Портфель имеет такую же эффективность, как если бы он был составлен только из бумаг 2-го вида, но его риск значительно меньше, чем у бумаг 2-го вида (1,699 < 3).

Программа.

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

program riski;

uses crt;

type mas=array[1..10] of real;

mas2=array[1..10,1..10] of real;

var a:real;

m,be,bm:mas;

B,E,b1,e1:mas2;

i,k,c,v,l,j,n:integer;

mp,ebe,mbm,ebm,x,mbe:real;

procedure base;

begin

for i:=1 to n do {обращение матрицы B}

begin

for c:=1 to n do {дублирование матриц}

begin

for v:=1 to n do

begin

B1[c,v]:=B[c,v];

e1[c,v]:=e[c,v];

end;

end;

for k:=1 to n do

begin

B[i,k]:=B1[i,k]/b1[i,i]; {делим строки на разрешающий элемент}

E[i,k]:=E1[i,k]/b1[i,i];for l:=1 to n do

begin {находим остальные элементы}

if l<>i 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;