Je ne peux pas obtenir performanceAnalytics pour travailler avec ma série de zoo et j'ai décidé d'écrire mon propre script.R, s'il vous plaît vérifier ma plus longue Drawdowns fonction
Il est supposé obtenir l'égalité cummax (équité) en entrée si vous voulez calculer des Drawdowns de plus longs. Il donne également la valeur de prélèvement maximale sur ces périodes.
version corrigée est ci-dessous.
S'il vous plaît, Pourriez-vous vérifier mon script. Cela ne fonctionne pas comme prévu. Certains maxDD sont zéro. J'espère que cela peut être utile à d'autres personnes. J'ai vu beaucoup de messages sur des forums où les gens recherchent quelque chose comme ça.
Je l'ai corrigé des suggestions Richie:
findDD <- function(DD, n=5){
rr <- rle(sign(coredata(DD)))
lens <- rr$length
lens[!rr$value] <- 0
ll <- head(order(lens, decreasing=TRUE),n)
sumas <- cumsum(c(1,rr$length)) # I need to access the original lenghts
maxDD <- sapply(ll,FUN = function(x) max(window(DD,start=index(DD)[sumas[x]],end=index(DD)[sumas[x+1]-1])))
data.frame(start=index(DD)[sumas[ll]],end=index(DD)[sumas[ll+1]-1], length=(index(DD)[sumas[ll+1]-1]-index(DD)[sumas[ll]])+1, maxDD)
}
J'ai aussi corrigé un problème qui m'a empêché d'obtenir une réponse ordonnée parce que je index ecrivais (DD []) au lieu de l'indice (DD []
Maintenant, il semble fonctionner mais je ne suis pas sûr.
à Josué: Au début, mes données était zoo avec l'index de Chron Maintenant, je l'ai transformé à XTS avec un indice de posixct,
"2010-01-11 18:00:00" 9338.37028375963
"2010-01-11 18:15:00" 8086.45780960387
"2010-01-11 18:30:00" 7762.75622449016
"2010-01-11 18:45:00" 8358.3609798313
"2010-01-11 19:00:00" 8598.69695502083
"2010-01-11 19:15:00" 8568.56256494502
"2010-01-11 19:30:00" 8488.4281748692
...
ne fonctionne toujours pas avec performanceAnalytics, bien que je peux représenter graphiquement et faites des calculs par moi-même. Drawdown (myData) donne une série xts avec toutes ses valeurs de données NaN. J'ai regardé le code findDrawdown et c'est différent du mien car il mesure les abaissements relatifs au lieu des abaissements absolus.
Quoi qu'il en soit, j'espère que mon script pourrait être utile à quelqu'un.
Le paquet PerformanceAnalytics est utilisé par de nombreux professionnels du monde entier, donc je vous encourage vivement à enquêter sur ce qui ne va pas avec vos données qui l'empêche de travailler avec PerformanceAnalytics ... plutôt que de réinventer la roue et de demander d'autres pour réparer votre travail. –
@Joshua, Harsh. Arrêtez de lire les messages de Dirk, je pense que ça vous arrive: P –
Avec performanceAnalytics, j'obtiens "Les données ne peuvent pas être converties en séries chronologiques" si j'utilise mes données comme zoo ou xts, chron ou POSIXct. J'ai été googling et beaucoup de gens a le même problème. En fait, performanceAnalytics ne fonctionne pas pour moi même avec ses propres exemples. – skan