ggplot2: área do gráfico de destaque

Estou trabalhando com alguns dados de séries temporais e gostaria de destacar a área do gráfico sempre que certas condições se tornarem verdadeiras. Por exemplo:

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))

O código acima plota os dados, mas como posso destacar a seção quando o próximo está acima de sma? Esta questão é semelhante aComo destacar intervalos de tempo em um gráfico?, mas depois é manual. Existe uma função em ggplot2 para plotagem condicional?

questionAnswers(1)

yourAnswerToTheQuestion