Skip to contents

Functions to find the peaks (tops) and valleys (bottoms) of a given series.

Usage

findPeaks(x, thresh=0)
findValleys(x, thresh=0)

Arguments

x

a time series or vector

thresh

minimum peak/valley threshold

Value

A vector of integers corresponding to peaks/valleys.

As a peak[valley] is defined as the highest[lowest] value in a series, the function can only define it after a change in direction has occurred. This means that the function will always return the first period after the peak/valley of the data, so as not to accidentally induce a look-ahead bias.

Author

Jeffrey A. Ryan

Examples

findPeaks(sin(1:10))
#> [1] 3 9

p <- findPeaks(sin(seq(1,10,.1)))
sin(seq(1,10,.1))[p]
#> [1] 0.9916648 0.9893582

plot(sin(seq(1,10,.1))[p])

plot(sin(seq(1,10,.1)),type='l')
points(p,sin(seq(1,10,.1))[p])