【问题标题】:CandleStick chart prepare data (open,close,high ,low)烛台图准备数据(开盘,收盘,高,低)
【发布时间】:2018-07-05 21:59:12
【问题描述】:
InvoiceDate<-c("2018-01-01 08:26:00","2018-01-01 08:26:00","2018-01-01 08:26:00","2018-01-01 08:26:00","2018-01-02 08:26:00","2018-01-02 08:26:00","2018-01-02 08:26:00","2018-01-02 08:26:00","2018-01-03 08:26:00","2018-01-04 08:26:00","2018-01-04 08:26:00","2018-01-04 08:26:00")
UnitPrice<-c(2.27,2.28,2.29,2.30,2.31,2.32,3.22,5.26,2,26,3.23,2.50)
myData<-data.frame(InvoiceDate,UnitPrice)

我想创建一个烛台图。但我的问题是如何计算开、关、高、低值。 R中有没有图书馆?谢谢。

还有我的循环:

    df<-data.frame(

  open=double(),
  close=double(),
  min=double(),
  max=double(),
  date=as.Date(character())

)



firstDate<-as.Date(myData$InvoiceDate[1])
firstOpen<-myData$UnitPrice[1]
min<-myData$UnitPrice[1]
max<-myData$UnitPrice[1]


for(row in 1:nrow(myData))
{

  actualDate<-as.Date(myData$InvoiceDate[row])
  actualPrice<-myData$UnitPrice[row]

  if(actualDate==firstDate)
  {

    if(min>actualPrice)
    {
      min<-actualPrice
    }


    if(max<actualPrice)
    {
      max<-actualPrice
    }

  }


  if(actualDate!=firstDate)
  {
    open=firstOpen
    close=myData$UnitPrice[row-1]
    date=as.Date(myData$InvoiceDate[row-1])

    values<-data.frame(open,close,minPrice,maxPrice,date)
    df<-rbind(df,values)

    firstDate<-actualDate
    firstOpen<-myData$UnitPrice[row]
    min<-myData$UnitPrice[row]
    max<-myData$UnitPrice[row]

  }


}

所以开放值意味着它是每个日期的第一个值 收盘价是每个日期的最后一个值。 min 和 max 是每个日期的最小值和最大值

它正在工作,但错过了最后日期的行,例如它是“2018-01-04 08:26:00”

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我尝试编写自己的 for 循环,但它不起作用。
  • 您可以添加一个数据样本(带有 dput 的结果),然后粘贴您的代码,以便有人可以帮助您吗?
  • 我添加了这个...

标签: r candlestick-chart


【解决方案1】:

所以也许你可以使用 dplyr : (这里我假设您的数据是按时间顺序排序的,您可能需要在某处进行排序或排列):

library(dplyr)
myData %>% group_by(trunc(as.Date(InvoiceDate), "day")) %>% summarize(open_val = first(UnitPrice), close_val = last(UnitPrice), max_val = max(UnitPrice), min_val = min(UnitPrice))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多