Search code examples
rplotxtsquantmodstock

R quantmod addTA function change color


First, I used stoch function in TTR package to calculate the slow stochastic and then add it to plot from chartSeries function by using addTA function, however, these two lines in the plot is black in color and I would like to change them into different color.

Input:

chartSeries(df, subset='last 3 years', TA = NULL, theme = "white", up.col = "green", dn.col = "red")

slow.stoc <- stoch(na.omit(HLC(df)), 25, 25, 9, 'SMA')[,2:3]

addTA(slow.stoc)

I tried to use:

 lines(slow.stoc[2], col="red", lty="solid")

 addLines(slow.stoc[2], col = "red")

But both are not working. Please advise. Thank you.


Solution

  • Try this:

       chartSeries(df, subset='last 3 years', TA = NULL, theme = "white", up.col = "green", dn.col = "red")
        slow.stoc <- stoch(na.omit(HLC(df)), 25, 25, 9, 'SMA')[,2:3]
        addTA(slow.stoc, col = c("red", "green"))
    

    Alternatively, which I would recommend, use the enhanced chart_Series instead:

    library(quantmod)
    
    # optional, set up bar colours as in your question, for chart_Series:
    getSymbols("GOOG")
    myTheme<-chart_theme()
    myTheme$col$up.col<-'darkgreen'
    myTheme$col$dn.col<-'darkred'
    myTheme$col$dn.border <- 'black'
    myTheme$col$up.border <- 'black'
    myTheme$rylab <- FALSE
    myTheme$col$grid <- "lightgrey"
    
    # get your desired result
    df <- GOOG
    slow.stoc <- stoch(na.omit(HLC(df)), 25, 25, 9, 'SMA')[,2:3]
    chart_Series(df, subset='2017', theme = myTheme)
    add_TA(slow.stoc["2017", 1], col = "purple", lty = "dashed")
    add_TA(slow.stoc["2017", 2], col = "red", lty = 3, on = 2)
    

    enter image description here