绘制不是来自美国的股票的烛台图表

问题描述 投票:0回答:1

我一直在尝试R,因为它似乎很容易创建图表并进行快速数学分析,但我遇到了一个问题,我想用图形来绘制我的数据,但我不能使它与股票符号一起工作在美国之外,这是问题,我尝试从这个页面https://plot.ly/r/candlestick-charts/的第一个例子,当我尝试添加符号BMV:BIMBOA而不是AAPL时,它会因为“:”而向我发送错误

这是我尝试过的

library(plotly)
library(quantmod)

Symbolname <- "BMV:BIMBOA"

getSymbols(Symbolname, src = "google")
df <- data.frame(Date=index(Symbolname),coredata(Symbolname))
df <- tail(df, 30)

p <- df %>%
  plot_ly(x = ~Date, type="candlestick",
          open = ~Symbolname.Open, close = ~Symbolname.Close,
          high = ~Symbolname.High, low = ~Symbolname.Low) %>%
  layout(title = "Basic Candlestick Chart")

# Create a shareable link to your chart
# Set up API credentials: https://plot.ly/r/getting-started
chart_link = api_create(p, filename="finance/candlestick-basic")
chart_link

并且它不起作用,我得到错误symbolname.open not found,作为旁注如果我使用BMV:BIMBOA而不是symbolname var我得到错误“BMV”找不到。我尝试过只使用BIMBOA,但由于xts对象中的行被称为“BMV:BIMBOA.Open”,因此无效。

是否有解决此数据或任何其他方式的解决方法来读取此数据并使用图表来绘制图表?

还试过这个:

BMVBIMBOA <- `BMV:BIMBOA`

getSymbols("BMV:BIMBOA", src = "google")
df <- data.frame(Date=index(BMVBIMBOA),coredata(BMVBIMBOA))
df <- tail(df, 30)

p <- df %>%
  plot_ly(x = ~Date, type="candlestick",
          open = ~BMVBIMBOA.Open, close = ~BMVBIMBOA.Close,
          high = ~BMVBIMBOA.High, low = ~BMVBIMBOA.Low) %>%
  layout(title = "Basic Candlestick Chart")

The error is on the following 2 lines

          open = ~BMVBIMBOA.Open, close = ~BMVBIMBOA.Close,
          high = ~BMVBIMBOA.High, low = ~BMVBIMBOA.Low) %>%
  layout(title = "Basic Candlestick Chart")
r plotly quantmod
1个回答
1
投票

这里有几个问题:

  1. getSymbols的默认模式是通过side-effect,经常(通常是?)不赞成。由于R一般不喜欢变量名中的冒号(尽管它可以正常工作),但这很复杂。
  2. 您使用indexcoredata(我在假设的zoo包内)是不正确的。这两个函数需要一个对象,但是你提供了一个长度为1的character向量("BMV:BIMBOA")。
  3. (我认为)结果数据中的列名特定于符号,因此找不到Symbolname.Open;用实际名称替换它们。

让我们绕过副作用的东西,希望能够更接近你想要的东西。

library(zoo)
library(plotly)
library(quantmod)
Symbolname <- "BMV:BIMBOA"
mydata <- getSymbols(Symbolname, src = "google", auto.assign = FALSE)
df <- data.frame(Date=index(mydata),coredata(mydata))
df <- tail(df, 30)
p <- df %>%
  plot_ly(x = ~Date, type="candlestick",
          open = ~BMV.BIMBOA.Open, close = ~BMV.BIMBOA.Close,
          high = ~BMV.BIMBOA.High, low = ~BMV.BIMBOA.Low) %>%
  layout(title = "Basic Candlestick Chart")

BMV:BIMBOA plot

© www.soinside.com 2019 - 2024. All rights reserved.