图表OHLC数据与chart_Series功能



包含XXXZZZ.csv货币对的OHLC (Open-High-Low-Close)和Volume数据(每小时数据,格式为DD.MM.YYYY HH:mm)的csv文件:

Date;Open;High;Low;Close;Volume
02.01.2009 07:00;1,5326;1,539785;1,52896;1,5369;1083497,742
02.01.2009 08:00;1,5375;1,5379;1,53105;1,537;1191678,162

我加载quantstrat包并初始化:

library(quantstrat)
Sys.setenv(TZ="UTC")
currency(c('XXX', 'ZZZ'))
exchange_rate('XXXZZZ', tick_size=0.0001)

我用read读取csv文件。动物园(因为我不能使quantmod::getSymbols工作):

XXXZZZ <- as.xts(read.zoo("XXXZZZ.csv", sep=';', tz='', header=TRUE, 
                          format='%d.%m.%Y %H:%M',
                          index.column = 1 
                          )
                 )

结果是"xts" &"zoo"对象,索引列是Date列,其他5列是OHLC和Volume。

chart_Series(XXXZZZ)

结果:

Error in chart_Series(XXXZZZ) : 'x' must be a time-series object

那么我如何操作XXXZZZ成为一个时间序列对象呢?如果不同,答案是否可以不仅涵盖每小时的数据,还包括从1秒到每月的数据?

的建议。1:将十进制符号从逗号改为点,问题仍然存在

XXXZZZ <- gsub(",",".",XXXZZZ)

RHertel关于小数分隔符的评论可能是问题所在。仅仅gsub(x, ",", ".")是不够的,因为结果仍然是字符,而不是数字。您需要将呼叫中的dec=","设置为read.zoo

下面的代码为我工作,尽管我必须添加更多的观察给chart_Series一些绘图。

require(quantmod)
Lines <- "Date;Open;High;Low;Close;Volume
02.01.2009 07:00;1,5326;1,539785;1,52896;1,5369;1083497,742
02.01.2009 08:00;1,5375;1,5379;1,53105;1,537;1191678,162
02.01.2009 09:00;1,5375;1,5379;1,53105;1,537;1191678,162
02.01.2009 10:00;1,5375;1,5379;1,53105;1,537;1191678,162"
conn <- textConnection(Lines)
XXXZZZ <- as.xts(read.zoo(conn, sep=';', tz="", dec=",", header=TRUE,
                   format='%d.%m.%Y %H:%M', index.column=1))
close(conn)
chart_Series(XXXZZZ)

最新更新