在Quantmod R中获取商品价格历史的伎俩?

Rho*_*odo 1 r time-series commodity quantmod

require("quantmod")
Run Code Online (Sandbox Code Playgroud)

这有效:

#Symbol for Natural Gas in front month with Yahoo Finance
getQuote("NGH16.NYM", src="yahoo")
Run Code Online (Sandbox Code Playgroud)

但这不"

getSymbols("NGH16.NYM", src="yahoo", from="2015-09-01")

    Error in download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m,
  cannot open URL 'http://ichart.finance.yahoo.com/table.csv?s=NGF16.NYM&a=8&b=01&c=2015&d=11&e=24&f=2015&g=d&q=q&y=0&z=NGF16.NYM&x=.csv'
In addition: Warning message:
In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m,  :
  cannot open: HTTP status was '404 Not Found'
Run Code Online (Sandbox Code Playgroud)

我如何获得价格历史记录?

Dir*_*tel 5

您假设因为您可以获得当前数据快照,您还可以获得历史序列.

这个假设是不正确的.数据现在是许多交易所的重要产品,您通常需要为此付费.

不过还有其他方法,对于商品数据,Quandl可能是您最好的选择.搜索'天然气nymex'可以引导您达成这个NG_H2014合同,而CRAN上Quandl软件包非常出色,因为所有这些现在都非常易于编写.

例如,您的问题是2016年3月到期:

R> str(res <- Quandl("CME/NGH2016"))
'data.frame':   1935 obs. of  9 variables:
 $ Date         : Date, format: "2015-12-23" "2015-12-22" "2015-12-21" "2015-12-18" ...
 $ Open         : num  2.05 2.07 2.02 1.97 1.99 ...
 $ High         : num  2.12 2.08 2.09 2.01 2.02 ...
 $ Low          : num  2.01 2.02 1.97 1.91 1.96 ...
 $ Last         : num  2.11 2.05 2.08 1.96 1.96 ...
 $ Change       : num  0.067 0.031 0.093 NA 0.024 0.002 0.068 0.089 0.022 0.033 ...
 $ Settle       : num  2.1 2.03 2.06 1.97 1.97 ...
 $ Volume       : num  37213 32346 59892 53955 80027 ...
 $ Open Interest: num  210758 209803 208883 207250 212823 ...
 - attr(*, "freq")= chr "daily"
R> 
Run Code Online (Sandbox Code Playgroud)

或者作为准备绘图的动物园对象:

R> res <- Quandl("CME/NGH2016", type="zoo")
R> plot(res[,"Settle"], main="NGH2016", ylab="Settle")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述