Я хочу использовать функцию maxDrawdown
в пакете PerformanceAnalytics для вычисления максимальной просадки, но обнаруживаю, что она всегда возвращает ноль (а это не так).Почему функция maxDrawdown в пакете PerformanceAnalytics возвращает неверный результат?
Я использую maxDrawdown
нравится эта
> maxDrawdown(my.xts)
[1] 0
Мой XTS, как это:
> my.xts
value
2004-06-16 4.150
2004-06-17 4.225
2004-06-18 4.025
2004-06-21 4.000
2004-06-23 4.425
2004-06-24 4.450
2004-06-25 4.400
2004-06-28 4.325
2004-06-29 4.325
2004-06-30 4.300
2004-07-02 4.350
2004-07-06 4.400
2004-07-07 4.275
2004-07-08 4.100
2004-07-09 4.075
2004-07-12 4.000
2004-07-13 4.025
2004-07-14 3.800
2004-07-15 3.675
2004-07-16 3.700
ул (my.xts) возвращает
An ‘xts’ object on 2004-06-16/2004-07-16 containing:
Data: num [1:20, 1] 4.15 4.22 4.03 4 4.42 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr "value"
Indexed by objects of class: [POSIXct,POSIXt] TZ:-
xts Attributes:--
NULL
И, я пишу функцию уточнить
my.mmd <- function(v) {
max(1 - v/cummax(v))
}
Результаты не равны нулю.
> my.mmd(my.xts$value)
[1] 0.1741573
Почему maxDrawdown возвращает 0?
Я строю корпус, используя http://www.investopedia.com/terms/m/maximum-drawdown-mdd.asp.
other.xts <- xts(c(500,750,400,600,350, 800), Sys.Date() + 1:6)
maxDrawdown(other.xts) # --> here still returns 0!
my.mmd(other.xts) # -> my function returns 0.5333333, seems right.
Возможно, я использую функцию maxDrawdown
неправильно! Но я снова просматриваю документ() и до сих пор не могу его получить. Мне что-то не хватает в использовании этой функции?
Там нет 'maxDrawdown' в 'xts'. Вы имеете в виду 'maxDrawdown' в' PerformanceAnalytics'? –
извините .. да, я имею в виду PerformanceAnalytics. – hliu
Использование 'data (edhec)' и 'x <- edhec [,« Funds of Funds »]', 'maxDrawdown (x)' дает '0.2059145', а ваша функция (' my.mmd (x) ') дает' 2.416092'. –