1. Apprendre
  2. /
  3. Cours
  4. /
  5. Négociation financière en R

Connected

Exercice

Programmez votre propre indicateur - II

Le RSI est correct, mais il est un peu dépassé comme indicateur. Dans cet exercice, vous allez coder une version simplifiée d'un autre indicateur à partir de zéro. Cet indicateur s'appelle le David Varadi Oscillator (DVO), créé par David Varadi, un directeur de la recherche quantitative.

L'objectif de cet oscillateur ressemble à celui du RSI : repérer des occasions d'acheter lors d'un creux temporaire et de vendre dans une hausse temporaire. En plus des données de marché obligatoires, une fonction d'oscillateur prend deux périodes de rétrospection (lookback).

D'abord, la fonction calcule un ratio entre le prix de clôture et la moyenne des prix le plus haut et le plus bas. Ensuite, elle applique une SMA à cette quantité pour atténuer le bruit, généralement sur une très courte période, comme deux jours. Enfin, elle utilise la fonction runPercentRank() pour obtenir un classement en pourcentage glissant de ce ratio moyen, puis le multiplie par 100 pour le convertir en une valeur de 0 à 100.

Pensez à la façon dont les élèves reçoivent un rang centile après un test standardisé (par exemple, si une élève obtient 800 à la section de mathématiques, elle pourrait se situer au 95e centile à l'échelle nationale). runPercentRank() fait la même chose, mais au fil du temps. Cet indicateur fournit le rang de la dernière observation dans le contexte d'une période passée que l'utilisateur précise. Par exemple, si une série a une valeur runPercentRank de 0,90 avec une période de rétrospection de 126, cela signifie qu'elle se situe au 90e centile lorsqu'on la compare à elle-même et aux 125 observations précédentes.

Votre tâche est d'implanter cet indicateur et de l'enregistrer sous le nom DVO. Une partie du code nécessaire est fournie, et les progiciels quantstrat, TTR et quantmod sont chargés dans votre espace de travail.

Instructions

100 XP
  • Créez et nommez une fonction, DVO, pour l'indicateur décrit ci-dessus. Les trois paramètres de votre fonction seront HLC, navg (par défaut : 2) et percentlookback (par défaut : 126).
  • Le ratio de la clôture (Cl()) de HLC divisé par la moyenne des prix le plus haut (Hi()) et le plus bas (Lo()) est calculé pour vous.
  • Utilisez SMA() pour implanter une moyenne mobile de ce ratio, paramétrée par l'argument navg. Enregistrez le résultat sous avgratio.
  • Utilisez runPercentRank() pour implanter un système de classement en pourcentage pour avgratio.