如何显示所有报价/数据系列的列表,例如来自Yahoo的getSymbols?
我试图将6天的日内数据绘制为6个图表.Quantmod的实验chart_Series()函数与par()设置一起使用.我已经将数据预加载到bars
(XTS对象的向量)中,所以我的代码如下所示:
par(mfrow=c(3,2)) #3 rows, 2 columns
for(d in bars){
print(chart_Series(d, type = "candlesticks") )
}
Run Code Online (Sandbox Code Playgroud)
这有效,但每个图表都有自己不同的y轴刻度.我想设置一个覆盖所有6天的y范围,但找不到办法.我试过这个:
ylim=c(18000,20000)
print(chart_Series(d, type = "candlesticks",ylim=ylim) )
Run Code Online (Sandbox Code Playgroud)
但它失败了"未使用的参数"错误.yrange = ylim也失败了.
我可以使用chartSeries(d,yrange = ylim),它可以工作.但据我所知,我不能在一个显示器中放置多个图表(?).(它可能完全是偏离主题的,但是对于可以绘制漂亮的烛台图表,允许y轴控制并且可以在一个图像上绘制多个图表的替代R包的建议也将非常受欢迎.)
我试图使用csv文件加载多个符号,而不是从Yahoo下载.原始代码非常有用并且很有用
load.packages('quantmod')
tickers = spl('TLT,IWM,GLD')
data <- new.env()
getSymbols(tickers, src = 'yahoo', from = '1980-01-01', env = data,
auto.assign = T)
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用下面的代码时,它会导致脚本中的"下标越界"错误:
load.packages('quantmod')
tickers = spl('TLT,IWM,GLD')
data <- new.env()
getSymbols(tickers, src="csv", dir= "C:/Users/Admiral/Downloads/",
env = data, auto.assign = T)
Run Code Online (Sandbox Code Playgroud)
有人想到为什么第二个代码集不起作用?测试我刚刚从Yahoo下载了csv数据并保存在本地(windows).如果我只使用一个csv文件,我不会得到下标错误.我也尝试了下面的代码,但稍后在脚本中遇到相同的错误:
setSymbolLookup(tickers=list(src="csv", dir= "C:/Users/Admiral/Downloads/"))
getSymbols(tickers, auto.assign = T, from = '1980-01-01', env=data)
Run Code Online (Sandbox Code Playgroud) 我想做一个垂直直方图.理想情况下,我应该能够每天在一个地块上放置多个.
如果这可以与quantmod实验chart_Series或其他一些能够绘制条形图的库相结合,那么这个时间序列会很棒.请参阅随附的屏幕截图.理想情况下,我可以绘制这样的东西.
是否有内置或现有的库可以帮助解决这个问题?
我正在从FRED下载quantmod
数据库(作者Jeffrey A. Ryan).通过Yahoo和Google数据,我可以设置开始和结束日期.对FRED数据可以这样做吗?
帮助页面没有列出"from"和"to"作为quantmod的getSymbols函数的选项,我从中推断出它当前不可能.
有没有办法为要下载的数据设置范围,还是需要下载整个数据集并丢弃我不需要的数据?
谢谢你的帮助.下面的代码说明了上下文:
从FRED下载时会忽略日期:
# environment in which to store data
data <- new.env()
# set dates
date.start <- "2000-01-01"
date.end <- "2012-12-31"
# set tickers
tickers <- c("FEDFUNDS", "GDPPOT", "DGS10")
# import data from FRED database
library("quantmod")
getSymbols( tickers
, src = "FRED" # needed!
, from = date.start # ignored
, to = date.end # ignored
, env = data
, adjust = TRUE
)
head(data$FEDFUNDS)
head(data$FEDFUNDS) …
Run Code Online (Sandbox Code Playgroud) 我对R很新,并试图回溯我在WealthLab中编写的策略.
几个我不明白的东西(它显然不起作用:)
我没有很好地将关闭价格转换为向量...或某种向量,但它从结构开始,我真的不明白这个函数的作用.这就是为什么我的系列[,1]调用可能不起作用.
n < - nrow(系列)也不起作用,但我需要循环
所以我想如果我得到这两个问题的答案我的策略应该有效......我非常感谢任何帮助......即使有其他语言的编程经验,看起来也很复杂
#rm(list = ls(all = TRUE))
#import data, default is yahoo
require(quantmod)
series <- getSymbols('AAPL',from='2013-01-01')
#generate HLOC series
close <- Cl(AAPL)
open <- Op(AAPL)
low <-Lo(AAPL)
high <- Hi(AAPL)
#setting parameters
lookback <- 24 #24 days ago
startMoney <- 10000
#Empty our time series for position and returns
f <- function(x) 0 * x
position <- apply(series[,1],FUN=f)
colnames(position)="long_short"
returns <- apply(series[,1],FUN=f)
colnames(returns)="Returns"
trades = returns
colnames(trades)="Trades"
amount = returns
colnames(amount) = "DollarAmount"
amt[seq(1,lookback)] …
Run Code Online (Sandbox Code Playgroud) 让我们假设您想从2000年以来从雅虎和Alpha Vantage(AV)获得大量股票(> 100)的数据.
我想知道是否有人调查过以下两个问题中的任何一个:
1)使用getSymbols()时更快的是什么?在一次调用getSymbols()时,将每个股权分开或全部分开?
2)什么会少出错?与所有股票分开看涨或打电话?
感谢您在2分中的任何一点提供任何帮助或建议.
HL
如何在chart_Series中正确使用MoreArgs?
p.txt
s,n
ABBV,AbbVie
BMY,Bristol
LLY,EliLily
MRK,Merck
PFE,Pfizer
Run Code Online (Sandbox Code Playgroud)
苏菲
# R --silent --vanilla < sof.r
library(quantmod)
options("getSymbols.warning4.0"=FALSE)
options("getSymbols.yahoo.warning"=FALSE)
# setup chart params
cp <- chart_pars()
cp$cex=0.55
cp$mar=c(1,1,0,0) # B,L,T,R
# setup chart theme
ct <- chart_theme()
ct$format.labels <- ' ' # AG: space needed to remove bottom x-axis labels
ct$lylab <- TRUE # AG: enable left y-axis labels
ct$rylab <- FALSE # AG: remove right y-axis labels
ct$grid.ticks.lwd=1
# read values into vectors
csv <- read.csv("p.txt", stringsAsFactors = …
Run Code Online (Sandbox Code Playgroud) 我想针对货币对绘制交易策略.当然,交易策略有很大的价值(> 10'000,因为10'000是初始资本),货币对徘徊在1.5左右.因此,我希望将策略覆盖在与货币对相同的图表上,但我需要两个不同的Y尺度.
我怎样才能做到这一点?
像这样两者都在同一个图表中,但是策略(投资)是不可见的,因为它高于货币对的最高点.
和奖金问题:-)
如何将特定日期的数据分组到今天?像2008年到现在还是什么?
FXTimeSeries <- zoo(MergedSet$FXCloseRate,MergedSet$Date)
InvestmentTimeSeries <- zoo(matrix[,"Investment"], MergedSet$Date)
chartSeries(FXTimeSeries, theme="white", subset='2011-04::2013-06')
addTA(InvestmentTimeSeries,legend="Strategy", on=1)
Run Code Online (Sandbox Code Playgroud) 我是R的新手,我在创建技术指标方面遇到了一些问题.更具体地说,我想创建一个指标,Fibonacci
它将被添加到chartSeries
并且将由5条水平线组成.我正在处理的数据是股票的收盘价.因此,我想要创建的图表将在最高收盘价的点处有一条水平线,在最小收盘价的点上有一条水平线,在前两条之间有三条水平线.我为了获取股票收盘价的时间序列的五个值而编写的代码如下:
Fibonacci <- function(x) {
x <- try.xts(x, error = as.matrix)
n <- nrow(x)
min <- runMin(x,n=n)
max <- runMax(x,n=n)
high <- 0.62*(max-min) + min
middle <- 0.5*(max-min) + min
low <- 0.38*(max-min) + min
res <-cbind(na.spline(min),na.spline(max),na.spline(high),
na.spline(middle),na.spline(low))
colnames(res)<- c("min","max","high","middle","low")
reclass (res, x)
}
Run Code Online (Sandbox Code Playgroud)
我还编写了以下代码,以便将技术指标添加到现有chartSeries
的quantmod
包图:
addFibonacci<- function(col = "red",overlay = TRUE){
stopifnot("package:TTR" %in% search() || require("TTR", quietly = TRUE))
lchob <- quantmod:::get.current.chob()
x <- as.matrix(lchob@xdata)
chobTA <- new("chobTA")
chobTA@new <- !overlay
if …
Run Code Online (Sandbox Code Playgroud)