0

我被 R 弄湿了,在我当前的任务经过多次试验和错误之后,我仍然卡住了。我有股票行情的价格数据。我试图在我的数据中找到熊市,定义为价格数据点 <= 比早前点低 20%(但不是太早)。这是一个时间序列任务吗?我希望这不是太模糊;我仍在学习这些功能,所以这是我所知道的最好、最简洁的提问方式。

提前致谢..

4

2 回答 2

3

这是一个版本,它检测价格在某个回溯期(例如,60 天)内比先前价格小一定比例(例如,20%)的天数。

## Some prices
set.seed(321)
prices    <- cumprod(1 + rnorm(300, 0.005, 0.05))

## Detection of "bear" periods
threshold <- 0.2
lookback  <- 60  # Set to length(prices) for no lookback restriction
is.bear   <- sapply(1:length(prices),
                    function(i, prices, threshold = 0.2, lookback = length(prices)){
                        (prices[i] / max(tail(prices[1:i], lookback))) < (1 - threshold)
                    },
                    prices = prices, threshold = threshold, lookback = lookback)
## Result
plot(prices, type = "l")
rug(which(is.bear), col = "red", lwd = 2)

在此处输入图像描述

于 2013-07-11T22:50:41.770 回答
1

看看PerformanceAnalytics,特别是 DrawdownPeak,它可能就是你要找的东西

于 2013-07-11T18:09:08.610 回答