230 likes | 370 Views
Manipulation de données financières sous MATLAB Exane BNP Paribas Trading & Arbitrage Research nov 2005. Charles-Albert Lehalle, Nicolas Bertrand {charles-albert.lehalle|nicolas.bertrand}@exane.com. Manipulation de données financières avec MATLAB.
E N D
Manipulation de données financières sous MATLABExane BNP ParibasTrading & Arbitrage Researchnov 2005 Charles-Albert Lehalle, Nicolas Bertrand {charles-albert.lehalle|nicolas.bertrand}@exane.com
Manipulation de données financières avec MATLAB • Prise en compte de la spécificité des données financières • Prise en compte de la spécificité des traitements financiers • Importance de la documentation • Exemples didactiques de manipulations de données financières • Screening • Simulation de données réalistes • Bilan • Un socle unique pour de nombreuses applications • Atouts traditionnels de MATLAB
Objectif:Une approche métier au service du développement d’outils internes Opérationnel Résultats Données Déploiement Validation Prototypage
Quels types de données ? Evénementiels • Temporels et multivariés Implicitement rythmés Explicitement rythmés quotidiens Entre chocs
Analyse technique Pricing,volatilité, etc Diversification de portefeuille Portefeuille events Scanning systématique Covariances, bêta Types de données, types d’analyses, sources de données • Bloomberg,Reuters,DataStream, FacSet, etc… Ensemblede cours cours informationsmixtes Marketimpact, etc Euronext database trades stocks
Eléments d'implémentation: le signal financier • Un type MATLAB polymorphe: struct • Un signal = • Un titre • Une série de date • Une série de données (volume, open, close, high, low) au même pas d'échantillonnage • Les noms de ces variables • + des informations optionnelles • En MATLAB: • >> data = struct( 'title', 'le titre', 'date', vecteur-colonne, ...)value: [20732x8 double]date: [20732x1 double]names: {1x8 cell}title: ‘BN FP Equity'
Quels types de traitements ? • Au fil de l’eau (filtrage) pour produire • Pricing (titre / portefeuille) • Des alarmes (risque / gain associé à une configuration, …) • Des caractéristiques (formes, configurations, …) • Par « batchs » pour produire • Calcul d’allocations • Reporting (PnL, VaR) • Des estimateurs du comportement du marché (corrélations, modèles, …) • Des anticipations court terme (probabilités de retournement, …)
Prototype unique pour tout les traitements • Entrées / sorties : listes de signaux • Mode de sollicitation (initialisation, détection, estimation, bootstrap, etc) • Etat • Il s'agit d'une fonction MATLAB dont le prototype est de la forme • Function [outputs, state] = analyse( mode, state, inputs, ...) solicitation sorties entrées état
Vers une architecture optimale des traitements • Chaînage • Séparation claire des analyses • Travail collaboratif / maintenabilité • Backtesting naturel affichage Conjonction prix - volumes Travail sur les prix écriture lecture Decoupagequotidien des volumes Travail surles volumes
Documenter pour échanger • documentation utilisateur m2html documentation technique OCAMAWEB
Exemples didactiques • Exemples de manipulations de données financières • Screening • Simulation de données réalistes
Screening Objectifs : • Screener automatiquement des données financières et des indicateurs de marché • Sous forme de charts paramétrables et de documents de synthèse Moyens : • Accès aux données • Calcul des indicateurs (bandes de Bollinger, moyennes mobiles, performances, etc.) • Construction des charts
Screening: principe Extraction des données financières Calcul des indicateurs Paramétrage,tracé des charts
Screening: rendu • Chart seul • Document de synthèse (pdf)
Simulation de données réalistes • Objectifs : • A partir d’historiques de données (courbes, certaines quotidiennes, d’autres mensuelles) • Simuler des « années réalistes » concordant avec les caractéristiques statistiques des courbes réelles • Conserver les corrélations (et autre moments) entre les courbes • Moyen : • Modélisation de la structure des données avec des copules (non paramétriques) • Simulation par Monte Carlo
Simulation de données réalistes : principe Simulation de données indépendantes Inversion des copules Espace de représentation(dans lequel les données sont indépendantes)copules non paramétriques Application des corrélations Prétraitements (stationnarisation) Modèle de corrélations
Déploiement : compilation EXCEL COM • Déploiement sur les postes utilisateurs via Excel COM/Builder • Entrées : les données par DataStream • Sorties : 1000 simulations d’années plausibles • Exploitation: Distribution de l’exposition au risque (VaR) u v w v u w
MATLAB: un socle unique pour de multiples applications 1/3 • Asset Liability Management Families • Real Estate (geographical statistics) Statistics • Fixed Income (sensibility, …, yield curves) Statistics • Equity (volatility, correlations, Markovitz, …) Statistics, Optimization • Credit (structural models –Merton-, copula, …) Finance, Statistics • Diversified Portfolio (Markovitz, Black & Litterman, …) Optimization, Control • Risk Management • Value at Risk (correlations, copula) Statistics • Stress testing (extreme values, …) Base, Statistics • Insurance • Population dynamics Statistics, Base • Fixed Income & Currency Derivatives • Yield curves (Vasicek, …) Statistics • Swaps Finance • Fixed income options Finance
MATLAB: un socle unique pour de multiples applications 2/3 • Equity Derivatives Families • Closed form models (B&S, …) Finance • Simulations (multinomial trees, monte carlo, finite differences) Optimization, Stats • Sensibilities (greeks) Finance, Optimization • Credit Derivatives • Structural models Finance, Optimization • Reduced form models (empirical probabilities of default, …) Optimization, Statistics • Copula Statistics • Trading & Arbitrage • Technical analysis Finance, Statistics, Signal Processing • Arbitrage Statistics, Base, Optimization • Trading Statistics, Control, Signal Processing, Optimization
MATLAB: un socle unique pour de multiples applications 3/3 • Math and Optimization • Optimization Toolbox, Symbolic Math (Extended Symbolic Math), [Partial Differential Equation], Genetic Algorithm and Direct Search Toolbox • Statistics and Data Analysis • Statistics, Neural Network, Curve Fitting, Spline, [Model-Based Calibration] • Control System Design and Analysis • Control System, System Identification, [Fuzzy Logic], Robust Control Model, Predictive Control • Signal Processing and Communications • Signal Processing, [Communications], [Filter Design], [Filter Design HDL Coder], Wavelet, Fixed-Point, [RF] • Financial Modeling and Analysis • Financial, Financial Derivatives, GARCH, Financial Time Series, Datafeed, Fixed-Income
Bilan • Pré requis : un format de stockage de données et un format de manipulation de données, • Les atouts de MATLAB • Un socle unique pour de nombreuses applications (réduction des coûts) • Maîtriser l’enchaînement de plusieurs méthodologies (approche « grey box », contrôle du risque de modèle) • Prototypage rapide (script, graphiques, toolboxes) • Accès aux données (en évolution) • Peuvent être mis efficacement à disposition de la finance quantitative • Calculs en lignes + calculs en batch sur de gros volumes de données • Mise en place rapide d’applications pour validation / backtesting • Interactions avec les providers de données financières (actx / dde) et les legacy systems
Références • Documentation technique de programmesLiterate programming / OCAMAWEB http://www.literateprogramming.com/ftools.html • Séquencement de calculsJérôme Lacaille, Projet d’habilitation à diriger des recherchesChap 5; http://www.cmla.ens-cachan.fr/Utilisateurs/lacaille/hdr/hdr.pdfJ.P. Morrison, Flow-Based Programming: A New Approach to Application Developmenthttp://www.jpaulmorrison.com/fbp/