# TODO: Add comment
#
# Author: Administrator
###############################################################################
#install.packages("bitops")
#install.packages("RCurl")
#install.packages("XML")
#install.packages("plyr")
#import library needed for dowloading data
library(bitops)
library(RCurl)
library(XML)
library(plyr)
#read data from excel
#读取数据前将xls转换成csv文件
sa <- read.csv("AAA.csv", stringsAsFactors = FALSE);
sb <- read.csv("BBB.csv", stringsAsFactors = FALSE);
#dowload data
days <- 6
endday <-Sys.Date()
from <- endday - days
to <- endday
symbol <- ''
url <- ''
result <- data.frame(name = character(), code = character(), stringsAsFactors = FALSE)
for(ii in 1:length(sa[,1])){
print(ii)
symbol = paste('sh',sa[ii,1],sep='')
url=paste('http://biz.finance.sina.com.cn/stock/flash_hq/kline_data.php?symbol=',symbol,'&end_date=',to,'&begin_date=',from,sep='')
raw <- getURL(url)
tryCatch({
cutData= do.call(rbind, xmlToList(raw))
cutlength = length(cutData[,1])
#if(length(cutData[,1]) == days){
v3 = (as.numeric(cutData[cutlength-2,2]) + as.numeric(cutData[cutlength-2,4]))/2 ;
v2 = (as.numeric(cutData[cutlength-1,2]) + as.numeric(cutData[cutlength-1,4]))/2;
v1 = (as.numeric(cutData[cutlength,2]) + as.numeric(cutData[cutlength,4]))/2;
if(as.numeric(cutData[cutlength-2,2]) > as.numeric(cutData[cutlength-2,4])
&& as.numeric(cutData[cutlength-1,2]) > as.numeric(cutData[cutlength-1,4])
&& as.numeric(cutData[cutlength,2]) <= as.numeric(cutData[cutlength,4])){
if(v3 > v2 && v2>v1){
newData = data.frame(name=sa[ii,2],code=sa[ii,1])
result = rbind(result,newData)
}
}
#}
},error = function(e){
""
})
}
for(jj in 1:length(sb[,1])){
print(jj)
symbol = paste('sz',sb[jj,1],sep='')
url=paste('http://biz.finance.sina.com.cn/stock/flash_hq/kline_data.php?symbol=',symbol,'&end_date=',to,'&begin_date=',from,sep='')
raw <- getURL(url)
tryCatch({
cutData= do.call(rbind, xmlToList(raw))
cutlength = length(cutData[,1])
#if(length(cutData[,1]) == days){
v3 = (as.numeric(cutData[cutlength-2,2]) + as.numeric(cutData[cutlength-2,4]))/2 ;
v2 = (as.numeric(cutData[cutlength-1,2]) + as.numeric(cutData[cutlength-1,4]))/2;
v1 = (as.numeric(cutData[cutlength,2]) + as.numeric(cutData[cutlength,4]))/2;
if(as.numeric(cutData[cutlength-2,2]) > as.numeric(cutData[cutlength-2,4])
&& as.numeric(cutData[cutlength-1,2]) > as.numeric(cutData[cutlength-1,4])
&& as.numeric(cutData[cutlength,2]) <= as.numeric(cutData[cutlength,4])){
if(v3 > v2 && v2>v1){
newData = data.frame(name=sa[jj,2],code=sa[jj,1])
result = rbind(result,newData)
}
}
#}
},error = function(e){
""
})
}
fileName <- paste('result',Sys.Date(),'.csv',sep='')
write.csv(result, file = fileName)