我被 R 弄湿了,在我当前的任务经过多次试验和错误之后,我仍然卡住了。我有股票行情的价格数据。我试图在我的数据中找到熊市,定义为价格数据点 <= 比早前点低 20%(但不是太早)。这是一个时间序列任务吗?我希望这不是太模糊;我仍在学习这些功能,所以这是我所知道的最好、最简洁的提问方式。
提前致谢..
我被 R 弄湿了,在我当前的任务经过多次试验和错误之后,我仍然卡住了。我有股票行情的价格数据。我试图在我的数据中找到熊市,定义为价格数据点 <= 比早前点低 20%(但不是太早)。这是一个时间序列任务吗?我希望这不是太模糊;我仍在学习这些功能,所以这是我所知道的最好、最简洁的提问方式。
提前致谢..
这是一个版本,它检测价格在某个回溯期(例如,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)
看看PerformanceAnalytics,特别是 DrawdownPeak,它可能就是你要找的东西