Licence de Mathématiques Université d’Angers Année 2014-2015 TP 2 LOGICIELS STATISTIQUES Programmation avec R Dans ce TP, en utilisant quelques notions de programmation, on s’intéresse à construire des algorithmes de mélanges pour "jouer" en bourse. Cela dit, je ne vous encourage pas à miser votre argent en bourse avec la simple connaissance de ce TP ! Exercices préliminaires sur les cotations 1. Télécharger des cotations annuelles de plusieurs cours d’actions (par exemple sur le site abcbourse.com) sous la forme de fichiers texte. 2. Tracer l’évolution du cours d’une action sur une année et calculer le rendement journalier (en fonction du cours à l’ouverture et à la fermeture). 3. Comparer les rendements journaliers de plusieurs actions (graphiques). 4. Calculer le rendement d’un capital initial K investi tous les matins dans un cours et vendu tous les soirs. Distinguer deux cas : • le cas simple où l’on investi K tous les jours (indépendamment des résultats) • le cas où la somme de la veille est réinvesti le lendemain dans sa totalité. 5. Comparer le rendement de plusieurs cotations. 6. On veut combiner deux actions aucours du temps. Calculer le rendement idéal (impossible en pratique) d’un capital K initial où chaque matin, on choisit la meilleure action. 7. Même question avec 10 actions. La question à laquelle nous allons essayer de répondre est la suivante : peut-on construire un algorithme permettant de s’approcher de la stratégie idéale proposée ci-dessus ? Algorithmes d’agrégation On considère le jeu séquentiel suivant. A chaque instant t, on dispose de M actions que l’on peut combiner. A chaque action correspond un gain (ou une perte), noté ak,t , où k = 1, . . . , M . On veut combiner les M actions de manière à maximiser le gain cumulé au cours du temps. Pour cela, à chaque instant t, on propose un vecteur de poids, noté wt = (w1,t , . . . , wM,t ), construit à partir des performances du passé de chaque action. Puis, la suite PMde gains à l’instant t, notée ak,t , k = 1, . . . , M est révélée. On obtient une récompense g(t) = k=1 wk,t ak,t . Le but PT est donc de construire une suite de poids wt qui maximise la quantité t=1 g(t). I. Algorithme de vote majoritaire Cet algorithme reprend le principe général décrit ci-dessus. On initialise le vecteur des poids w1 := (1/M, . . . , 1/M ). Puis, à chaque étape t, on met à jour le vecteur de poids de la manière suivante : wk,t si ak,t < 0 2 wk,t+1 = wk,t si ak,t ≥ 0 PM Enfin, on normalise le vecteur de poids en posant wt+1 ← wt+1 / k=1 wk,t+1 . 1. Expliquer le principe général de l’algorithme. Calculer le vecteur wT . 2. Écrire une fonction wmvote(x,y) qui, à partir de deux séries de cotations x et y, renvoie : 1 • le gain cumulée de l’algorithme. • la suite des poids alloués à chaque action au cours du temps. • le rendement de chaque action ainsi que celui de la stratégie optimale de la première partie du TP. 3. Tracer l’évolution des poids sur un graphique. 4. Généraliser la fonction précédente à un nombre M d’actions. II. Algorithme à poids exponentiel Cet algorithme reprend le principe du vote majoritaire. L’initialisation est identique mais cette fois-ci, à chaque étape t, on met à jour le vecteur de poids de la manière suivante : wk,t+1 = eλak,t wk,t , où λ > 0 est un paramètre PM de température à calibrer. Enfin, on normalise le vecteur de poids en posant wt+1 ← wt+1 / k=1 wk,t+1 . 1. Comparer la mise à jour du vecteur des poids par rapport à l’algorithme précédent. Comment s’écrit le vecteur des poids wt ? 2. Ecrire une fonction expWAF(x,y,λ) qui, à partir de deux séries de cotations x et y, renvoie : • le gain cumulée de l’algorithme. • la suite des poids alloués à chaque action aucours du temps. • le gain de chaque action ainsi que celui de la stratégie optimale calculée précedamment. 3. Tracer l’évolution des poids sur un graphique. Que se passe-t’il lorsque λ varie ? 4. Généraliser la fonction précédente au cas de M actions. 2
© Copyright 2024