Я создал ggplot с моим набором данных, имеющим цену закрытия и два набора пределов (верхний предел 1 = ucl1, нижний предел 1 = lcl1, верхний предел 2 = ucl2, нижний предел 2 = lcl2), используя следующие команды
date=seq(as.Date('2000-1-3'),length.out=6486,by=1)
ggplot(mrfdata,aes(x=date))+geom_line(aes(y=ucl2),colour="blue")+geom_line(aes(y=lcl2),colour="blue")+geom_line(aes(y=close),colour="red")+geom_line(aes(y=ucl1),colour="green")+geom_line(aes(y=lcl1),colour="green")+ggtitle("7 days") + xlab("ma of 7 days") + ylab("standard deviation")
library(shiny)
ui <- basicPage(
plotOutput("zoom", height = "350px"),
plotOutput("overall", height = "150px",
brush = brushOpts(id = "brush", direction = "x")
)
)
server <- function(input, output){
mrfdata=data.frame(date=date,ucl2=ucl2,ucl1=ucl1,close=close,lcl1=lcl1,lcl2=lcl2)
p <- ggplot(mrfdata,aes(x=date))+geom_line(aes(y=ucl2),colour="blue")+geom_line(aes(y=lcl2),colour="blue")+geom_line(aes(y=close),colour="red")+geom_line(aes(y=ucl1),colour="green")+geom_line(aes(y=lcl1),colour="green")+ggtitle("7 days") + xlab("ma of 7 days") + ylab("standard deviation")
output$zoom <- renderPlot({
if (!is.null(input$brush)) {
p <- p +xlim(as.Date("1970-01-01") + input$brush$xmin, as.Date("1970-01-01") + input$brush$xmax)
}
p
})
output$overall <- renderPlot(p)
}
shinyApp(ui, server)
Теперь мне нужно сгенерировать торговые сигналы покупки и продажи, используя этот график.
Сигнал на покупку всякий раз, когда цена закрытия пересекает lcl1 и ucl2.
Сигнал на продажу, когда цена закрытия пересекает ucl1 и lcl2.
Я провел много исследований, но, поскольку я новичок в R, не могу применять команды.
Любая помощь будет оценена.