Achats/ventes en bourse - IGI3006 - Michel Couprie



Documents pareils
introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Architecture des Systèmes d Information Architecture des Systèmes d Information

Programmation linéaire

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Recherche dans un tableau

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

= constante et cette constante est a.

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Par combien de zéros se termine N!?

Jean-Philippe Préaux

Plan. 5 Actualisation. 7 Investissement. 2 Calcul du taux d intérêt 3 Taux équivalent 4 Placement à versements fixes.

Menu INVEST STORE. COMMENT VOUS CONNECTER SUR VOTRE CAEL AVEC OPTION BOURSE : Adresse du site

Chapitre 3. Les distributions à deux variables

Listes de fournitures du secondaire pour la rentrée

Correction du baccalauréat ES/L Métropole 20 juin 2014

Définitions. Numéro à préciser. (Durée : )

Représentation des Nombres

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Les deux points les plus proches

Chapitre 7. Récurrences

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Commun à tous les candidats

Rappels sur les suites - Algorithme

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Le suivi de la qualité. Méthode MSP : généralités

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercice du cours Gestion Financière à Court Terme : «Analyse d un reverse convertible»

La fonction exponentielle

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Manuel : Comment faire sa newsletter

KEYPLAN. Le bon plan pour faire avancer votre argent

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Plus courts chemins, programmation dynamique

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

G.P. DNS02 Septembre Réfraction...1 I.Préliminaires...1 II.Première partie...1 III.Deuxième partie...3. Réfraction

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

TUTORIAL REUTERS. Utilisation de l'utilitaire de recherche Reuters

Master IMEA 1 Calcul Stochastique et Finance Feuille de T.D. n o 1

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

1 Savoirs fondamentaux

Algorithme. Table des matières

Nombre de marches Nombre de facons de les monter

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Manuel Utilisateur. Module CAISSE

Compression Compression par dictionnaires

MIS 102 Initiation à l Informatique

TD n o 8 - Domain Name System (DNS)

Utilisez Toucan portable pour vos sauvegardes

Continuité et dérivabilité d une fonction

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Saisie des chauffe-eau thermodynamiques à compression électrique

Hauts rendements, convivialité et une sécurité par excellence : Voici OptionWeb

Correction du baccalauréat STMG Polynésie 17 juin 2014

Chapitre 7. Circuits Magnétiques et Inductance. 7.1 Introduction Production d un champ magnétique

Thèmes et situations : Achat-Vente. Fiche pédagogique

BULLETIN QUESTIONS-RÉPONSES PROGRAMME D ÉQUITÉ SALARIALE

3 Approximation de solutions d équations

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Programmation linéaire

Transmission d informations sur le réseau électrique

Algorithmique I. Algorithmique I p.1/??

du petit investisseur belge s est profondément modifiée. L éventail des choix s est élargi et les coûts ont fortement

Application 1- VBA : Test de comportements d'investissements

ANNUITES. Les annuités définissent une suite de versements identiques ou non effectués à intervalles de temps égaux. -annuités non constantes

EURONEXT.LIFFE. Options et Futures : usage et attitudes des investisseurs individuels. Principaux résultats. Département Finance EURONEXT.

Devenez expert. en trading d'or. Tout ce qu'il faut savoir pour trader l'or

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

ÉPREUVE COMMUNE DE TIPE Partie D

Licence Sciences et Technologies Examen janvier 2010

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Etude des propriétés empiriques du lasso par simulations

FONCTION DE DEMANDE : REVENU ET PRIX

Poker. A rendre pour le 25 avril

Cette perte concerne exclusivement la gestion en compte propre de la CNCE, c est-à-dire une activité indépendante de sa trésorerie.

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Intégration et probabilités TD1 Espaces mesurés Corrigé

Rapport de certification

BIND : installer un serveur DNS

Formation 2 mois. Trader les Futures par les carnets d ordres :

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Exercice 1. Partie 1. Questions

Les indices à surplus constant

Théorie des sondages : cours 5

CHAPITRE VIII : Les circuits avec résistances ohmiques

Études et expérimentations sur matériel Wi-Fi (802.11b et g)

Licence à distance Chapitre V : Equations différentielles. Méthodes numériques à un pas.

Résolution de systèmes linéaires par des méthodes directes

TD1 PROPAGATION DANS UN MILIEU PRESENTANT UN GRADIENT D'INDICE

Formation 1 semaine.

SECURIDAY 2012 Pro Edition

(Exemple ici de calcul pour une Ducati 748 biposto, et également pour un S2R1000, équipé d un disque acier en fond de cloche, et ressorts d origine)

Transcription:

Achats/ventes en bourse - IGI00 - Michel Couprie NOTE:LessectionsA,B,C,D,Efontpartiedel énoncédonnéauxétudiants,lessections suivantes contiennent des indications ou des solutions. A. Le problème Une société spécialisée en informatique financière est chargée d évaluer les opérateurs de marché (traders). Pour cela elle dispose, sur un certain nombre n de jours passés, de la valeur de certaines actions (on considèrera seulement une action dans la suite). On note T(i) la valeur de l action au jour i, 1 i n. On suppose ainsi, pour simplifier, que la valeur de l action ne change pas durant un jour. La période de temps considérée peut varier selon la précision voulue (heure, minute, seconde...). Si cette action a été achetée au jour i et revendue au jour j, avec 1 i j n, le profit réalisé est égal à T(j) T(i). On cherche à évaluer le profit maximal qui aurait pu être réalisté, en une seule opération d achat/vente, durant cette même période. On pourra alors comparer ce profit avec celui effectivement réalisé par un trader sur la même période, et ainsi évaluer ses performances. Par exemple, considérons le tableau suivant retraçant une petite partie de l historique de notre action : i 1 7 8 T(i) 7 1 Quelles sont les dates d achat et de vente permettant d obtenir le profit maximal? La société disposant d un très grand nombre de données, il est utile de disposer d un algorithme efficace pour évaluer le profit maximal pour n importe quelle période. B. Un algorithme naïf Proposer un algorithme naïf pour résoudre ce problème. Quelle est sa complexité de calcul? 1

C. Un algorithme en O(nlogn) Proposer un algorithme pour résoudre ce problème, basé sur le principe diviser pour régner, et dont la complexité de calcul est en O(nlogn) (on supposera pour simplifier que n est une puissance de ). D. Un algorithme en O(n) Proposer un algorithme pour résoudre ce problème, basé sur le principe diviser pour régner, et dont la complexité de calcul est en O(n). E. Un autre algorithme en O(n) Proposer un second algorithme pour résoudre ce problème, dont la complexité de calcul est en O(n), effectuant un seul balayage du tableau T. A. Indications et solutions Une expression graphique (courbe de l évolution du cours de l action) des données du problème peut aider. On peut noter que la condition i j (la date d achat précède celle de la vente) est essentielle, sans celle-ci la solution serait triviale et reviendrait à trouver le min et le max du tableau. B. Algorithme naïf 1 Algorithme 1 : TraderNaif Données : T[],n Résultat : p max,a,v p max = 0; a = 1; v = 1; pour i de 1 à n faire pour j de i+1 à n faire si T[j] T[i] > p max alors p max = T[j] T[i]; a = i; v = j;

Sa complexité est en O(n ). C. Algorithme basé sur diviser pour régner en O(nlogn) Comme on le sait, la méthode diviser pour régner consiste à résoudre le problème en trois phases : diviser les données en paquets appliquer la méthode de résolution à chacun des paquets, combiner les résultats des résolutions partielles. On applique cette méthode récursivement, sauf quand la taille des données devient trop petite, auquel cas la solution est triviale. L algorithme suivant ne marche pas mais constitue une tentative intéressante car correcte dans sa structure : 1 7 Algorithme : TraderLogLinF Données : T[],i,j Résultat : a,v,p si j = i alors a = i; v = j; p = 0; sinon TraderLogLinF(T,i, i+j,a 1,v 1,p 1 ); TraderLogLinF(T, i+j +1,j,a,v,p ); p = p 1 ; v = v 1 ; a = a 1 ; si p > p alors p = p ; v = v ; a = a ; si T[v ] T[a 1 ] > p alors p = T[v ] T[a 1 ]; v = v ; a = a 1 ; Le problème vient du dernier cas (v,a 1 ), en effet ces positions ne correspondent pas forcément au max et au min, respectivement, des deux sous-tableaux. Pour corriger cela, une première idée est d appeler une fonction argmax et une fonction argmin qui calculent respectivement l indice du max et celui du min d un tableau :

Algorithme : TraderLogLin Données : T[],i,j Résultat : a,v,p 1 si j = i alors a = i; v = j; p = 0; sinon TraderLogLin(T,i, i+j,a 1,v 1,p 1 ); TraderLogLin(T, i+j +1,j,a,v,p ); m = argmin(t[i,..., i+j ]); M = argmax(t[ i+j +1,...,j]); 7 p = p 1 ; v = v 1 ; a = a 1 ; 8 si p > p alors p = p ; v = v ; a = a ; 9 si T[M] T[m] > p alors p = T[M] T[m]; v = M ; a = m; Évaluons la complexité de cet algorithme. Si C(n) est le coût de calcul pour des données de taille n, on peut exprimer C(n) par l équation de récurrence suivante : C(n) = C( n )+bn+c, C(1) = 1 (1) Pour résoudre cette équation, on supposera tout d abord que n = k (autrement dit k = log n). Développons la partie de droite de l équation : C( k ) = C( k 1 )+b k +c = [C( k )+b k 1 +c]+b k +c = [[C( k )+b k +c]+b k 1 +c]+b k +c =... = k +1+kb k +c[ k 1 + k +...+1] = n+1+bnlog n+cn d où une complexité en O(nlogn). D. Algorithme basé sur diviser pour régner en O(n) Pour obtenir une complexité moindre, on peut essayer d éliminer les calculs de argmin et de argmax de la recombinaison en les incluant dans le calcul récursif. Pour cela, on rajoute deux paramètres de sortie m et M :

1 7 8 9 Algorithme : TraderLin Données : T[],i,j Résultat : a,v,m,m,p si j = i alors a = i; v = i; m = i; M = i; sinon TraderLin(T,i, i+j,a 1,v 1,m 1,M 1,p 1 ); TraderLin(T, i+j +1,j,a,v,m,M,p ); si T[m 1 ] T[m ] alors m = m 1 ; sinon m = m ; si T[M 1 ] T[M ] alors M = M 1 ; sinon M = M ; p = p 1 ; v = v 1 ; a = a 1 ; si p > p alors p = p ; v = v ; a = a ; si T[M ] T[m 1 ] > p alors p = T[M ] T[m 1 ]; v = M ; a = m 1 ; Cette fois-ci, l équation de récurrence est la suivante : C(n) = C( n )+c, C(1) = 1 () En la résolvant de manière similaire à la précédente, on obtient : C(n) = n+1+cn d où une complexité en O(n). C. Algorithme linéaire en un balayage Enfin, voici un autre algorithme linéaire en un seul balayage du tableau T. Comme dans les algorithmes précédents, a représente la date d achat et v la date de vente trouvées, permettant de réaliser le profit maximum. On utilise de plus les variables suivantes : i représente la dernière date d achat envisagée, j représente la dernière date de vente envisagée, p est le profit correspondant aux dates i et j, p max est le profit maximum trouvé jusqu ici (correspondant aux dates a et v).

1 Algorithme : TraderScan Données : T[],n Résultat : a,v a = 1; v = 1; i = 1; p = 0; p max = 0; pour j de à n faire si T[j] > T[i] alors p = T[j] T[i]; si p > p max alors p max = p; a = i; v = j; si T[j] < T[i] alors i = j; p = 0;