У меня есть следующий код.Я хочу взять на вход действительный символ акций и визуализировать график свечи.Я хочу дать пользователю возможность переключаться между 20-, 50- и 200-дневными простыми скользящими средними на графике.Однако, когда я запускаю приложение, mainPanel возвращает:
Error: chartSeries requires an xtsible object.
Это моя первая разработка Shiny App, и я не понимаю, почему она не работает.
library(shiny)
library(quantmod)
library(lubridate)
shinyUI(fluidPage(
titlePanel("Candlestick Stock Charts"),
sidebarLayout(
sidebarPanel(
textInput("symb", "Input a Valid Stock Symbol", "AAPL"),
radioButtons("radioMoveAvg",
"Moving Averages",
c("20-day" = "twentyAvg",
"50-day" = "fiftyAvg",
"200-day" = "twohundAvg"))
),
mainPanel(
plotOutput("candleStick")
)
)
))
library(shiny)
library(quantmod)
library(lubridate)
shinyServer(function(input, output) {
cs<-reactive({
getSymbols(input$symb,
src = "yahoo",
from = Sys.Date()-years(2),
to = Sys.Date(),
auto.assign = FALSE)[, 4]
})
moveAvg<-reactive({
if(input$radioMoveAvg=="twentyAvg"){
x = 20
col = "blue"
}
if(input$radioMoveAvg=="fiftyAvg"){
x = 50
col = "green"
}
if(input$radioMoveAvg=="twohundAvg"){
x = 200
col = "pink"
}
})
output$candleStick <- renderPlot({
candleChart(cs, up.col = "black", dn.col = "red", theme = "white", subset = "2019-01-01/")
addSMA(moveAvg)
})
})