全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2090 3
2017-01-19
####  quantmod之金融数据分析(R)    ####
rm(list=ls())
library(quantmod)

    ####   获取stock代码   ####
    #Company ID of SSE can be dowloaded at: http://english.sse.com.cn/listed/company/
    #Company ID of SZSE can be dowloaded at: http://www.szse.cn/main/marketdata/jypz/colist/
    ####   获取的stock代码需要进行适当修改,SSE加后缀“.ss”、SZSE加后缀“.sz”   ####
    #paste0(ID$code,".ss")->ID$code

read.csv("E:/ID.csv",as.is=TRUE,na.strings="NA")->stock
   
symbols<- stock$code
startDate = as.Date("2014-01-01")                          ##下载2014年至当前时间所有上市公司历史交易数据
(as.Date(format(Sys.Date(),"%Y-%m-%d"))->endDate)
n <- length(symbols)
pb <- txtProgressBar(min = 0, max = n, style=3)            # progress bar
dataset<- xts()                                                     

for(i in 1:n)
{
  setSymbolLookup(symbol=list(name=symbols[i],src="yahoo"))
  tryit <- try(getSymbols("symbol",from = startDate, to = endDate, src="yahoo"))
           if(inherits(tryit, "try-error"))
{
           i <- i+1
           } else {
           data <- getSymbols("symbol", from = startDate, to = endDate,src="yahoo")
           dataset <- merge(dataset, get("SYMBOL"))
           rm(symbol)
  }
  setTxtProgressBar(pb, i)
}
rm(stock);rm(n);rm(pb);rm(tryit);rm(i);rm(data);rm(SYMBOL);rm(symbols);rm(endDate);rm(startDate)
setwd("E:/stocks")
save.image()
####   查看某个stock历史数据   ####
dataset[,grep("000001",names(dataset),ignore.case = TRUE)]->data
data["2016-12/2017-01-01"]
####   作图   ####
chartSeries(data, theme = "white",TA="addVo(); addMACD()",subset="last 30 weeks")

#addADX; addATR; addBBands; addCCI; addCMF; addCMO; addDEMA; addDPO; addEMA; addEnvelope;
#addEVWMA; addExpiry; addMACD; addMomentum; addROC; addRSI; addSAR; addSMA; addSMI; addTRIX;
#addVo; addWMA; addWPR; addZLEMA; addVolatility()

####  modelling  ####
#lm, glm, loess, step, ppr, rpart[rpart], tree[tree], randomForest[randomForest],
#mars[mda], polymars[polspline], lars[lars], rq[quantreg], lqs[MASS], rlm[MASS], svm[e1071], nnet[nnet]
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-1-22 12:17:49
我想问一下这个包里的chartSeries函数能不能同时画两条k线图?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-24 17:26:17
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-2-3 11:46:38
LW丶loli仔 发表于 2017-1-22 12:17
我想问一下这个包里的chartSeries函数能不能同时画两条k线图?
你是指叠加K线图吗?这个应该不可以的。一般情况下叠加后图形不太好看,你可以试试用TTR包的EMA()获得原始数据,用plot()+lines()函数叠加2条K线图看看;或者用grid包输出2个相同尺度的图比较着来看。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群