exane manipulation de données financières sous matlab exane bnp paribas trading & arbitrage...
TRANSCRIPT
Exa
ne
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
Trading & Arbitrage
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
Trading & Arbitrage
Objectif:Une approche métier au service du développement d’outils internes
Opérationnel
Prototypage
Données Résultats
Déploiement
Validation
Trading & Arbitrage Quels types de données ?
Temporels et multivariés
Explicitement rythmés
quotidiens Entre chocs
Evénementiels
Implicitement rythmés
Trading & Arbitrage
Types de données, types d’analyses, sources de données
Ensemblede cours cours events
informationsmixtes
Portefeuille
Diversification de portefeuille
Analyse technique
Scanning systématique
Pricing,volatilité, etc
Covariances, bêta
Marketimpact, etc
stocks
Bloomberg,Reuters,DataStream, FacSet, etc…
tradesEuronext database
Trading & Arbitrage 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'
Trading & Arbitrage
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, …)
Trading & Arbitrage 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
entrées sorties
état
Trading & Arbitrage Vers une architecture optimale des traitements
Chaînage
Séparation claire des analyses
Travail collaboratif / maintenabilité
Backtesting naturel
lecture
Travail sur les prix
Decoupagequotidien des
volumes
Travail surles volumes
Conjonction prix -
volumes
affichage
écriture
Trading & Arbitrage Documenter pour échanger
documentation utilisateur m2html documentation technique OCAMAWEB
Trading & Arbitrage
Exemples didactiques
Exemples de manipulations de données financières
Screening
Simulation de données réalistes
Trading & Arbitrage
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
Trading & Arbitrage
Screening: principe
Extraction des données financières Calcul des indicateurs Paramétrage,
tracé des charts
Trading & Arbitrage
Screening: rendu
Chart seul Document de synthèse (pdf)
Trading & Arbitrage
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
Trading & Arbitrage
Simulation de données réalistes : principe
Prétraitements (stationnarisation)
Espace de représentation(dans lequel les données sont
indépendantes)copules non paramétriques
Simulation de données indépendantes
Inversion des copules
Modèle de corrélations
Application des corrélations
Trading & Arbitrage
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)
Trading & Arbitrage
MATLAB: un socle unique pour de multiples applications
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
1/3
Trading & Arbitrage
MATLAB: un socle unique pour de multiples applications
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
2/3
Trading & Arbitrage
MATLAB: un socle unique pour de multiples applications
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
3/3
Trading & Arbitrage
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
Trading & Arbitrage
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 recherches Chap 5; http://www.cmla.ens-cachan.fr/Utilisateurs/lacaille/hdr/hdr.pdf
J.P. Morrison, Flow-Based Programming: A New Approach to Application Developmenthttp://www.jpaulmorrison.com/fbp/
Trading & Arbitrage
Manipulation de données financières avec MATLAB