algoritmi genetici - optimizarea portofoliilor

31
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 r ij , randamentul acţiunii i în perioada j; y i , fracţiunea investită în acţiunea i, astfel încât S= i=1 n y i =1 σ i 2 , varianţa acţiunii i; σ ik , covarianţa dintre acţiunile i şi k. Portofoliul este definit de fracţiunile de investiţii y 1 ,y 2 ,…,y n . Randamentul mediu al fiecărei acţiuni i, 1 ≤i≤n, notat cu r i , este calculat prin r i = 1 m j=1 m r ij ( 4.1) Randamentul aşteptat al portofoliului este dat prin R= i=1 n r i y i ( 4.2) Varianţa fiecărei acţiuni i, 1 ≤i≤n, respectiv covarianţa dintre oricare două acţiuni i,k, 1 ≤i,k≤n, sunt calculate prin σ i 2 = 1 m j=1 m ( r ij r i ) 2 ( 4.3 ) σ ik = 1 m j=1 m ( r ij r i )( r kj r k ) ( 4.4)

Upload: mihail-cristian-dumitru

Post on 30-Apr-2017

335 views

Category:

Documents


17 download

TRANSCRIPT

Page 1: Algoritmi Genetici - Optimizarea Portofoliilor

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

rij, randamentul acţiunii i în perioada j;

y i, fracţiunea investită în acţiunea i, astfel încât S=∑i=1

n

y i=1

σ i2, varianţa acţiunii i;

σ ik, covarianţa dintre acţiunile i şi k.Portofoliul este definit de fracţiunile de investiţii y1 , y2 , …, yn.

Randamentul mediu al fiecărei acţiuni i ,1≤i ≤ n, notat cu ri, este calculat prin

ri=1m ∑

j=1

m

r ij (4.1 )

Randamentul aşteptat al portofoliului este dat prin

R=∑i=1

n

ri y i (4.2 )

Varianţa fiecărei acţiuni i ,1≤i ≤ n, respectiv covarianţa dintre oricare două acţiuni i , k ,1≤i , k ≤n, sunt calculate prin

σ i2= 1

m∑j=1

m

(rij−ri )2 (4.3 )

σ ik=1m ∑

j=1

m

( rij−r i ) (rkj−rk ) (4.4 )

Varianţa portofoliului este definită prin

V=∑i=1

n

σ i2 y i

2+2∑i=1

n−1

∑j=i+1

n

σ ij y i y j ( 4.5 )

ş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

R=rT y (4.6 )V= yT Qy (4.7 )

unde

Page 2: Algoritmi Genetici - Optimizarea Portofoliilor

r=(r1 , r2 , …, rn )T

y=( y1 , y2 ,… , yn )T

Q=( σ ij )1≤ i ≤n1 ≤ j≤ n

,σ ii=σ i2 ,1 ≤ i≤ n

De asemenea, în reprezentare matriceală relaţia

S=∑i=1

n

y i=1

devineS=eT y=1 (4.8 )

unde e=(1,1 ,…,1 )Teste vectorul unitar n-dimensional.

Problema primară de minimizare a riscului, RISCMIN0, este formulată prin (Bartholomeu-Biggs, 2005)

RISCMIN0:Minimizează V= yT Qycu restricţia

∑i=1

n

yi=1 .

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

yn( yn=1−∑i=1

n−1

yi) .Î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

F=−R+ρV =−rT y+ρ yT Qy (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ă F=−rT y+ ρ yT Qycu restricţia

∑i=1

n

yi=1 .

.

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

a variabilei yn( yn=1−∑i=1

n−1

y i).

Page 3: Algoritmi Genetici - Optimizarea Portofoliilor

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ă V= yT Qycu restricţiile

∑i=1

n

ri y i=R p

∑i=1

n

yi=1 .

sau, alternativ, problema modificată RISCMIN1M,RISCMIN1M:

Minimizează

F= yT Qy+ ρ( Rp )2 (∑i=1

n

r i y i−R p)2

(4.10 )

cu restricţia

∑i=1

n

yi=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, V ac, şi este maximizat randamentul aşteptat. Modelul matematic revine la problema de minimizare cu constrângeri RANDAMENTMAX1:

RANDAMENTMAX1:Minimizează R=−rT ycu restricţiileV= yT Qy=V ac

∑i=1

n

yi=1 .

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

F=−rT y+ ρ(V ac )2

( yT Qy−V ac)2 (4.11 )

cu restricţia

∑i=1

n

yi=1 .

Constanta pozitivă ρ semnifică relaţia existentă între randamentul şi riscul portofoliului.

Page 4: Algoritmi Genetici - Optimizarea Portofoliilor

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

prin eliminarea restricţiei şi a variabilei yn( yn=1−∑i=1

n−1

y i).

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 yneste poate fi eliminată,

yn=1−∑i=1

n−1

y i (4.12 )

şi funcţiile randament şi risc sunt exprimate exclusiv în termenii y1 , y2 ,…, yn−1. În plus, restricţia (4.8) poate fi eliminată din problemele de optim în care apare.

Fie x=( y1 , y2, …, yn−1 )T, vector de dimensiune n-1, α=(0,0 , …,0,1 )Tvector n-dimensional, cu unicul element nenul α n=1 şi B matrice de dimensiune n × ( n−1 ), cu primele n−1 linii liniile corespunzătoare matricei unitate I n−1 şi ultima linie formată cu elementul -1,

B=(10 …001 …0

……………00 …1

−1−1…−1).

Cu aceste notaţii, obţinemy=α+Bx (4.13 )

Similar celor prezentate în în §4.1, procedura MINRISC0 defineşte problema primară de minimizare a riscului în cazul unui portofoliu definit de fracţiunile de investiţii y1 , y2 ,…, yn. Prin utilizarea relaţiei (4.13), rezultă (Bartholomeu-Biggs, 2005):

MINRISC0: (4.14)Minimizează

V= (α+Bx )T Q (α +Bx )

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

¿ , x2¿ ,…, xn−1

¿ )Teste o soluţie a problemei (4.14), atunci portofoliul de risc minim, notat y¿, este definit prin

y i¿=x i

¿ ,1 ≤ i≤ n−1 şi yn¿=1−∑

i=1

n−1

x i¿ (4.15 )

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 ∇V sau V x, este definit prin

∇V =( ∂ V∂ x1

, ∂ V∂ x2

…, ∂V∂ xm )

T

.

Page 5: Algoritmi Genetici - Optimizarea Portofoliilor

Gradientul funcţiei obiectiv din relaţia (4.14) este

(4.16) ∇ V=2 BT Qα+2 BT QBx=2 BT 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ă ∇2 V sau V xx , este definită prin

∇2 V =( ∂2V∂ x i∂ x j

)¿¿ 1≤i≤m ¿1≤ j≤m ¿¿¿

Hessianul funcţiei obiectiv din relaţia (4.14) este

(4.17)∇2V =2 BT 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ă

F=(α +Bx )T Q (α+Bx )+ ρ( Rp )2 (rT α−R p+rT Bx )2

Pentru calculul vectorului gradient şi al matricei Hessian pentru funcţia F definită în (4.18), considerăm reprezentarea

F=V +ρ ( R−R p )2

undeV= (α+Bx )T Q (α +Bx )

ρ= ρ( R p )2 şi

R=rT (α+Bx )

Sunt obţinute relaţiile∇F=F x=V x+2 ρ ( R−Rp ) Rx

unde∇V =V x=2 BT Q (α+Bx )

şi∇R=R x=BT r

Similar, este obţinută matricea Hessian, prin

Fxx=V xx+2 ρ̄ Rx ( Rx )T

undeV xx=2BT QB şiRx (Rx )T este o matrice cu rangul 1, pentru orice i,j, 1≤i , j≤n−1 ,

Page 6: Algoritmi Genetici - Optimizarea Portofoliilor

( Rx ( Rx )T )i , j=∂ R

∂ x i

∂ R∂ 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ă

F=−rT ( α+Bx )+ ρ(V ac )2

( (α+Bx )T Q (α +Bx )−V ac)2

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

obţinute prin reprezentareaF=−R+ ρ̄ (V −V ac )2 ,undeR=r̄ T (α+Bx )V= (α+Bx )T Q (α+Bx ) şi

ρ̄= ρ

(V acc )2 .RezultăFx=−BT r̄+2 ρ̄ (V −V a ) V x

Fxx=2 ρ̄ (V x (V x )T+(V −V a )V xx )unde V x (V x )T este matrice de rangul I; pentru orice i,j, 1≤i , j≤n−1 ,

(V x (V x )T )i , j=∂V

∂ xi

∂V∂ x j .

Observaţii. 1. În cadrul problemelor enuţate în acesastă secţiune, nu este impusă codiţia

ca fiecare y i să fie pozitiv. O valoare negativă a unei fracţiuni de investiţii y i 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 unei probleme de risc minim nu implică situaţia de tip “short selling” dacă randamentul dorit Rp este ales corespunzător, adică în conformitate cu randamentele medii calculate r1 , r2 ,…, rn pentru activele care vor fi incluse în portofoliu.

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

Condiţii de optimalitate

Page 7: Algoritmi Genetici - Optimizarea Portofoliilor

Fie F (x1 , x2 , .. . , xn ) funcţie de n variabile, continuă şi diferenţiabilă. Caracterizarea punctului de minim atins de F este realizată în termenii vectorului gradient şi a matricei Hessian

∇ F=( ∂ F∂ x1

, ∂ F∂ x2

, .. . , ∂ F∂ xn )

T

, notat în continuare cu g sau cu Fx , respectiv

∇2 F=( ∂2 F∂ x i∂ x j

)¿¿ 1≤i≤n ¿1≤ j≤n ¿¿¿, matrice notată în continuare cu G sau Fxx

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=2 BT Qα+2 BT 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

Page 8: Algoritmi Genetici - Optimizarea Portofoliilor

î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 JeevesTehnica 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 )∂ x1

≈F (x1+h , x2 , .. . , xn )−F (x1−h , x2 , .. . , xn )

2 h 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 gradientAş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şteriTehnica celei mai rapide descreşteri este justificată geometric astfel. Presupunem că

F ( x ) este funcţia de minimizat şi xk 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ă x0, estimare iniţiale a punctului de minim al lui F ( x ) şi ε>0 Repetă pentru k=0,1,2…

Page 9: Algoritmi Genetici - Optimizarea Portofoliilor

pk=−∇F ( xk ) calculează s¿care minimizează φ ( s )=F ( xk+s ∙ pk ) aplică regula de actualizare xk+1=xk+s ∙ pk

Până când ‖∇ F ( xk+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 pk) şi respectiv procedura de determinare a demarcaţiei (line search) în scopul stabilirii unei valori adecvate a pasului s¿.

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

ϕ (s )=F ( xk+spk ) 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 (xk +spk )−F ( xk )<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

zT ∇ 2 F ( x ) z≤M‖z‖2

pentru orice vector z , unde M >0 este constantă scalară. Atunci şirul definit prin

xk+1=xk−1M

∇ F (xk ) (s=M−1

)are proprietatea

‖∇ F (xk )‖→0când k →∞ .

Metoda NewtonTehnica 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 )=1

2xT Ax+bT x+c

.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ă

Page 10: Algoritmi Genetici - Optimizarea Portofoliilor

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 xk estimaţia punctului de minim al lui F la momentul curent şi gk=∇ F (xk ) , Gk=∇2 F ( xk ) . Utilizând dezvoltarea Taylor în jurul lui xk obţinem

(4.24) F (xk + p)≈Q ( p )=F (xk )+ pT gk+

12 ( pT Gk p)

şi

(4.25) ∇ F (xk+ p )≈∇ Q ( p )=gk+Gk p

Rezultă că, dacă Gk este pozitiv definită,

(4.26) p=−G

kT gk

Este obţinut astfel următorul algoritm:

Metoda Newton

Selectează x0 , estimare iniţiale a punctului de minim al lui F ( x ) şi ε>0

Repetă pentru k=0,1,2 ,. . .gk=∇ F (xk ) , Gk=∇2 F ( xk )

Dacă Gk este pozitiv definită, atunci calculează pk=−G

k T gk

Altfel pk=−gk

calculează s¿

astfel încât F (xk +spk ) îndeplineşte condiţiile Wolfe 2 şi 3 (Bartholomeu-Biggs, 2005)

aplică regula de actualizarexk+1=xk +s∗pk

Până când ‖∇ F (xk+1)‖<ε

Observaţie. În cazul problemei RISCMIN1M, matricea Hessian corespunzătoare funcţiei obiectiv este

G=2 BT QB+2 ρRp

2 ( BT r ) ( BT r )T

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.

∀ z∈Rn−1, zT Gz ≤ M‖z‖2 ⇔∀ z∈ Rn−1{ (0 ,…, 0 ) ¿T ,( z‖z‖)

T

G z‖z‖

≤ M

⟺∀ t∈Rn−1 cu‖t‖=1 ,t T>≤ M

Deoarece G este pozitiv definită şi simetrică, rezultă că este diagonalizabilă şi există Φ=[Φ1 ,…,Φn−1 ] matrice cu coloane un set de vectori proprii ortogonali,

(Φ i )T Φ j=δ i , j={1, i= j

0 , i≠ j corespunzători valorilor proprii λ1≥ λ2 ≥…≥ λn−1>0 ale matricei G

astfel încâtG=ΦΛ ΦT , Λ=diag ( λ1 , λ2 , …, λn−1 )

Page 11: Algoritmi Genetici - Optimizarea Portofoliilor

Rezultă că problema revine la calculul constantei M astfel încât ∀ t∈Rn−1cu‖t‖=1 , tT ΦΛ ΦT t ≤ M

Pentru t∈ Rn−1 cu‖t‖=1 , fie w=ΦT t∈Rn−1.

‖w‖2=‖ΦT t‖2=‖tT Φ‖2

=‖∑i=1

n−1

ti Φi‖2

‖w‖2=(∑k =1

n−1

t k Φk )T

(∑j=1

n−1

t jΦ j)=∑k=1

n−1

∑j=1

n−1

tk t j (Φk )T Φ j=¿

∑k =1

n−1

∑j=1

n−1

tk t j δk , j=∑k=1

n−1

(t k )2=1

În continuare obţinemtT>≤ M ⇔ wT Λw ≤ 1,‖w‖=1

Deoarece Λ=diag ( λ1 , λ2 ,…, λn−1) , dacă w=( w1 , …, wn−1 )T

wT Λw=∑i=1

n−1

λ i wi2≤ λ1∑

i=1

n−1

wi2=λ1

Rezultă că ∀ z∈Rn−1 , zT Gz ≤ λ1‖z‖2

şi M 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 S10A1 1.2 1.3 1.4 1.5 1.1 1.2 1.1 1.0 1.0 1.1A2 1.3 1.0 0.8 0.9 1.4 1.3 1.2 1.1 1.2 1.1A3 0.9 1.1 1.0 1.1 1.1 1.3 1.2 1.1 1.0 1.1A4 1.1 1.1 1.2 1.3 1.2 1.2 1.1 1.0 1.1 1.2A5 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 Rp=1.15 %.

Randamentul mediu al portofoliului rezultă

r ≅ (1.19 1.13 1.091.15 0.905 )T

şi matricea de covarianţă este

Page 12: Algoritmi Genetici - Optimizarea Portofoliilor

Q≅(0.0249−0.0187−0.00110.0085−0.0219−0.0187 0.0321 0.0033−0.00350.0099−0.00110.00330.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ă

F=(α +Bx )T Q (α+Bx )+ ρ( Rp )2 (rT α−R p+rT Bx )2

Prin aplicarea metodelor de tip gradient, respectiv Newton prezentate, pentru eroarea permisă 10−5 √nşi ρ=100, rezultă

portofoliul y= (0.420.34 0.010.2 0.04 ) riscul minim V=3.44 ×10−3

randamentul ≅ Rp, 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ţă Q sunt disponibile în (Bartholomeu-Biggs, 2005) şi au următoarele valori,

r ≅ (−0. 028 0.366 0.231−0.24 0.535 )T

Q ≅(1.0256−0.4340 0.0202−0.1968−0.0311−0.4340 1.1049−0.0783 0.2347−0.17760.0202−0.0783 0.4328−0.1236−0.1895−0.1968 0.2347−0.1236 8.07621.0093

−0.0311−0.1776−0.1895 1.00932.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 √nşi ρ=10, rezultă portofoliul y= (0.20750.2740 0.4099−0.0023 0.1109) riscul minim V=0.1422 randamentul R=0.249 ≅ Rp=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 s=M−1

constantă. Este tratat separat cazul în care este disponibil istoricul acţiunilor şi

Page 13: Algoritmi Genetici - Optimizarea Portofoliilor

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 daca preiau date din fisier, altfel este 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 HessianH=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

Page 14: Algoritmi Genetici - Optimizarea Portofoliilor

Î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);

Page 15: Algoritmi Genetici - Optimizarea Portofoliilor

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 Rp. Problema este modelată în termenii RISCMIN1M, transformată în problema de maxim.

Maximizează

(4.27 )−F ( x )=−[ (α +Bx )T Q (α+Bx )+ ρ( Rp )2 (rT α−R p+rT Bx )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 Rp este ales în conformitate cu randamentele medii calculate r1 , r2 ,…, rn, î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

x (i )= y (i ) ,1≤ i≤ n−1x (n )=−F ( x (1: n−1 ) )

Page 16: Algoritmi Genetici - Optimizarea Portofoliilor

unde y este un portofoliu: pentru 1≤i ≤n , y ( i ) este fracţiunea investită în acţiunea i,

astfel încât ∑i=1

n

y ( i )=1 şi y (n )=1−∑i=1

n−1

x (i )

şi x (n ) este valoarea funcţiei obiectiv asociată vectorului x (1 :n−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:

(4.28 )1≤i ≤ n−1 , 0 ≤ x (i) ≤ 1,∑i=1

n−1

x (i ) ≤1

1. În caz contrar, fiecare alelă x (i ) este generată aleator uniform între -1 şi 1.

Pentru ca y (n )=1−∑i=1

n−1

x ( i ) să fie în [−1,1 ], trebuie ca 0≤∑i=1

n−1

x (i ) ≤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 dim2

perechi de cromozomi aleşi aleator din populaţia de părinţi (fiecare pereche de cromozomi ocupă poziţiile p 1≠ p 2 în multisetul părinţilor). Pot fi utilizate două variante:

1. aceeaşi pereche de cromozomi poate fi generată de mai multe ori, respectiv2. 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 σ= t3 de asemenea foarte mic (aici a fost ales t=0.1 , σ=0.033). Operatorul este

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ţă σ= t3 , 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ţă

σ= t3 . 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 x (i ) de

Page 17: Algoritmi Genetici - Optimizarea Portofoliilor

fracţiune investită în acţiunea corespunzătoare. De asemenea, pentru ca y (n )=1−∑i=1

n−1

x (i ) să

fie în [−1,1 ], trebuie ca 0 ≤∑i=1

n−1

x ( i ) ≤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 dim2 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)

Page 18: Algoritmi Genetici - Optimizarea Portofoliilor

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);

Page 19: Algoritmi Genetici - Optimizarea Portofoliilor

[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;

Page 20: Algoritmi Genetici - Optimizarea Portofoliilor

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)

Page 21: Algoritmi Genetici - Optimizarea Portofoliilor

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);figurei=1:NM;plot(i,T1(i),'-rs','LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','y',... 'MarkerSize',8);figurei=1:NM;plot(i,T(i),'-rs','LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','m',... 'MarkerSize',8);

end

Page 22: Algoritmi Genetici - Optimizarea Portofoliilor

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

V=3.4222×10−3

randamentul este

R=rT (α+Bx )=1.1495≅ 1.15=R p

x=(0.4064 0.3256 0.05020.1882 )T

şi portofoliul obţinut:

y= (0.4064 0.3256 0.0502 0.18820.0296 )T

Page 23: Algoritmi Genetici - Optimizarea Portofoliilor

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 este 0.14238, riscul calculat după 20 de generaţii este

V=0.14227randamentul este

R=rT (α+Bx )=0.2492≅ 2.25=Rp

şi portofoliul obţinut:

y= (0.2096 0.2754 0.4045−0.0022 0.1127 )T

Page 24: Algoritmi Genetici - Optimizarea Portofoliilor