Sunteți pe pagina 1din 23

4. Optimizarea portofoliilor de acţiuni.

Abordări clasice şi de natură


genetică

4.1. Randamentul/ riscul unui portofoliu. Definirea problemelor de optimizare

În cele ce urmează este prezentat calculul randamentului aşteptat, respectiv al


riscului asociat unui portofoliu de acţiuni. (Bartholomeu-Biggs, 2005)
Considerăm disponibil istoricul randamentelor procentuale pe m perioade de timp
pentru fiecare acţiune dintr-un grup de n acţiuni şi notăm cu
 𝑟𝑖𝑗 , randamentul acţiunii i în perioada j;
 𝑦𝑖 , fracţiunea investită în acţiunea i, astfel încât𝑆 = 𝑛𝑖=1 𝑦𝑖 = 1
 𝜎𝑖2 , varianţa acţiunii i;
 𝜎𝑖𝑘 , covarianţa dintre acţiunile i şi k.
Portofoliul este definit de fracţiunile de investiţii 𝑦1 , 𝑦2 , … , 𝑦𝑛 .

Randamentul mediu al fiecărei acţiuni 𝑖, 1 ≤ 𝑖 ≤ 𝑛, notat cu𝑟𝑖 , este calculat prin


𝑚
1
𝑟𝑖 = 𝑟𝑖𝑗 4.1
𝑚
𝑗 =1
Randamentul aşteptat al portofoliului este dat prin
𝑛

𝑅= 𝑟𝑖 𝑦𝑖 4.2
𝑖=1

Varianţa fiecărei acţiuni 𝑖, 1 ≤ 𝑖 ≤ 𝑛, respectiv covarianţa dintre oricare două


acţiuni 𝑖, 𝑘, 1 ≤ 𝑖, 𝑘 ≤ 𝑛, sunt calculate prin
𝑚
1 2
𝜎𝑖2 = 𝑟𝑖𝑗 − 𝑟𝑖 4.3
𝑚
𝑗 =1
𝑚
1
𝜎𝑖𝑘 = 𝑟𝑖𝑗 − 𝑟𝑖 𝑟𝑘𝑗 − 𝑟𝑘 4.4
𝑚
𝑗 =1

Varianţa portofoliului este definită prin


𝑛 𝑛−1 𝑛

𝑉= 𝜎𝑖2 𝑦𝑖 2 + 2 𝜎𝑖𝑗 𝑦𝑖 𝑦𝑗 4.5


𝑖=1 𝑖=1 𝑗 =𝑖+1

şi este utilizată ca măsură a riscului portofoliului.

Funcţiile randament, respectiv risc, definite prin relaţiile (4.2), respectiv (4.5) sunt
reprezentate matriceal prin
𝑅 = 𝑟 𝑇 𝑦 4.6
𝑉 = 𝑦 𝑇 𝑄𝑦 4.7
unde
𝑟 = 𝑟1 , 𝑟2 , … , 𝑟𝑛 𝑇
𝑦 = 𝑦1 , 𝑦2 , … , 𝑦𝑛 𝑇
𝑄 = 𝜎𝑖𝑗 1≤𝑖≤𝑛 , 𝜎𝑖𝑖 = 𝜎𝑖2 , 1 ≤ 𝑖 ≤ 𝑛
1≤𝑗 ≤𝑛

De asemenea, în reprezentare matriceală relaţia


𝑛

𝑆= 𝑦𝑖 = 1
𝑖=1
devine
𝑆 = 𝑒𝑇 𝑦 = 1 4.8
𝑇
unde 𝑒 = 1,1, … ,1 este vectorul unitar n-dimensional.

Problema primară de minimizare a riscului, RISCMIN0, este formulată


prin(Bartholomeu-Biggs, 2005)
RISCMIN0:
Minimizează𝑉 = 𝑦 𝑇 𝑄𝑦
cu restricţia
𝑛
𝑖=1 𝑦𝑖 = 1 .

Observaţie. RISCMIN0 poate fi modificată prin eliminarea restricţiei şi a variabilei


𝑦𝑛 𝑦𝑛 = 1 − 𝑛−1
𝑖=1 𝑦𝑖 .

În multe situaţii practice, investitorul este interesat atât în minimizarea riscului, cât
şi în optimizarea randamentului portofoliului ales. În general, un portofoliu este considerat
optim dacă el furnizează cel mai mare randament cu cel mai mic risc.

O modalitate de a determina un astfel de portofoliu este prin considerarea funcţiei


de tip compozit
𝐹 = −𝑅 + 𝜌𝑉 = −𝑟 𝑇 𝑦 + 𝜌𝑦 𝑇 𝑄𝑦 4.9
unde constanta pozitivă 𝜌 controlează raportul dintre randament şi risc. Cu aceste
modificari se obţine problema de optimizare RISC-RANDAMENT1, (Bartholomeu-Biggs,
2005)
RISC-RANDAMENT1:
Minimizează 𝐹 = −𝑟 𝑇 𝑦 + 𝜌𝑦 𝑇 𝑄𝑦
cu restricţia
𝑛
𝑖=1 𝑦𝑖 = 1 .
.

Observaţie. RISC-RANDAMENT1 poate fi modificată prin eliminarea restricţiei şi


a variabilei𝑦𝑛 𝑦𝑛 = 1 − 𝑛−1
𝑖=1 𝑦𝑖 .

O variantă alternativă pentru a determina portofoliul optim este de a fixa o valoare


ţintă pentru randament, de exemplu de Rp procente, şi de a considera problema de
optimizare RISCMIN1, (Bartholomeu-Biggs, 2005)
RISCMIN1:
Minimizează 𝑉 = 𝑦 𝑇 𝑄𝑦
cu restricţiile
𝑛

𝑟𝑖 𝑦𝑖 = 𝑅𝑝
𝑖=1
𝑛
𝑖=1 𝑦𝑖 =1.

sau, alternativ, problema modificată RISCMIN1M,


RISCMIN1M:
Minimizează
𝑛 2
𝜌
𝐹 = 𝑦 𝑇 𝑄𝑦 + 2 𝑟𝑖 𝑦𝑖 − 𝑅𝑝 4.10
𝑅𝑝 𝑖=1
cu restricţia
𝑛
𝑖=1 𝑦𝑖 = 1 .
Constanta pozitivă 𝜌 semnifică raportul dintre randament şi risc.

O problemă des întâlnită în practică este aceea în care este selectat un nivel
acceptabil de risc,𝑉𝑎𝑐 , şi este maximizat randamentul aşteptat. Modelul matematic revine la
problema de minimizare cu constrângeri RANDAMENTMAX1:
RANDAMENTMAX1:
Minimizează 𝑅 = −𝑟 𝑇 𝑦
cu restricţiile
𝑉 = 𝑦 𝑇 𝑄𝑦 = 𝑉𝑎𝑐
𝑛
𝑖=1 𝑦𝑖 = 1 .

sau, alternativ, problema modificată RANDAMENTMAX1M,(Bartholomeu-Biggs, 2005):


RANDAMENTMAX1M:
Minimizează
𝜌
𝐹 = −𝑟 𝑇 𝑦 + 𝑦 𝑇 𝑄𝑦 − 𝑉𝑎𝑐 2 4.11
𝑉𝑎𝑐 2

cu restricţia
𝑛
𝑖=1 𝑦𝑖 = 1 .

Constanta pozitivă 𝜌 semnifică relaţia existentă între randamentul şi riscul


portofoliului.

Observaţie. RISCMIN1M şi respectiv RANDAMENTMAX1M pot fi modificate


prin eliminarea restricţiei şi a variabilei 𝑦𝑛 𝑦𝑛 = 1 − 𝑛−1
𝑖=1 𝑦𝑖 .

4.2. Optimizarea portofoliilor cu n acţiuni

Definirea problemelor de optimizarea portofoliilor cu n acţiuni în termenii


problemelor de optimizare fără constrângeri

Prin utilizarea relaţiei (4.8), variabila 𝑦𝑛 este poate fi eliminată,


𝑛−1

𝑦𝑛 = 1 − 𝑦𝑖 4.12
𝑖=1
şi funcţiile randament şi risc sunt exprimate exclusiv în termenii𝑦1 , 𝑦2 , … , 𝑦𝑛−1 . În plus,
restricţia (4.8) poate fi eliminată din problemele de optim în care apare.
Fie 𝑥 = 𝑦1 , 𝑦2 , … , 𝑦𝑛−1 𝑇 , vector de dimensiune n-1,𝛼 = 0,0, … ,0,1 𝑇 vector n-
dimensional, cu unicul element nenul 𝛼𝑛 = 1 şi B matrice de dimensiune 𝑛 × 𝑛 − 1 , cu
primele 𝑛 − 1 linii liniile corespunzătoare matricei unitate 𝐼𝑛−1 şi ultima linie formată cu
elementul -1,
1 0 … 0
0 1 … 0
𝐵= …………… .
0 0 … 1
−1 − 1 … − 1
Cu aceste notaţii, obţinem
𝑦 = 𝛼 + 𝐵𝑥 4.13

Similar celor prezentate în în §4.1, procedura MINRISC0 defineşte problema


primară de minimizare a riscului în cazul unui portofoliudefinit de fracţiunile de investiţii
𝑦1 , 𝑦2 , … , 𝑦𝑛 . Prin utilizarea relaţiei (4.13), rezultă (Bartholomeu-Biggs, 2005):
MINRISC0: (4.14)
Minimizează
𝑉 = 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥

Relaţia (4.14) defineşte o problemă de optimizare fără constrângeri, în n-1 variabile.


Dacă 𝑥 ∗ = 𝑥1∗ , 𝑥2∗ , … , 𝑥𝑛−1
∗ 𝑇
este o soluţie a problemei (4.14), atunci portofoliul de risc
minim, notat𝑦 ∗ , este definit prin
𝑛−1

𝑦𝑖∗ = 𝑥𝑖∗ , 1 ≤ 𝑖 ≤ 𝑛 − 1 ş𝑖 𝑦𝑛∗ =1− 𝑥𝑖∗ 4.15


𝑖=1

O serie de metode care rezolvă problema minimizării unei funcţii de mai multe
variabile utilizează vectorul derivatelor parţiale de ordinul I, numit gradient. Dacă V este
funcţie de m variabile, atunci gradientul lui V, notat∇𝑉 sau𝑉𝑥 , este definit prin
𝜕𝑉 𝜕𝑉 𝜕𝑉 𝑇
∇𝑉 = , …,
𝜕𝑥1 𝜕𝑥2 𝜕𝑥𝑚
.
Gradientul funcţiei obiectiv din relaţia (4.14) este
(4.16) V  2BT Qα  2BT QBx  2BT Qα  Bx

Pentru rezolvarea problemelor de optim, unele metode necesită şi calculul


derivatelor parţiale de ordinul II, adică a matricei Hessian. Dacă V este funcţie de m
variabile, atunci matricea Hessian, notată  2V sau Vxx , este definită prin
  2V 
 2V   
 x x 1i m
 i j 1 j m
Hessianul funcţiei obiectiv din relaţia (4.14) este
(4.17)  2V  2BT QB

Problema RISCMIN1M, definită în în §4.1, poate fi exprimată în termenii unei


probleme de optimizare fără restricţii prin utilizarea relaţiei (4.13), astfel(Bartholomeu-
Biggs, 2005):
RISCMIN1M (4.18)
Minimizează
𝜌 2
𝐹 = 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 + 2 𝑟 𝑇 𝛼 − 𝑅𝑝 + 𝑟 𝑇 𝐵𝑥
𝑅𝑝

Pentru calculul vectorului gradient şi al matricei Hessian pentru funcţia F definită în


(4.18), considerăm reprezentarea
2
𝐹 = 𝑉 + 𝜌 𝑅 − 𝑅𝑝
unde
𝑉 = 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥
𝜌
𝜌= 2 şi
𝑅𝑝
𝑅 = 𝑟 𝑇 𝛼 + 𝐵𝑥

Sunt obţinute relaţiile


∇𝐹 = 𝐹𝑥 = 𝑉𝑥 + 2𝜌 𝑅 − 𝑅𝑝 𝑅𝑥
unde
∇𝑉 = 𝑉𝑥 = 2𝐵 𝑇 𝑄 𝛼 + 𝐵𝑥
şi
∇𝑅 = 𝑅𝑥 = 𝐵 𝑇 𝑟

Similar, este obţinută matricea Hessian, prin


Fxx  Vxx  2R x R x 
T

unde
Vxx  2BT QB şi
R x R x  este o matrice cu rangul 1, pentru orice i,j, 1  i, j  n  1 ,
T

 
R x R x  i , j 
T R R
xi x j

Problema RANDAMENTMAX1 este reformulată în termenii


RANDAMENTMAX1M (vezi în §4.1) şi, prin utilizarea relaţiei (4.13) rezultă problema de
optimizare fără restricţii (Bartholomeu-Biggs, 2005):
RANDAMENTMAX1M (4.19)
Minimizează
𝜌
𝐹 = −𝑟 𝑇 𝛼 + 𝐵𝑥 + 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 − 𝑉𝑎𝑐 2
𝑉𝑎𝑐 2

Expresiile care definesc gradientul şi Hessianul funcţiei definite în (4.19) sunt


obţinute prin reprezentarea
F   R   V  Vac  ,
2

unde
R  r T α  Bx 
V  α  Bx  Qα  Bx  şi
T

 .
Vacc 2
Rezultă
Fx  BT r  2 V  Va Vx

Fxx  2 Vx Vx   V  Va Vxx
T

unde Vx Vx  este matrice de rangul I; pentru orice i,j, 1  i, j  n  1 ,
T

 
Vx Vx  i , j 
T V V
xi x j
.

Observaţii.
1. În cadrul problemelor enuţate în acesastă secţiune, nu este impusă codiţia ca
fiecare 𝒚𝒊 să fie pozitiv. O valoare negativă a unei fracţiuni de investiţii 𝒚𝒊 are
semnificaţia următoare: strategia optimă de investiţie implică vânzarea de tip “short
selling”, adică vânzarea unor active pe care investitorul nu le deţine, prin împrumutul
acestora de la broker cu intenţia de a le returna ulterior. Această strategie este
efectivă doar în situaţia în care preţul acţiunilor este în scădere, deoarece
achiziţionarea lor la un moment de timp ulterior investiţiei curente implică un cost
mai mic decât preţul obţinut prin vânzarea activelor împrumutate la momentul
efectuării investiţiei curente.
2. În general, soluţia uneiprobleme de risc minim nu implică situaţia de tip
“short selling”dacă randamentul dorit 𝑹𝒑 este ales corespunzător, adică în
conformitate cu randamentele medii calculate𝒓𝟏 , 𝒓𝟐 , … , 𝒓𝒏 pentru activele care vor fi
incluse în portofoliu.

4.3. Metode clasice de optimizare a funcţiilor de n variabile

Condiţii de optimalitate
Fie F x1 , x2 ,..., xn  funcţie de 𝑛 variabile, continuă şi diferenţiabilă. Caracterizarea
punctului de minim atins de F este realizată în termenii vectorului gradient şi a matricei
Hessian
T
 F F F 
F   , ,...,  , notat în continuare cu g sau cu Fx , respectiv
 x1 x 2 x n 
 2F 
2 F    , matrice notată în continuare cu G sau Fxx
 x x 1i n
 i j 1 j n

Observaţie. În cazul în care F este dublu diferenţiabilă, matricea Hessian G este


simetrică.

Definiţia 4.1. Matricea simetrică A este pozitiv definită dacă şi numai dacă, pentru
orice x  0 , are loc relaţia,
xT Ax  0 .

Definiţia 4.2.Fie F x, x  x1 , x2 ,..., xn  funcţie de n variabile şi x * cu proprietăţile


   
(4.20) g x *  0 şi G x * este pozitiv definită.
Atunci x * este punct de minim local al lui F.

Dacă o funcţie F are mai multe minime locale (puncte ce îndeplinesc (4.20)), atunci
minimul global este acel minim local pentru care este obţinută cea mai mică valoare a lui F.

Observaţie. Problema RISCMIN0 poate fi rezolvată prin abordare analitică.


Deoarece funcţia gradient este
V  2BT Qα  2BT QBx ,
valoarea optimală a lui x este obţinută prin rezolvarea sistemului linia
BT QBx  BT Qα

Metode directe de căutare a optimului


În general, în problemele de optimizare a portofoliilor, vectorul gradient şi matricea
Hessian pot fi în general calculate, funcţiile obiectiv fiind în general dublu diferenţiabile.
Pentru situaţiile de acest gen sunt folosite metode de tip gradient. În cazul în care
optimizarea nu poate fi realizată prin utilizarea relaţiilor (4.20), o variantă de rezolvare a
problemelor de optimizare o constituie metodele de căutare directă, bazate exclusiv pe
analizarea valorile funcţiei obiectiv.
Căutarea directă a valorii minime a unei funcţii obiectiv F este realizată prin
evaluarea lui F în punctele unei „reţele” de valori posibile ale vectorului variabilă a
funcţiei. Deşi metodele de acest tip nu sunt în general eficiente, există situaţii în care
valoarea minimă poate fi aproximată prin considerarea unei variante a lui F discretizată pe
un set de puncte „aleatoare” şi utilizarea unor argumente de natură statistică pentru
estimarea probabilităţii de determinare a minimului într-n anumit număr de încercări.

Căutarea univariantă
Metoda implică utilizarea unei metode directe de căutare (ca, de exemplu, metoda
bisecţiei) pentru generarea unei secvenţe de tip minimizarea unidimensională a lui F astfel
încât, la fiecare etapă i, 1  i  n , F este minimizat în raport cu x i . Cu alte cuvinte, punctul
optim este căutat de-a lungul direcţiilor date de fiecare coordonată pe rând. Deşi uneori
metoda funcţionează eficient, ea nu poate fi general aplicabilă deoarece nu este
convergentă.

Metoda Hooke şi Jeeves


Tehnica Hooke&Jeeves utilizează metoda căutării pe o singura axăpe baza
următorului raţionament. Dacă xˆ , ~x sunt estimări ale punctelor de minim ale lui F x  la
momentul iniţial, respectiv la momentul final al ciclului de căutare, atunci minimizarea
unidimensională a alui F este realizată pe direcţia xˆ  ~
x printr-o estimare de tipul
(4.21) x  x   xˆ  x  ,
~ ~
unde  este o constantă scalară. Metoda continuă prin efectuarea ciclurilor de căutare
univariantă urmate de estimări de forma (4.21).

Metode de aproximare a derivatelor


Una dintre cele mai uzuale metode de minimizarea a lui F x  exclusiv pe baza
valorilor funcţiei F este prin adaptarea metodelor de tip gradient la estimările de tip
diferenţă finită ale derivatelor funcţiei. De exemplu, pentru derivatele de ordinul I poate fi
utilizată estimarea diferenţă centrată
F x1 , x2 ,..., xn  F x1  h, x2 ,..., xn   F x1  h, x2 ,..., xn 

x1 2h
Abordările care implică estimarea derivatelor funcţiei obiectiv sunt dezvoltate pe
baza presupunerii că F este diferenţiabilă. În plus, metodele din această clasă nu sunt în
general aplicate problemelor pentru care derivatele funcţiei F nu sunt funcţii continue.

Metode de tip gradient


Aşa cum a fost menţionat, în problemele de optimizare a portofoliilor funcţiile
obiectiv sunt dublu diferenţiabile şi relaţiile (4.20) pot fi verificate. Optimizarea funcţiilor
în n variabile şi care îndeplinesc proprietăţile din definiţia 4.2 poate fi realizată prin metode
de tip gradient, respectiv de tip Newton. Sunt prezentate în continuare metoda celei mai
rapide (abrupte) descreşteri şi metoda Newton. Ambele metode presupun construcţia câte
unui şir care, în anumite condiţii de regularitate impuse funcţiei obiectiv, converge către
soluţia optimală a problemei de optimizare.

Metoda celei mai rapide descreşteri


Tehnica celei mai rapide descreşteri este justificată geometric astfel. Presupunem că
𝐹 𝑥 este funcţia de minimizat şi 𝑥𝑘 este punctul construit la momentul curent. Un punct
„mai bun” (în sensul că valoare funcţiei obiectiv descreşte în acel punct faţă de punctul
curent) poate fi determinat prin deplasarea pe direcţia de căutare care determină
descreşterea cea mai rapidă a lui F, adică pe direcţia gradientului negativ.

Metoda celei mai rapide descreşteri de tip „perfect line search”este descrisă
astfel(Bartholomeu-Biggs, 2005):

Selectează 𝑥0 , estimare iniţiale a punctului de minim al lui 𝐹 𝑥 şi𝜀 > 0


Repetăpentru𝑘 = 0,1,2 …
𝑝𝑘 = −∇𝐹 𝑥𝑘

calculează 𝑠 care minimizează𝜑 𝑠 = 𝐹 𝑥𝑘 + 𝑠 ∙ 𝑝𝑘
aplică regula de actualizare
𝑥𝑘+1 = 𝑥𝑘 + 𝑠 ∙ 𝑝𝑘
Până când ∇𝐹 𝑥𝑘+1 < 𝜀

Observaţie. O serie de metode de optimizare utilizează în construcţia şirului tipare


similare celui prezentat în algoritmul de mai sus; fiecare iteraţie constă în două etape:
alegerea direcţiei de căutare (calculul lui 𝑝𝑘 ) şi respectiv procedura de determinare a
demarcaţiei (line search) în scopul stabilirii unei valori adecvate a pasului 𝑠 ∗ .

Definiţia 4.3. Procedura de determinare a demarcaţiei s * care minimizează


 s   F x k  sp k  se numeşte perfectă sau exactă.

Definiţia 4.4. O procedură de determinare a demarcaţiei prin care este acceptată


orice valoare a pasului s care îndeplineşte F x k  sp k   F x k   0 şi este mărginităse
numeşte inexactă sau slabă.

În continuare este prezentată teorema de convergenţă a metodei.


Propoziţia 4.1. Fie F x  o funcţie dublu diferenţiabilă, cu derivatele continue şi
mărginită inferior şi pentru care este îndeplinită proprietatea
z T  2 F xz  M z
2

pentru orice vector z , unde M  0 este constantă scalară. Atunci şirul definit prin
x k 1  x k  F x k  ( s  M 1 )
1
M
are proprietatea
F x k   0 când k   .

Metoda Newton
Tehnica celei mai abrupte descreşteri are inconvenientul că nu foloseşte informaţia
dată de cea de-a doua derivată. Pot fi obţinute metode mai eficiente pe baza proprietăţii
funcţiilor pătratice, Qx  , de a avea matricea Hessian constantă. Fie
(4.22) Qx   x T Ax  b T x  c .
1
2
Gradientul este
Qx  Ax  b .
Punctul staţionar rezultă prin rezolvarea sistemului de ecuaţii liniare
(4.23) Ax  b .

Soluţia sistemului (4.23) este punct de minim dacă matricea Hessian, A, este pozitiv
definită. Dacă A este negativ definită, soluţia sistemului (4.23) este punct de maxim. Dacă
A este oarecare, soluţia lui (4.23) este punct şa. Dacă A este nesingulară, atunci (4.22) are
un unic punct staţionar.
Principiile expuse mai sus pot fi aplicate pentru minimizarea unei funcţii generale,
F x  . Fie x k estimaţia punctului de minim al lui F la momentul curent şi g k  F x k  ,
G k   2 F x k  . Utilizând dezvoltarea Taylor în jurul lui x k obţinem

 
(4.24) F x k  p   Qp   F x k   p T g k  p T G k p şi
1
2
(4.25) F x k  p  Qp  g k  G k p
Rezultă că, dacă G k este pozitiv definită,
(4.26) p  G k g k
T

Este obţinut astfel următorul algoritm:

Metoda Newton
Selectează x 0 , estimare iniţiale a punctului de minim al lui F x  şi   0
Repetăpentru k  0,1,2,...
g k  F x k  , G k   2 F x k 
Dacă G k este pozitiv definită, atunci calculează p k  G k g k
T

Altfel p k  g k
calculează s * astfel încât F x k  sp k  îndeplineşte condiţiile Wolfe 2 şi 3
(Bartholomeu-Biggs, 2005)
aplică regula de actualizare x k 1  x k  s * p k
Până când F x k 1   

Observaţie. În cazul problemei RISCMIN1M, matricea Hessian corespunzătoare


funcţiei obiectiv este
𝜌
𝐺 = 2𝐵 𝑇 QB + 2 2 𝐵 𝑇 𝑟 𝐵𝑇 𝑟 𝑇
𝑅𝑝

deci este matrice constantă (nu depinde de x). G este pozitiv definită şi simetrică. Constanta
M din propoziţia 4.1 (convergenţa metodei celei mai rapide descreşteri) poate fi setată
astfel.
𝑧 𝑇 𝑧
∀𝑧 ∈ ℝ𝑛 −1 , 𝑧 𝑇 𝐺𝑧 ≤ 𝑀 𝑧 2 ⇔ ∀𝑧 ∈ ℝ𝑛−1 \ 0, … ,0 𝑇 , 𝐺 ≤𝑀
𝑧 𝑧
⟺ ∀𝑡 ∈ ℝ𝑛 −1 𝑐𝑢 𝑡 = 1, 𝑡 𝑇 𝐺𝑡 ≤ 𝑀

Deoarece G este pozitiv definită şi simetrică, rezultă că este diagonalizabilă şi există


Φ = Φ1 , … , Φ𝑛−1 matrice cu coloane un set de vectori proprii ortogonali, Φ𝑖 𝑇 Φ𝑗 =
1, 𝑖 = 𝑗
𝛿𝑖,𝑗 = corespunzători valorilor proprii 𝜆1 ≥ 𝜆2 ≥ ⋯ ≥ 𝜆𝑛−1 > 0 ale matricei G
0, 𝑖 ≠ 𝑗
astfel încât
𝐺 = ΦΛΦ𝑇 , Λ = diag 𝜆1 , 𝜆2 , … , 𝜆𝑛−1

Rezultă că problema revine la calculul constantei M astfel încât


∀𝑡 ∈ ℝ𝑛−1 𝑐𝑢 𝑡 = 1, 𝑡 𝑇 ΦΛΦ𝑇 𝑡 ≤ 𝑀

Pentru 𝑡 ∈ ℝ𝑛 −1 𝑐𝑢 𝑡 = 1, fie 𝑤 = Φ𝑇 𝑡 ∈ ℝ𝑛−1 .


𝑛−1 2
2
𝑤 = Φ𝑇 𝑡 2
= 𝑡𝑇 Φ 2
= 𝑡𝑖 Φ𝑖
𝑖=1
𝑛−1 𝑇 𝑛−1 𝑛 −1 𝑛−1
2 𝑇
𝑤 = 𝑡𝑘 Φ𝑘 𝑡𝑗 Φ𝑗 = 𝑡𝑘 𝑡𝑗 Φ𝑘 Φ𝑗 =
𝑘=1 𝑗 =1 𝑘=1 𝑗 =1
𝑛−1 𝑛−1 𝑛−1
2
𝑡𝑘 𝑡𝑗 𝛿𝑘,𝑗 = 𝑡𝑘 =1
𝑘=1 𝑗 =1 𝑘=1

În continuare obţinem
𝑡 𝑇 𝐺𝑡 ≤ 𝑀 ⇔ 𝑤 𝑇 Λw ≤ 1, 𝑤 = 1
𝑇
Deoarece Λ = diag 𝜆1 , 𝜆2 , … , 𝜆𝑛−1 , dacă 𝑤 = 𝑤1 , … , 𝑤𝑛−1
𝑛−1 𝑛−1

𝑤 𝑇 Λw = 𝜆𝑖 𝑤𝑖2 ≤ 𝜆1 𝑤𝑖2 = 𝜆1
𝑖=1 𝑖=1
Rezultă că
∀𝑧 ∈ ℝ𝑛 −1 , 𝑧 𝑇 𝐺𝑧 ≤ 𝜆1 𝑧 2
şiM poate fi setat pe valoarea 𝜆1 (valoarea proprie dominantă a matricei constante G)
Exemplul 1
În tabelul 4.1 este prezentat istoricul randamentelor corespunzătoare acţiunilor A1,
A2,A3,A4,A5 pe o perioadă de 10 săptămâni.(Bartholomeu-Biggs, 2005)

S1 S2 S3 S4 S5 S6 S7 S8 S9 S10
A1 1.2 1.3 1.4 1.5 1.1 1.2 1.1 1.0 1.0 1.1
A2 1.3 1.0 0.8 0.9 1.4 1.3 1.2 1.1 1.2 1.1
A3 0.9 1.1 1.0 1.1 1.1 1.3 1.2 1.1 1.0 1.1
A4 1.1 1.1 1.2 1.3 1.2 1.2 1.1 1.0 1.1 1.2
A5 0.8 0.75 0.65 0.75 0.8 0.9 1.0 1.1 1.1 1.2

Tabelul 4.1

Problema de rezolvat: determinarea portofoliului de risc minim pentru un


randament dat 𝑅𝑝 = 1.15%.
Randamentul mediu al portofoliului rezultă
𝑇
𝑟 ≅ 1.19 1.13 1.09 1.15 0.905

şi matricea de covarianţă este

0.0249 − 0.0187 − 0.0011 0.0085 − 0.0219


−0.0187 0.0321 0.0033 − 0.0035 0.0099
𝑄≅ −0.0011 0.0033 0.0109 0.0015 0.0035
0.0085 − 0.0035 0.0015 0.0065 − 0.0058
−0.0219 0.0099 0.0035 − 0.0058 0.0307

Problema este modelată în termenii RISCMIN1M:


Minimizează
𝜌 2
𝐹 = 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 + 𝑇 𝑇
2 𝑟 𝛼 − 𝑅𝑝 + 𝑟 𝐵𝑥
𝑅𝑝
Prin aplicarea metodelor de tip gradient, respectiv Newton prezentate, pentru
eroarea permisă 10−5 𝑛 ş𝑖 𝜌 = 100, rezultă
 portofoliul 𝑦 = 0.42 0.34 0.01 0.2 0.04
 riscul minim 𝑉 = 3.44 × 10−3
 randamentul ≅ 𝑅𝑝 , randamentul dat.

Exemplul 2 În cadrul acestui exemplu au fost folosite date reale, selectate de pe


Bursa de Valori din Londra, pe 20 de perioade de timp cuprinse între anii 2002 şi 2003.
Vectorului medie a randamentelor şi a matricei de covarianţă 𝑄 sunt disponibile în
(Bartholomeu-Biggs, 2005) şi au următoarele valori,
𝑟 ≅ −0.028 0.366 0.231 − 0.24 0.535 𝑇
1.0256 − 0.4340 0.0202 − 0.1968 − 0.0311
−0.4340 1.1049 − 0.0783 0.2347 − 0.1776
𝑄≅ 0.0202 − 0.0783 0.4328 − 0.1236 − 0.1895
−0.1968 0.2347 − 0.1236 8.0762 1.0093
−0.0311 − 0.1776 − 0.1895 1.0093 2.9007

Observaţie. În cazurile reale, istoricul evoluţiei randamentelor acţiunilor poate


înregistra şi valori negative şi, de asemenea, matricea de covarianţă poate avea valori mult
mai mari decât în cazul datelor generate artificial (cum este cazul exemplului 1).
Problema este modelată în termenii RISCMIN1M.
Prin aplicarea metodelor de tip gradient, respectiv Newton prezentate, pentru
eroarea permisă 10−5 𝑛 ş𝑖 𝜌 = 10, rezultă
 portofoliul 𝑦 = 0.2075 0.2740 0.4099 − 0.0023 0.1109
 riscul minim 𝑉 = 0.1422
 randamentul 𝑅 = 0.249 ≅ 𝑅𝑝 = 0.25, randamentul dat.

Observaţie. Pentru aceeaşi eroarea permisă, 10 5 n , testele indică faptul că


numărul de iteraţii ale metodei celei mai rapide descreşteri este de ordinul sutelor (în
implementarea cu s  M 1 constantă este de ordinul miilor), în timp ce metoda Newton
necesită câteva zeci de iteraţii.

Următoarea funcţie MATLAB implementează o metodă de tip gradient în care


1
s  M constantă. Este tratat separat cazul în care este disponibil istoricul acţiunilor şi
cazul în care sunt cunoscute randamentul mediu şi matricea de covarianţă (similar
exemplului 2).
function [y]=GRAD_riscmin1(nume,ro,Rp,eps,NM,caz);
% GRAD_riscmin1('portofoliu1.txt',100,1.15,10^-5*sqrt(5),50000,0);
% GRAD_riscmin1('',10,0.25,10^-5*sqrt(5),10000,1);
% nume=numele fisierului din care sunt prelute datele
% ro=din functia obiectiv
% Rp=randamentul prognozat
% NM=numarul de iteratii
% eps = eroarea maxima admisa
% caz=0 dacapreiau date din fisier, altfeleste 1

if(caz==0)
R=citeste_date(nume);
[n,m]=size(R);
[Q,rmed,alpha,B]=parametri(R);
else
n=5;
In1=eye(n-1);
ul=-ones(1,n-1);
B=[In1; ul];
alpha=zeros(n,1);
alpha(n)=1;
rmed=[-0.028, 0.366, 0.231, -0.24, 0.535]';
Q=[1.0256 -0.4340 0.0202 -0.1968 -0.0311;
-0.4340 1.1049 -0.0783 0.2347 -0.1776;
0.0202 -0.0783 0.4328 -0.1236 -0.1895;
-0.1968 0.2347 -0.1236 8.0762 1.0093;
-0.0311 -0.1776 -0.1895 1.0093 2.9007];
end;
% calcul matrice Hessian
H=2*B.'*Q*B+2*(ro/(Rp^2))*(B.'*rmed)*(B.'*rmed).';
%disp(H);
[V,D]=eig(H);
% valoarea proprie maxima a matricei Hessian pentru stabilirea
%valorii cu care este actualizat xk din teorema de convergenta
Maxim=max(max(D));
rata=1/(Maxim);

k=1;er=1;
x0=ones(n-1,1);
x0=x0/(n-1);
while((k<=NM)&&(er>=eps))
val=fgrad(Q,rmed,alpha,B,ro,Rp,x0);
er=norm(val);
x=x0-rata*val;
x0=x;
k=k+1;
end;
disp(['Eroarea: ' num2str(er)]);
[vall,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x);
y=alpha+B*x;
disp('Portofoliul calculat:');disp(y);
disp(['Riscul minim calculat: ' num2str(V)]);
disp(['Randamentul calculat: ' num2str(rmed.'*y)]);
disp(['Randamentul predictionat: ' num2str(Rp)]);
disp(['Numarul de iteratii: ' num2str(k)]);
end

În continuare sunt prezentate evoluţiile algoritmului de tip gradient pentru fiecare


din cele două exemple considerate.

La apelul GRAD_riscmin1('portofoliu1.txt',100,1.15,10^-5*sqrt(5),50000,0);
La apelul GRAD_riscmin1('',10,0.25,10^-5*sqrt(5),10000,1);

4.4. Abordarea GA pentru problema optimizării portofoliilor de n acţiuni

Problema pe care ne propunem să o rezolvăm este determinarea portofoliului de risc


minim pentru un randament prognozat𝑅𝑝 . Problema este modelată în termenii
RISCMIN1M, transformată în problema de maxim.

Maximizează
𝜌 2
4.27 − 𝐹 𝑥 = − 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 + 2 𝑟 𝑇 𝛼 − 𝑅𝑝 + 𝑟 𝑇 𝐵𝑥 .
𝑅𝑝

Pentru comparaţie vor fi folosite datele din tabelul 4.1 şi cele din exemplul 2.

Vor fi tratate atât situaţiile de tip “short selling”, cât şi situaţiile în care acest
lucru este evitat. Aşa cum am menţionat în §4.2, dacă randamentul prognozat𝑅𝑝 este ales
în conformitate cu randamentele medii calculate 𝑟1 , 𝑟2 , … , 𝑟𝑛 , în general soluţia unei
probleme de risc minim nu implică situaţia de tip “short selling” pentru activele care vor fi
incluse în portofoliu.

La fiecare moment de timp, populaţia este constituită din dim indivizi. Fiecărui
fenotip y (portofoliu) îi corespunde un cromozom definit de un şir cu n-1 numere reale,
însoţit de informaţia calitatea evaluată în termenii funcţiei obiectiv. Din punct de vedere al
reprezentării, este utilizat un vector x, cu
𝑥 𝑖 = 𝑦 𝑖 ,1 ≤ 𝑖 ≤ 𝑛 − 1
𝑥 𝑛 = −𝐹 𝑥 1: 𝑛 − 1
undey este un portofoliu:
pentru 1 ≤ 𝑖 ≤ 𝑛, 𝑦 𝑖 este fracţiunea investită în acţiunea i,
astfel încât 𝑛𝑖=1 𝑦 𝑖 = 1şi 𝑦 𝑛 = 1 − 𝑛−1 𝑖=1 𝑥 𝑖
şi 𝑥 𝑛 este valoarea funcţiei obiectiv asociată vectorului 𝑥 1: 𝑛 − 1 (calitatea în termenii
funcţiei de evaluare).
Generarea populaţiei iniţiale este realizată aleator. Dacă este aleasă varianta în care
nu este admisă o situaţie de tip “short selling”, sunt impuse constrângerile fiecărui individ
x:
𝑛−1

4.28 1 ≤ 𝑖 ≤ 𝑛 − 1, 0 ≤ 𝑥 𝑖 ≤ 1, 𝑥 𝑖 ≤1
𝑖=1
1. În caz contrar, fiecare alelă 𝑥 𝑖 este generată aleator uniform între -1 şi
1.Pentru ca 𝑦 𝑛 = 1 − 𝑛−1 𝑛−1
𝑖=1 𝑥 𝑖 să fie în −1,1 , trebuie ca 0 ≤ 𝑖=1 𝑥 𝑖 ≤ 2 .

Operatorii de variaţie sunt definiţi astfel. Recombinarea este aplicată cu o rată pc şi


revine la aplicarea operatorului de recombinare aritmetică totală, cu ponderea p, celor
𝑑𝑖𝑚 perechi de cromozomi aleşi aleator din populaţia de părinţi (fiecare pereche de
2
cromozomi ocupă poziţiile 𝑝1 ≠ 𝑝2 în multisetul părinţilor). Pot fi utilizate două variante:
1. aceeaşi pereche de cromozomi poate fi generată de mai multe ori, respectiv
2. orice pereche de cromozomi aleşi ca părinţi este unică.
Dacă o pereche de cromozomi nu generează progenituri prin recombinare aritmetică
(aleator a fost generat un număr sub rata de încrucişare), atunci are loc recombinarea
asexuată.

Observaţie. Prin aplicarea operatorului de recombinare aritmetică totală, dacă doi


indivizi respectă constrângerile (4.28), atunci şi progeniturile lor îndeplinesc (4.28).
Această observaţie este importantă în contextul excluderii situaţiei de tip “short selling”.

Operatorul de mutaţie ales este cel de tip fluaj, cu o probabilitate de mutaţie mică şi
𝑡
cu 𝜎 = 3 de asemenea foarte mic (aici a fost ales 𝑡 = 0.1, 𝜎 = 0.033). Operatoruleste
implementat în două variante.
2. Varianta în care este exclusă situaţia de tip “short selling”. Cu o rată pm, fiecare
genă din fiecare cromozom suferă o mutaţie prin adăugarea unei valori generate din
𝑡
repartiţia normală de medie 0 şi varianţă 𝜎 = 3, dar astfel încât cromozomul rezultat să
corespundă unei soluţii fezabile (să fie îndeplinite condiţiile 4.28). Dacă prin modificarea
valorii unei gene, a, rezultă un cromozom, x, care nu aparţine setului soluţiilor fezabile,
atunci a este ajustată astfel încât x să îndeplinească 4.28: dacă a rezultă negativă, atunci a
este setată pe valoarea 0, respectiv dacă suma valorilor genelor lui x, sv, este supraunitară, a
este modificată astfel încât sv să devină 1 (implicit suma investită în ultima acţiune a
portofoliului devine 0).
3. Varianta generală: cu o rată pm, fiecare genă din fiecare cromozom suferă o
mutaţie prin adăugarea unei valori generate din repartiţia normală de medie 0 şi varianţă
𝑡
𝜎 = 3. Este impusă o restricţie prin care valoarea fiecărei alele să fie în intervalul −1,1
deci, în modul, să fie subunitară, pentru a menţie semnificaţia fiecărei valori 𝑥 𝑖 de
fracţiune investită în acţiunea corespunzătoare. De asemenea, pentru ca 𝑦 𝑛 = 1 −
𝑛−1 𝑛−1
𝑖=1 𝑥 𝑖 să fie în −1,1 , trebuie ca 0 ≤ 𝑖=1 𝑥 𝑖 ≤ 2.
Selecţia părinţilor este realizată pe baza algoritmului SUS, prin utilizarea distribuţiei
de probabilitate de selecţie de tip rang liniar, cu presiunea de selecţie s. La fiecare generaţie
sunt selectaţi dim părinţi. Mecanismul de supravieţuire este implementat astfel: generaţia
următoare este dată de multisetul progeniturilor, eventual mutante, dar în care cel mai bun
individ al generaţiei curente, bx, înlocuieşte cel mai slab cromozom copil, dacă nici unul
dintre indivizii generaţi în urma aplicării operatorilor de variaţie nu are calitatea cel puţin
egală cu cea a lui bx.
Este prezentată în continuare implementarea algoritmului în cea de a doua variantă
de generare a unei perechi de cromozomi din bazinul de recombinare (orice pereche de
cromozomi aleşi ca părinţi este unică). Pentru prima variantă, în funcţia crossover sunt
generate aleator 𝑑𝑖𝑚 2 perechi de cromozomi, pentru care se impune doar condiţia ca cei
doi cromozomi să ocupe poziţii diferite în multisetul părinţilor.

function [R]=citeste_date(nume);
R=load(nume);
end

function [Q,rmed,alpha,B]=parametri(R);
%n actiuni observate in m saptamani
[n,m]=size(R);
rmed=zeros(n,1);
for i=1:n
rmed(i)=mean(R(i,:));
end;
Q=cov(R')*(m-1)/m;
In1=eye(n-1);
ul=-ones(1,n-1);
B=[In1; ul];
alpha=zeros(n,1);
alpha(n)=1;
end

function [val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x);
val=((alpha+B*x).')*Q*(alpha+B*x)+(ro/(Rp^2))*((rmed.')*alpha-
Rp+(rmed.')*B*x)^2;
%disp(val);
V=((alpha+B*x).')*Q*(alpha+B*x);
%disp(V);
end

function [pop]=gen_ini(dim,n,Q,rmed,alpha,B,ro,Rp);
pop=zeros(n,dim);
for i=1:dim
x=zeros(n-1,1);
for j=1:n-1
gata=0;
while(~gata)
r=unifrnd(0,1);
if(sum(x)+r<=1)
x(j)=r;
gata=1;
end;
end;
if(sum(x)==1)
break;
end;
end;
pop(1:n-1,i)=x(1:n-1);
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x(1:n-1));
pop(n,i)=-val;
end;
end

function [pop]=gen_ini_short_selling(dim,n,Q,rmed,alpha,B,ro,Rp);
pop=zeros(n,dim);
for i=1:dim
x=zeros(n-1,1);
gata=0;
while(~gata)
for j=1:n-1
x(j)=unifrnd(-1,1);
end;
if((sum(x)>=0)&&(sum(x)<=2))
pop(1:n-1,i)=x(1:n-1);
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x(1:n-1));
pop(n,i)=-val;
gata=1;
end;
end;
end;
end

function [parinti]=selectie_SUS_rang_l(pop,s);
[n,dim]=size(pop);
p=rang_l(pop,s);
q=zeros(dim,1);
for i=1:dim
q(i)=sum(p(1:i));
end;
parinti=zeros(n,dim);
i=1;k=1;r=unifrnd(0,1/dim);
while(k<=dim)
while(r<=q(i))
parinti(1:n,k)=pop(1:n,i);
r=r+1/dim;
k=k+1;
end;
i=i+1;
end;
end

function [p]=rang_l(pop,s);
[n,dim]=size(pop);
p=zeros(1,dim);
for i=1:dim
p(i)=(2-s)/dim+(2*i*(s-1)/(dim*(dim+1)));
end;
end

function [popN]=crossover1(pop,pc,p,Q,rmed,alpha,B,ro,Rp);
[n,dim]=size(pop);
poz=[];
popN=zeros(n,dim);
for i=1:2:dim
ok=0;
while(~ok)
p1=unidrnd(dim-1);
p2=p1;
while(p1>=p2)
p2=unidrnd(dim);
end;
if(~ismember([p1 p2],poz,'rows'))
poz=[poz;[p1 p2]];
ok=1;
end;
end;
% nu pot fi generate aceleasi perechi de parinti la treceri diferite
x=pop(1:n-1,p1);
y=pop(1:n-1,p2);
r=unifrnd(0,1);
if(r<=pc)
x1=p*x+(1-p)*y;
popN(1:n-1,i)=x1(1:n-1);
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x1(1:n-1));
popN(n,i)=-val;
y1=p*y+(1-p)*x;
popN(1:n-1,i+1)=y1(1:n-1);
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,y1(1:n-1));
popN(n,i+1)=-val;
else
popN(1:n,i)=pop(1:n,p1);
popN(1:n,i+1)=pop(1:n,p2);
end;
end;
end

function [popN]=mutatie(pop,pm,t,Q,rmed,alpha,B,ro,Rp,caz);
% mutatia intr-un cromozom, la nivel de gena revine la aplicarea
operatiei
% de fluaj
[n,dim]=size(pop);
popN=pop;
for i=1:dim
efectuat=0;
if(caz==0)
% fara short selling
for j=1:n-1
r=unifrnd(0,1);
if(r<=pm)
fluaj=normrnd(0,t/3);
a=pop(j,i)+fluaj;
efectuat=1;
if(a<0)
a=0;
end;
s=sum(popN(1:n-1,i));
if(s+fluaj>1)
xx=s+fluaj-1;
a=a-xx;
end;
popN(j,i)=a;
end;
end;
else
%cu short selling
for j=1:n-1
r=unifrnd(0,1);
if(r<=pm)
gata=0;
while(~gata)
fluaj=normrnd(0,t/3);
if(fluaj>0)
a=min([pop(j,i)+fluaj 1]);
else
a=max([pop(j,i)+fluaj -1]);
end;
s=sum(popN(1:n-1,i));
if((s+fluaj>=0)&&(s+fluaj<=2))
popN(j,i)=a;
efectuat=1;
gata=1;
end;
end;
end;
end;
if(efectuat)
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,popN(1:n-1,i));
popN(n,i)=-val;
end;
end;
end

function [rezultat]=selectie_generatie_urmatoare(pop,popN);
[n,dim]=size(pop);
fob=pop(n,1:dim);
fobN=popN(n,1:dim);
rezultat=popN;
[max1,i]=max(fob);
[max2,j]=max(fobN);
if(max1>max2)
[min1,k]=min(fobN);
rezultat(1:n,k)=pop(1:n,i);
end;
end

function [x]=GA_riscmin1(nume,dim,ro,Rp,s,pc,pm,p,t,NM,caz);
% nume=numele fisierului din care sunt prelute datele
% dim=dimensiunea populatiei, numar par
% ro=din functia obiectiv
% Rp=randamentul prognozat
% s=constrangerea de selectie pentru distributia de selectie rang liniar
% pc=probabilitatea de recombinare
% p=ponderea la recombinarea prin medie
% pm=probabilitatea de mutatie
% t=pragul de la fluaj
% NM=numarul de iteratii
% caz=0, pentru exemplul1, fara short selling
% caz=1, pentru exemplul2, cu short selling

%GA_riscmin1('portofoliu1.txt',500,100,1.15,1.8,0.8,0.01,0.7,0.1,20,0);
%GA_riscmin1('',500,10,0.25,1.8,0.8,0.02,0.7,0.1,20,1);
if(caz==0)
R=citeste_date(nume);
[n,m]=size(R);
[Q,rmed,alpha,B]=parametri(R);
pop=gen_ini(dim,n,Q,rmed,alpha,B,ro,Rp);
else
n=5;
In1=eye(n-1);
ul=-ones(1,n-1);
B=[In1; ul];
alpha=zeros(n,1);
alpha(n)=1;
rmed=[-0.028, 0.366, 0.231, -0.24, 0.535]';
Q=[1.0256 -0.4340 0.0202 -0.1968 -0.0311;
-0.4340 1.1049 -0.0783 0.2347 -0.1776;
0.0202 -0.0783 0.4328 -0.1236 -0.1895;
-0.1968 0.2347 -0.1236 8.0762 1.0093;
-0.0311 -0.1776 -0.1895 1.0093 2.9007];
pop=gen_ini_short_selling(dim,n,Q,rmed,alpha,B,ro,Rp);
end;
pop1=sortrows(pop.',n);
pop=pop1.';
T=[];
T1=[];
for nrit=1:NM
%populatia sortata crescator dupa -fobiectiv
[parinti]=selectie_SUS_rang_l(pop,s);
[popN]=crossover1(parinti,pc,p,Q,rmed,alpha,B,ro,Rp);
% operatia de mutatie este realizata functie de caz - cu sau fara
%short selling
[popNou]=mutatie(popN,pm,t,Q,rmed,alpha,B,ro,Rp,caz);
[rezultat]=selectie_generatie_urmatoare(pop,popNou);
pop1=sortrows(rezultat.',n);
pop=pop1.';
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,pop(1:n-1,dim));
T=[T V];
T1=[T1 val];
end;
disp(['riscul minim:' num2str(T(NM))]);
disp(['minimul functiei obiectiv MINRISC1:' num2str(T1(NM))]);
disp('Fractiunile investite');
disp([pop(1:n-1,dim);1-sum(pop(1:n-1,dim))]);
disp('Randamentul obtinut:');
Rr=(rmed.')*(alpha+B*pop(1:n-1,dim));
disp(Rr);
figure
i=1:NM;
plot(i,T1(i),'-rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','y',...
'MarkerSize',8);
figure
i=1:NM;
plot(i,T(i),'-rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','m',...
'MarkerSize',8);

end

Variantă de implementare cu excluderea situaţiei de tip “short selling”pentru


datele din tabelul 4.1

Rezultatele care pot fi obţinute la apelul


GA_riscmin1('portofoliu1.txt',500,100,1.15,1.8,0.8,0.01,0.7,0.1,20,0)
sunt figurate mai jos.
În acest exemplu, minimul funcţiei obiectiv corespunzătoare problemei
RISCMIN1M este 3.442 × 10−3 , riscul calculat după 20 de generaţii este
𝑉 = 3.4222 × 10−3
randamentul este

𝑅 = 𝑟 𝑇 𝛼 + 𝐵𝑥 = 1.1495 ≅ 1.15 = 𝑅𝑝
𝑥 = 0.4064 0.3256 0.0502 0.1882 𝑇

şi portofoliul obţinut:
𝑇
𝑦 = 0.4064 0.3256 0.0502 0.1882 0.0296
Variantă de implementare, cu considerarea situaţiei de tip “short selling” pentru
datele din exemplul 2

Rezultatele care pot fi obţinute la apelul


GA_riscmin1('',500,10,0.25,1.8,0.8,0.02,0.7,0.1,20,1);
sunt figurate mai jos.
În acest exemplu, minimul funcţiei obiectiv corespunzătoare problemei
RISCMIN1M este0.14238, riscul calculat după 20 de generaţii este

𝑉 = 0.14227
randamentul este

𝑅 = 𝑟 𝑇 𝛼 + 𝐵𝑥 = 0.2492 ≅ 2.25 = 𝑅𝑝

şi portofoliul obţinut:
𝑇
𝑦 = 0.2096 0.2754 0.4045 − 0.0022 0.1127

S-ar putea să vă placă și