% Siano dati i prezzi di 3 titoli % Generali Eni Fineco % 30.67 9.718 13.791 % 30.65 9.745 13.966 % 31.13 9.676 13.760 % 30.69 9.394 13.536 % 30.77 9.400 13.951 % 30.33 9.136 13.682 % % ed il numero di azioni possedute per ciascun titolo % 1000 5000 10000 % % Calcolare il rendimento del portafoglio nel periodo considerato tramite % r_t oppure s_t. Verificare le formule cross section facendo riferimento % ai valori del portafoglio nei due istanti temporali % %% Soluzione Y=[30.67 9.718 13.791 30.65 9.745 13.966 31.13 9.676 13.760 30.69 9.394 13.536 30.77 9.400 13.951 30.33 9.136 13.682]; % Pesi assoluti wass wori=[1000 5000 10000]; primariga=Y(1,:); wass=wori.*primariga; w=wass/sum(wass); %% Calcolo di rA = rendimento logaritmico del portafoglio % rA= log(Media ponderata dei singoli fattori di montante % dei titoli che lo compongono) % rt = rendimento logaritmico di ogni singolo titolo % Vettore riga di lunghezza K (nel nostro caso di lunghezza 3) rt=log(Y(end,:)./Y(1,:)); % rA = scalare = rendimento del portafoglio dal primo all'ultimo tempo rA=log(sum(w.*exp(rt))); % Tramite una sola riga di codice rAchk=log(sum(w.*Y(end,:)./Y(1,:))); %% Calcolo di sA = rendimento semplice del portafoglio st=(Y(end,:)./Y(1,:)-1); sA=sum(w.*st); % Tramite una sola riga di codice sAchk=sum(w.*(Y(end,:)./Y(1,:)-1)); %% Calcolo di rA e sA facendo riferimento al valore del portafoglio nei due tempi % p1A = valore del portafoglio all'istante finale di osservazione p1A=sum(Y(end,:).*wori); % p0A = valore del portafoglio in corrispondenza di t=1 p0A=sum(Y(1,:).*wori); rAchk1=log(p1A/p0A); sAchk1=(p1A/p0A)-1; %% Controllo uguaglianza tra le diverse implementazioni % se le condizioni di seguito non sono vere allora viene scritto il % messaggio di errore tol=1e-14; assert(abs(rA-rAchk)