Matlab Atelier 3 : Modélisation financière avec MatLab Abdennabi Khiari Coordonnateur Salle des...
-
Upload
eudon-lelievre -
Category
Documents
-
view
108 -
download
1
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 # [email protected]
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 # [email protected]
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.