R语言-股票数据库(2)-股票日K线信息-未复权
2017-07-11 11:08
211 查看
注:1、此方法获得的股票价格是实际价格,未进行前/后复权
2、只举例深市的获取方法,沪市的同理
3、步骤:先从网上爬取每个股票的交易历史,存为csv格式文件;读取csv文件数据加载至mysql数据库
2、只举例深市的获取方法,沪市的同理
3、步骤:先从网上爬取每个股票的交易历史,存为csv格式文件;读取csv文件数据加载至mysql数据库
###################################################################################################### #################################批量下载深市股票信息到csv文件######################################## ###################################################################################################### #把下载好的数据按照市场分开,分别保存到txt文件即可,这里不再赘述。 #保存好的数据要稍微处理一下,日期的格式调整为yyyymmdd,write.table会把数据框的“列名”打印出来,列名也是要去掉的。 #有了股票代码和上市日期数据就可以自动化下载数据了,最好深市沪市分开进行,存在不同的文件夹下,R代码如下 #下载股票数据 library(RCurl) #http://quotes.money.163.com/service/chddata.html?code=0600030&start=20030106&end=20140920&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP url1 <- "http://quotes.money.163.com/service/chddata.html?code=" market <- "1" # 1:深市,0:沪市 code <- "000003" url2 <- "&start=" start <- "19900101" url3 <- "&end=" end <- "20170711" #用当前最新日期 url4 <- "&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP" #文件的存放路径 file.path <- "E:/.../数据源/SZ/" #股票代码+发行日期,格式:CODE制表符yyyymmdd security <- readLines("E:/.../数据源/深市股票上市日.txt") code <- vector(length = length(security)) listingdate <- vector(length = length(security)) security.tab <- data.frame(code, listingdate, stringsAsFactors=FALSE) for (i in 1 : length(security)) { security.tab[i,] = do.call(cbind,(strsplit(security[i],"\t"))) #do.call(cbind,[list]) 列表转矩阵 } for (i in 1 : dim(security.tab)[1]) { code <- security.tab$code[i] start <- security.tab$listingdate[i] cat(i,"\t---",code,"\n") url <- paste(url1,market,code,url2,start,url3,end,url4,sep="") file <- paste(file.path,code,".csv",sep="") download.file(url,destfile=file, method="auto",quiet=T) } ###################################################################################################### #################################批量导入深市股票信息到数据库######################################### ###################################################################################################### #创建表 create table stock_info_sz ( data_dt varchar(10), stock_id varchar(10), stock_name varchar(100), shoupanjia decimal(18,2), zuigaojia decimal(18,2), zuidijia decimal(18,2), kaipanjia decimal(18,2), qianshoupan decimal(18,2), zhangdiee decimal(18,2), zhangdiefu decimal(18,6), huanshoulv decimal(18,6), chengjiaoliang decimal(18,0), chengjiaojine decimal(18,2), zongshizhi decimal(18,0), liutongzhi decimal(18,0) ) #在成功获得数据,并保存到若干csv、txt文件之后,最后一步就是导入数据库MySQL。借助R包RMySQL,可以实现R和MySQL的连接,在R环境中直接操作MySQL数据库。 # 载入RMySQL包 library(RMySQL) # 建立数据库连接 conn <- dbConnect(MySQL(),dbname = "gushi",username = "root") # 启动非严格模式 dbSendQuery(conn, "SET @@sql_mode=ANSI;") # win7环境下如果汉字乱码,就运行这条命令 dbSendQuery(conn, "SET NAMES GBK") security <- readLines("E:/.../数据源/深市股票上市日.txt") code <- vector(length = length(security)) listingdate <- vector(length = length(security)) security.tab <- data.frame(code, listingdate, stringsAsFactors=FALSE) for (i in 1 : length(security)) { security.tab[i,] = do.call(cbind,(strsplit(security[i],"\t"))) #do.call(cbind,[list]) 列表转矩阵 } #文件的存放路径 file.path <- "E:/.../数据源/SZ/" for (i in 1 : dim(security.tab)[1]) { code <- security.tab$code[i] cat(i,"\t---",code,"\n") file <- paste(file.path,code,".csv",sep="") #拼接SQL start <- "load data infile '" end <- "' into table stock_info_sz character set GBK fields terminated by ',' lines terminated by '\n'" sql <- paste(start,file,end,sep="") res1 <-dbSendQuery(conn, sql) } #清除文件头数据 sql <- "delete from stock_info_sz where data_dt='日期'" res1 <-dbSendQuery(conn, sql) #去掉股票代码前的' sql <- "update stock_info_sz set stock_id=replace(stock_id,'\\'','')" res1 <-dbSendQuery(conn, sql)
相关文章推荐
- R语言-股票数据库(3)-股票日K线信息-前复权-Wind
- 从钱龙数据中读取股票权息信息导入到数据库
- R语言-股票数据库(1)-股票上市日期
- 从钱龙数据中读取股票代码信息导入到数据库
- 基于tushare获取股票历史行情数据包括后复权和未复权的_导入数据库
- Python3 +Scrapy 爬取腾讯控股股票信息存入数据库中
- 从钱龙数据中读取股票权息信息导入到数据库
- R语言-股票数据库(4)-股票行业和概念板块数据-Wind
- 从数据库里得到目录信息,构建一颗树?
- OLE DB取得数据库的架构信息
- Apache James用户信息的数据库存储和密码问题
- 把数据库连接信息写在web.config文件里(vs.net2003)
- 查找所有的数据库信息
- 使用FSO把文本信息导入数据库
- Java做信息管理系统的数据库连接方法
- 使用FSO把文本信息导入数据库
- 列出数据库中各个表的磁盘空间信息
- 使用DatabaseMetaDate获取数据库信息
- 用户身份认证(Authenticate),并将用户输入的信息与数据库进行判断
- 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息