2010-08-25 8 views
1

Comment puis-je obtenir la durée des tirages dans une série de zoo? les rabattements peuvent être calculés avec cummax (mydata) -mydata. Chaque fois que cette valeur est supérieure à zéro, j'ai un drawdown. Le Drawdown est la mesure de la baisse par rapport à un sommet historique (maximum). Il dure jusqu'à ce que cette valeur soit à nouveau atteinte.Durée du tirage

+0

Bonjour Quand j'utilise findDrawdowns avec ma série de zoo, il est dit: erreur si (thisSign == priorSign) {: valeur manquante en cas de besoin VRAI/FAUX Comment puis-je résoudre? J'ai essayé avec chron et POSIXct, et en convertissant en timeseries mais ça ne marche pas. – skan

Répondre

0

Le package PerformanceAnalyticshas several functions pour effectuer cette opération.

> library(PerformanceAnalytics) 
> data(edhec) 
> dd <- findDrawdowns(edhec[,"Funds of Funds", drop=FALSE]) 
> dd$length 
[1] 3 3 6 5 4 11 14 5 2 10 2 6 3 2 4 9 2 2 13 8 5 5 4 2 7 
[26] 6 11 3 2 23 

Comme une note de côté, si vous avez deux dates dans une série chronologique et besoin de connaître le temps entre eux, il suffit d'utiliser diff. Vous pouvez également utiliser the lubridate package.

+0

Je suis désolé de poster mes commentaires comme réponses. J'ai utilisé les drawdowns de performanceAnalytics mais cela ne fonctionne pas pour moi, même avec les exemples de données fournis. "Erreur en checkData (R): Les données ne peuvent pas être converties en séries chronologiques Si vous essayez de transmettre des noms d'un objet de données avec une colonne, utilisez le format 'data [lignes, colonnes, drop = FALSE] '. Les noms de fichiers doivent avoir des formats de date standard, tels que' 1985-03-15 '. " De toute façon, comment puis-je calculer les durées de rabattement sans utiliser ce paquet? merci – skan

+0

Toute solution avec rle? – skan