Программа оптимізації ризикового портфеля
На фінансовому ринку обертається безліч цінних паперів: державні цінних паперів, муніципальні облігації, корпоративні акції та т.д. Якщо в учасника ринку є вільні гроші, їх можна віднести до банку та отримувати відсотки чи купити ними цінні папери отримувати додатковий прибуток. Однак у який банк віднести? Які цінних паперів купити? Малорисковые цінних паперів, зазвичай, і малодоходны… Читати ще >
Программа оптимізації ризикового портфеля (реферат, курсова, диплом, контрольна)
На фінансовому ринку обертається безліч цінних паперів: державні цінних паперів, муніципальні облігації, корпоративні акції та т.д. Якщо в учасника ринку є вільні гроші, їх можна віднести до банку та отримувати відсотки чи купити ними цінні папери отримувати додатковий прибуток. Однак у який банк віднести? Які цінних паперів купити? Малорисковые цінних паперів, зазвичай, і малодоходны, високоприбуткові, зазвичай, більш ризикові. Економічна наука може дати деякі рекомендації на вирішення цього вопроса.
Постановка задачи.
Розглянемо спільне завдання розподілу капіталу, який учасник ринку хоче витратити для придбання цінних паперів, з різного виду цінних паперів. Розпочинаючи точні математичні постановки, констатуємо очевидну спільну мету інвестора — укласти гроші те щоб зберегти свій капітал, а за можливості й наростити его.
Набір цінних паперів, утримуваних учасника ринку, називається його портфелем. Вартість портфеля — це сумарна вартість складових його паперів. І сьогодні його є Р, а ще через рік дорівнюватиме Рг, то (Р,-Р)/Р природно назвати дохідністю портфеля у відсотках річних. Тобто. дохідність портфеля — це дохідність на одиницю його стоимости.
Нехай хi — частка капіталу, витрачена для придбання цінних паперів i-го виду. Розмірковування про частках еквівалентні з того що весь виділений капітал приймається за одиницю. Нехай di — дохідність інвестицій у відсотках річних цінних паперів i-го виду для одну грошову одиницю.
Знайдемо доходність усього портфеля dp. З одного боку, за рік капітал портфеля дорівнюватиме 1+ dp, з іншого — вартість паперів i-го виду збільшитися з x до 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 mm xi*xj*Vij.
ixi=1.
mi*xi=mp.
xi?0,…, xn?0.
Це квадратичного програмування. Опустив умови неотрицательности змінних, отримуємо власне завдання Марковица.
Решение.
З допомогою функції Лагранжа зведемо завдання на умовний екстремум до завданню на безумовний экстремум:
L (x1,…, xn,)=)) Vij*xi*xj — *(*mi -1) — *(*mi*xi — mp),.
L/Lxs=2*=Vis*xi — - - *ms=0, s=1,…, n. (*).
похідні по про, відтворюють вищезазначені два співвідношення, цим для (n+2) змінних x1,…, xn,, отримуємо (n+2) уравнения.
Запишемо отримані рівняння в матричної формі, використовуючи такі обозначения:
1 x1 m1.
e=. x=. m=. x =(x1,…, xn), mm=(m1,…, mn).
.. .
1 xn mn.
Штрих застосовується для позначення операції транспонування матриці.
Bматриця ковариаций, B-1 — зворотна їй матриця. Отже рівняння (*) приймуть вид:
B*x = ((/2)*e + ((/2)*m,.
ee*x = 1,.
mm*x = mp.
Основне припущення цієї моделі у тому, що эффективностями m1,…, mn немає лінійної зв’язку, тому ковариационная матриця B невырождена (|B|0), отже, існує зворотна матриця В-1. Використовуючи цього факту дозволимо в матричної формі щодо х:
x = (х/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*е)*(mm*В-1*m)-(mm*B-1*e)2).
/2 = (mp*(ее*В-1*е)-(mm*B-1*e))/((ее*В-1*е)*(mm*В-1*m)-(mm*B-1*e)2).
Підставляючи це рішення, у (**) отримуємо таку структуру оптимального портфеля:
[(mm*В-1*m)-mp*(ее*В-1*m)]*В-1*е + [mp*(ее*В-1*е) — (mm*B-1*e)]*В-1*m.
x* =.
(ее*В-1*е)*(mm*В-1*m) — (mm*B-1*e)2.
Простий підстановкою переконуємося, що е *х*=1 і mm*х*=mp.
З іншого боку, знаходимо мінімальну дисперсию, відповідну оптимальної структуре:
[m2p*(ее*В-1*е) — 2*mp*(mm*B-1*e) + (mm*В-1*m)].
D*p=.
[(ее*В-1*е)*(mm*В-1*m) — (mm*B-1*e)2].
Тоді Т*p== D*p, що є мінімальним ризиком портфеля.
Якщо x*i?0, це означатиме рекомендацію вкласти частку x*i готівкового капіталу цінних паперів i-го виду. Якщо ж x*i.
Що за операція? Інвестор, яка формує портфель, зобов’язується згодом поставити цінних паперів i-го виду (разом із доходом, якій вони принесли та їхні власнику цей час). Про це тепер він отримує грошовому еквівалентові. Ці кошти він приєднує до свого капіталу і купує рекомендовані оптимальним розв’язанням цінних паперів. Оскільки цінних паперів інших напрямів (тобто. не i-го виду) ефективніші, то інвестор перебувають у виграші.
Математично війни операція отже, що потрібно виключити цей вид цінних паперів з розгляду і вирішити завдання заново.
Пример.
Дано: m1=11, 1=4, m2=10, 2=3, m3=9, 3=1, цінних паперів не коррелированы. Визначити оптимальний портфель при mp=10.
Відповідь: Долі цінних паперів x1=0,3396; x2=0,3208; x3=0,3396. Мінімальний ризик йp=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 li 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 («» ,і, «-ого виду: »);
readln (m[i]);
if (m[i].
begin.
writeln («Помилка введення! Кількість має бути позитивним! »);
goto out2;
end;
end;
writeln;
writeln («!!! При введення ризиків і спільних варіацій цінних паперів слід »);
writeln («бути уважним, оскільки програма не расчитана на лінійну »);
writeln («зв'язок доходностей цінних паперів. Тому рекомендується не вводити »);
writeln («пропорційні ризики та спільні варіації цінних паперів!!! »);
writeln;
writeln («Запровадьте ризик (середнє квадратическое отклонение (СКО)) цінних паперів: »);
for i:=1 to n do.
begin.
out3:
write («» ,і, «-ого виду: »);
readln (z);
if (z.
begin.
writeln («Помилка введення! Кількість має бути позитивним! »);
goto out3;
end;
b[i, i]: =z*z;
end;
writeln;
writeln («Запровадьте спільну варіацію (кореляційний момент) цінних паперів. »);
writeln («Вона повинна бути більше твори СКО цих паперів. »);
for i:=1 to n do.
begin.
for j:=i+1 to n do {введення матриці ковариаций}.
begin.
out4:
write («» ,і, «-го і «, j, «-го виду: »);
readln (z);
if abs (z)>=sqrt (b[i, i])*sqrt (b[j, j]) then.
begin.
writeln («Помилка введення! Кількість має бути позитивним і від твори СКО цих паперів! »);
goto out4;
end;
b[i, j]: =z;
b[j, i]: =z;
if ij 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:=100 000 000;
for i:=1 to n do.
begin.
if m[i].
end;
writeln («Запровадьте бажану ефективність портфеля. »);
write («Вона має бути, у межах эффективностей цінних паперів: »);
out5:
readln (mp);
if (mpma) 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 («» ,і, «-го виду: », x:6:5);
if x.
begin.
writeln («Оскільки частка паперів » ,і, «-го виду негативною, необхідно »);
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.
2. Малыхин В.І. Фінансова математика. М.: «Юнити» 2000.