Matlab Atelier 3 : Modélisation financière avec MatLab Abdennabi Khiari Coordonnateur Salle des...

Post on 04-Apr-2015

108 views 1 download

Transcript of Matlab Atelier 3 : Modélisation financière avec MatLab Abdennabi Khiari Coordonnateur Salle des...

MatlabMatlabAtelier 3Atelier 3 : Modélisation financière avec MatLab : Modélisation financière avec MatLab

Abdennabi KhiariCoordonnateurSalle des MarchésFaculté d'administrationUniversité de SherbrookeTéléphone : (819) 821-8000 # 65262abdennabi.khiari@usherbrooke.ca

www.USherbrooke.ca/salledemarche

Démarrer MATLABDémarrer MATLAB

1. Ligne de commande2. Historique des commandes 3. Permet de visualiser le contenu du répertoire de

travail4. Répertoire de travail5. Variables en mémoire

VariablesVariables

% Variable temporaire (ans) 1/2 « »ans = 0.5000

% Variable choisie par l’utilisateurA=1/2 « »A = 0.5000

Création de matricesA=[1 2;3 4] « »A = 1 2 3 4B=[1 2;3 4] « »B = 1 2 3 4

AAllocation de portefeuillellocation de portefeuille

Un investisseur veut allouer :

30% en énergie20% en matériaux50% en industrie

Arcade Best Essor

Énergie 30% 5% 40%

Matériaux

40% 10% 10%

Industrie 30% 85% 50%

0.5 0.50.85-0.3

0.2 0.10.1-0.4

0.3 0.40.05-0.3

eba

eba

eba

a = percentage dans le fonds 1 (Arcade)b = percentage dans le fonds 2 (Best)e = percentage dans le fonds 3 (Essor)

AAllocation de portefeuillellocation de portefeuille

F = [0.3 0.05 0.4 0.4 0.1 0.1 0.3 0.850.5];

% Calculer les pondérations

A= F\P

P = [0.3 0.2 0.5];

\=A

F = [0.3 0.05 0.4 0.4 0.1 0.1 0.3 0.850.5];

P = [0.3 0.2 0.5];

=xabe

Tracer un Tracer un graphique en pointe de graphique en pointe de tartestartes

% Tracer un graphiquefigurepie3(A)legend('Arcade','Best','Essor','Location','NO')

Travailler avec les expressions Travailler avec les expressions symboliquessymboliques

MatLab

Système d’équationSystème d’équation

syms a b e; % Créer les variables symboliques a, b et eeq1 = '0.3*a+0.05*b+0.4*e = 0.3 ';eq2 = '0.4*a+0.1*b+0.1*e = 0.2 ';eq3 = '0.3*a+0.85*b+0.5*e = 0.5 ';[a,b,e] = solve(eq1,eq2,eq3,a,b,e)

% Tracer un graphiquefigureAllocation = eval([a b e])explode = [0 1 0];pie3(Allocation, explode)legend('Arcade','Best','Essor','Location','NO')

Travailler avec les expressions Travailler avec les expressions symboliquessymboliques

clearcloseclc

% Construire une expression symboliqueP = sym('n*(n+1)*(n+2)*(n+3)+1');

% remplacer ‘n’ par 2 dans l’expression Psubs(P, 'n',2) ans = 121

% faire varier ‘n’ entre -2pi et 2pi et tracer un graphiqueezplot(P)

CCalculateur symboliquealculateur symbolique

2*x^2+x-40=0Solution 1% Construire une expression symbolique

eq1 =sym('2*x^2+x-40=0')% expression symboliquesolve(eq1)ans = - 321^(1/2)/4 - 1/4 321^(1/2)/4 - ¼

% Évaluer l' expression symbolique eval(x)ans = -4.7291 4.2291

Solution 2 % Variables de type "char“

eq2= '2*x^2+x-40=0 'solve(eq2)

ans = - 321^(1/2)/4 - 1/4 321^(1/2)/4 - 1/4

CCalcul de dérivéealcul de dérivée

clearcloseclc% Création de l’expression symboliquesyms a x; f=sin(a*x);

% Calcul de sa dérivéediff(f)ans =a*cos(a*x)

% Calcul de la dérivée par rapport à ‘a’diff(f, a)ans =x*cos(a*x)

CaCalcul de dérivée secondelcul de dérivée seconde

clearcloseclc% Création de l’expression symboliquesyms a x; f=sin(a*x);

% Calcul de sa dérivée secondediff(f, 2)ans=-a^2*sin(a*x)

% Calcul de la dérivée seconde par rapport à ‘a’ diff(f, a, 2)ans =-x^2*sin(a*x)

Calculer le prix d’une Calculer le prix d’une obligationobligation

Matlab

Facteur d'actualisation Facteur d'actualisation (discount factor)(discount factor)

= N33

221 1

MC...

1

C

1

C

1

CP

nrrrr

DTC

Exercice : Spot rates and yieldsSource : Strategic Asset Allocation in Fixed Income MarketsKen Nyholm, p. 46

C = couponM = montant de remboursementr = taux actuarielD = facteur d'actualisation (discount factor)

InitialisationInitialisation

P = C Dx

% PrixP=

[ 100.000099.500093.750089.450091.0000 ];

% Flux monétaires futursC= [105.00 0 0 0

0 5.5000 105.5 0 0

0 4.0000 4 104 0 0 3.5000 3.5 3.5 103.5 0 4.5000 4.5 4.5 4.5 104.5];

x=

% facteur d'actualisation

?

Calculer le Calculer le facteur d'actualisation facteur d'actualisation (discount factor)(discount factor)

D = inv(C)* P;D = 0.9524 0.8935 0.8304 0.7737 0.7222

),((n.n)t)(n, CP tnD ),(-1

n)(n,t)(n, CD tnP

Calculer le prix de l’obligationCalculer le prix de l’obligation

% Calculer le prix de l’obligationCF= [3 3 103 0 0]Prix = CF*D

Prix = 91.0737

Calculer les taux Calculer les taux actuarielactuariel

0.9524 0.8935 0.8304 0.7737 0.7222

-1/1-1/2-1/3-1/4-1/5

.^=r

% Calculer le taux actuarielj= (1:5)';E= -1./j;r= D.^E-1;

D E.^=r 1-

11111

-

1r1

j

JJD

r = Taux actuariel (zéro-coupon)

vs

y = Rendements

Taux actuariel (zéro-coupon) Taux actuariel (zéro-coupon) vs Rendementsvs Rendements d’obligations d’obligations

NN32 1

M

1

C...

1

C

1

C

1

CP

yyyyy

NN33

221 1

M

1

C...

1

C

1

C

1

CP

nn rrrrr

% Calculer les rendementsclcy=zeros(5,1)

for i=1:5 y(i)=irr([-P(i) C(i,1:i)]);end

Tracer un graphique de comparaisonTracer un graphique de comparaison

% Tracer un graphique de comparaisonplot(j,[r y])legend('Taux actuariel (zéro-coupon)', 'Rendements', 'Location', 'NW')

Création de graphiquesCréation de graphiquesMatlab

Gestion des couleurs et des styles Gestion des couleurs et des styles de lignesde lignes

% Initialisationyear=[2000:1:2006]; sales=[8 12 20 22 18 24 27];

 -- ligne discontinue : ligne pointillée + signes plus o cercles y jaune. points x croixs carrésd diamantp pentagrammeˆ triangles vers le hautv triangles vers le bas< triangles vers la gauche> triangles vers la droite  r rougeg vertc cyanm magentaw blanck noir

% Tracer un graphique plot(year,sales,'--r*','linewidth',2,'markersize',12)

Surf(wSurf(w) : ) : tracer des surfacestracer des surfaces

Exemple t=0:.01:1;y = sin(2*pi*t);w=y'*y;surf(w);

Autres commandes

mesh : Grillage en perspectivestairs : Crée un graphique en escalierstem : Crée un graphique pour signal discretsubplot : Permet de créer des graphiques multiples

Création d'une interface Création d'une interface graphiquegraphique

Matlab

Chargement de données Chargement de données d’Exceld’Excel

% chargement de données numériques (Excel)devises=xlsread('txChangeCAN');

% chargement de données (Excel)[devises, txtDevises]=xlsread('txChangeCAN');

Manipulation de matricesManipulation de matrices

% chargement des datesdatestxt=txtDevises(2:end,1);

% chargement des titrestitres=txtDevises(1,2:end);

% Convertir les dates en format numériquedates = datenum(datestxt, 'dd/mm/yyyy');

% Tracer un graphique plot(dates , devises(:,2))datetick('x','dd/mm/yyyy');

L'instruction mL'instruction menu(…)enu(…)

%% Utiliser la fonction MENU pour choisir une devisenbrchoix = menu('Choisissez un pays',titres);

Tracer un graphique Tracer un graphique

% InitialisationtxchangeChoisi= devises(:, nbrchoix);dates = datenum(datestxt, 'dd/mm/yyyy');

% Tracer un graphique plot(dates , txchangeChoisi) datetick('x','dd/mm/yyyy'); xlabel('Date'); ylabel('Valeur'); title(titres(nbrchoix));grid

Récupération de données Récupération de données externes externes

et calculs de rendementset calculs de rendementsMatLab

Chargement de données de YahooChargement de données de Yahoo

clearclc

%% Connexion à Yahooc = yahoo;isconnection(c);get(c); % Importer les données de S&P 500 (^GSPC) à partir de Yahoodata= fetch(c,'^GSPC','Close','Jan 01 12','Apr 01 13');

%% Fermer la connexionclose(c)

L'instruction input(…)L'instruction input(…)

clear; clc %%Choisir un titresymbole=input('Tapez un symbole :','s'); %% Connexion à Yahooc = yahoo; isconnection(c); get(c); % Importer les données à partir de Yahoodata= fetch(c,symbole,'Close','Jan 01 12','Apr 01 13'); %% Fermer la connexionclose(c)

Tracer un grahiqueTracer un grahique

%% Tracer un grahiquefigure; plot(data(:,1),data(:,2)); dateaxis('x',2);xlabel('Date'); ylabel('Valeur');title(symbole);grid

Boucle: Chargement de données de YahooBoucle: Chargement de données de Yahoo

clear; clc

% InitialisationClosingPrice = cell(1,3);j=1;

%% Connexion à Yahooc = yahoo; isconnection(c); get(c);

% Importer les données à partir de Yahoo

for i = {'MSFT', 'AAPL', 'IBM', '^GSPC'}; ClosingPrice{j} = fetch(c,i,'Close','Jan 01 12','Apr 01 13');

j=j+1;end

%% Fermer la connexionclose(c)

Afficher plusieurs graphiques Afficher plusieurs graphiques (subplot)(subplot)

% initialisationMSFT= ClosingPrice{1} ;APL= ClosingPrice{2} ;IBM= ClosingPrice{3};GSPC= ClosingPrice{4};

%% afficher plusieurs graphiques

subplot(2,2,1) % graphique 1plot(MSFT(:,2))title('MSFT')

subplot(2,2,2) % graphique 2plot(APL(:,2))title('APL')

subplot(2,2,3), % graphique 3plot(IBM(:,2))title('IBM')

subplot(2,2,4) % graphique 4plot(GSPC(:,2))title('GSPC')

Graphiques - séries Graphiques - séries chronologiqueschronologiques

% Tracer un graphique des séries chronologiquest=fints(MSFT(:,1),[MSFT(:,2), APL(:,2), IBM(:,2), GSPC(:,2)]);chartfts(t)

Formats d’affichage des réelsFormats d’affichage des réels

%Par défaut le format est le format court à 5 chiffrespians =3.1416

format long %format long a 15 chiffrespians =3.14159265358979

format short e %format court à 5 chiffres avec notation en virgule flottantepi^3ans =3.1006e+01

format % retour au format d’affichage par défautclear

ConclusionConclusion

Matlab est un langage de programmation très simple◦ un monde de fonctions ◦ ne nécessite pas une formation spéciale pour le

maîtriser

Documentation complète ◦ doc◦ help◦ demo

SupportSupportSalle des marchés

Support

Abdennabi KhiariCoordonnateurSalle des MarchésFaculté d'administrationUniversité de SherbrookeTéléphone : (819) 821-8000 # 65262abdennabi.khiari@usherbrooke.ca

www.USherbrooke.ca/salledemarche

Conditions d'utilisation Conditions d'utilisation des ressources des ressources électroniquesélectroniques

Conditions d'utilisation des Conditions d'utilisation des ressources électroniquesressources électroniques

L'accès à ces ressources électroniques est réservé aux utilisateurs autorisés. Ces personnes comprennent les étudiantes et étudiants inscrits ainsi que le personnel actuel de l'Université de Sherbrooke et les membres de son corps professoral.

Les utilisateurs autorisés ne peuvent transmettre, diffuser ou rendre disponibles d'autre façon à des personnes ou à des entités non autorisées le contenu des ressources faisant l'objet d'une licence, quel que soit le moyen employé.

Il est en outre interdit de recourir à des robots ou à des agents intelligents pour télécharger ou rassembler systématiquement des éléments de ces produits.

L'utilisation des ressources électroniques de la Salle des marchés et de l'Université de Sherbrooke à des fins commerciales est interdite.