R语言-股票数据库(3)-股票日K线信息-前复权-Wind

来源:互联网 发布:timeline软件使用 编辑:程序博客网 时间:2024/05/01 06:44
前文股票历史交易数据是未复权的,在此使用WIND数据库获取复权后价格
安装Rstudio: https://www.rstudio.com/products/rstudio/download/
安装WIND客户端: WAPI.PE.exe
用户名:略  密码:略
WindR 读取数据通过下面7 个函数实现的。
w.wsd 读取历史序列数据,包括日间的行情数据,基本面数据以及技术数据指标。
w.wss 读取股票、债券、商品等的基本面静态数据。
w.wst 盘口买卖十档快照数据和分时成交数据。
w.wsi 读取分钟级别历史及当天行情数据。
w.wsq 读取证券实时行情数据及技术指标。
w.wset 读取板块成份、指数成份权重等数据。
w.wpf 获取资产管理、组合管理相关信息。
w.tdays 返回区间内的日期序列
w.tdaysoffset 返回某个偏移值对应的日期
w.tdayscount 返回某个区间内日期数量

##################################################################################################################     历史交易数据        #########################################################################################################################################create table stock_info_wind_sz(stock_id varchar(10)    -- 股票代码,DATETIME date  -- 日期,PRE_CLOSE decimal(8,2)  -- 前收盘价,OPEN decimal(8,2)  -- 开盘价,HIGH decimal(8,2)  -- 最高价,LOW decimal(8,2)  -- 最低价,CLOSE decimal(8,2) -- 收盘价,VOLUME decimal(18,2) -- 成交量,AMT decimal(18,2)      -- 成交额,DEALNUM decimal(18,2)  -- 成交笔数,CHG decimal(8,2) -- 涨跌,SWING decimal(8,2) -- 振幅,TURN decimal(8,2) -- 换手率,REL_IPO_PCT_CHG  decimal(8,2)  -- 相对发行价涨跌幅,CLOSE_SZ decimal(8,2) -- 深市收盘指数,RELATE_VAL decimal(8,2) -- 深市收盘指数,RPS decimal(8,4) -- 欧奈尔股价相对强度RPS=股价/大盘指数×1000)ALTER TABLE stock_info_wind_sz ADD INDEX stock_info_wind_sz_idx (DATETIME);###############  单次加载交易数据  ##################library(RMySQL) # 建立数据库连接conn <- dbConnect(MySQL(),dbname = "gushi",username = "root") # 启动非严格模式dbSendQuery(conn, "SET @@sql_mode=ANSI;")                    # win7环境下如果汉字乱码,就运行这条命令dbSendQuery(conn, "SET NAMES GBK")                           # 将文件中的数据导入数据库可以使用下面的R命令:w_wsd_data<-w.wsd("002558.SZ","pre_close,open,high,low,close,volume,amt,dealnum,chg,swing,turn,rel_ipo_pct_chg","ED-3M","2011-04-28","Fill=Previous;PriceAdj=F")data_df1<-cbind(w_wsd_data$Code,w_wsd_data$Data)names(data_df1)[1]='stock_id' dbWriteTable(conn,"stock_info_wind_sz",data_df1,append=T,row.names=F) #dbSendQuery(conn, sql)dbDisconnect(conn)###############  循环加载交易数据  ##################library(RCurl)library(RMySQL)  # 载入RMySQL包library(WindR)w.start()end <- "2017-03-08"table_name <- "stock_info_wind_sz"flag <- ".SZ"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")))    }for (i in 1 : length(security)){  code <- paste(security.tab$code[i],flag,sep="")  start <- security.tab$listingdate[i]  if (nchar(start)!=8){        cat(i,"\t---",code,"\t--- cannot find this stock!","\n")          }       else { start <- paste(substr(start,1,4),substr(start,5,6),substr(start,7,8),sep="-")             cat(i,"\t---",code,"\t---",start,"\n")             conn <- dbConnect(MySQL(),dbname = "gushi",username = "root")  #建立数据库连接             dbSendQuery(conn, "SET @@sql_mode=ANSI;")      # 启动非严格模式             dbSendQuery(conn, "SET NAMES GBK")             # win7环境下如果汉字乱码,就运行这条命令             w_wsd_data<-w.wsd(code,"pre_close,open,high,low,close,volume,amt,dealnum,chg,swing,turn,rel_ipo_pct_chg",start,end,"Fill=Previous;PriceAdj=F")             data_df1<-cbind(w_wsd_data$Code,w_wsd_data$Data)             names(data_df1)[1]='stock_id'              dbWriteTable(conn,table_name,data_df1,append=T,row.names=F)             dbDisconnect(conn)          }}