ggplot2: resaltar el área del gráfico

Estoy trabajando con algunos datos de series de tiempo y me gustaría resaltar el área del gráfico cada vez que se cumplan ciertas condiciones. Por ejemplo:

require(ggplot2)
require(quantmod)
initDate <- "1993-01-31"
endDate <- "2012-08-10"
symbols <- c("SPY")
getSymbols(symbols, from=initDate, to=endDate, index.class=c("POSIXt","POSIXct"))
spy<-SPY$SPY.Adjusted
spy$sma<-SMA(spy$SPY.Adjusted,200)
spy<-spy[-(1:199),] 
spy<-as.data.frame(spy)
ggplot(spy,aes(x=index(spy),y=spy$SPY.Adjusted))+geom_line()+geom_line(aes(x=index(spy),y=spy$sma))

El código anterior representa los datos, pero ¿cómo puedo resaltar la sección cuando alguna vez cerrar está por encima de sma? Esta pregunta es similar a¿Cómo resaltar rangos de tiempo en una parcela?, pero entonces es manual. ¿Hay una función en ggplot2 para el trazado condicional?

Respuestas a la pregunta(1)

Su respuesta a la pregunta