Ich kann nicht PerformanceAnalytics mit meiner Zoo-Serie arbeiten und ich habe beschlossen, mein eigenes Skript zu schreiben.R, bitte überprüfen Sie meine längste Drawdowns Funktion
Es soll cummax (Equity) -Qualität als Eingabe erhalten, wenn Sie die längsten Drawdowns berechnen möchten. Es gibt auch den maximalen Drawdown-Wert für diese Zeiträume.
korrigierte Version ist unten.
Bitte, Könnten Sie mein Skript überprüfen. Es funktioniert nicht wie erwartet. Einige maxDD sind Null. Ich hoffe, dass es für andere Menschen nützlich sein kann. Ich habe viele Nachrichten in Foren gesehen, wo Leute nach so etwas suchen.
Ich habe es mit Richie Vorschläge korrigiert:
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)
}
ich auch ein Problem behoben haben, die mich daran gehindert, eine geordnete Antwort zu bekommen, weil ich Index wurde writting (DD []) anstelle von Index (DD) []
Jetzt scheint es zu funktionieren, aber ich bin mir nicht sicher.
zu Joshua: An den meine Daten Anfang war Zoo mit chron Index Jetzt habe ich es transformiert mit posixct Index XTS,
"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
...
noch funktioniert nicht mit performanceAnalytics, obwohl ich grafisch darstellen kann es und machen Sie eigene Berechnungen. Drawdown (myData) gibt eine XTS-Serie mit allen Datenwerten NaN. Ich habe findDrawdown-Code gesucht und es unterscheidet sich von meinem, weil es relative Drawdowns anstelle von absoluten Drawdowns misst.
Wie auch immer, ich hoffe, dass mein Skript für jemanden nützlich sein könnte.
Das PerformanceAnalytics Paket wird von vielen Profis auf der ganzen Welt verwendet, so würde ich Sie dringend ermutigen, zu untersuchen, was mit Ihren Daten sind falsch, dass sie von der Arbeit mit PerformanceAnalytics verhindert ... anstatt das Rad neu zu erfinden und zu fragen andere, um deine Arbeit zu reparieren. –
@Joshua, harsch. Hör auf Dirks Beiträge zu lesen, ich denke es kommt zu dir: P –
Mit performanceAnalytics bekomme ich "Die Daten können nicht in eine Zeitreihe umgewandelt werden", wenn ich meine Daten als zoo oder xts, chron oder POSIXct nutze. Ich habe gegoogelt und viele Leute haben das gleiche Problem. Tatsächlich funktioniert performanceAnalytics für mich nicht einmal mit eigenen Beispielen. – skan