前言
申银万国证券股份有限公司(简称:申银万国),是国内最早的一家股份制证券公司,也是目前国内规模最大、经营业务最齐全、营业网点分布最广泛的综合类证券公司之一。为能够实时掌握申银万国各行业的股市数据,包括当天收盘价、成交量、涨跌幅等,以应对变化多端的市场,采取正确的举措,收获最大的利益,所以一个能够实时生成申万行业分类日间表格是十分需要的。接下来,我们便使用况客Api实现这个的表格。
目录
1、申万行业分类日间表格的介绍
2、使用况客API实现的具体思路
1.申万行业分类日间表格的介绍
在开始动手之前,我们先看看我们要制作的成品是什么样子的吧。如下图:
上图,是搜索的申万行业一级行业中各个个股当天的基本数据,包括了当天收盘价、成交量、涨跌幅、周涨跌幅、月涨跌幅、年涨跌幅等等。(注:此处搜索的申万行业一级行业是“商业贸易”,即SW1 <- ‘商业贸易’)当然,你也可以根据需要选定表格的内容。
从表格,我们可以了解到我们关注的个股的情况,看他目前是张还是跌,涨跌幅多大,通过比较周涨跌幅、月涨跌幅、年涨跌幅来判断该个股是否值得投资,以更好的做出正确的判断、举措。
2.使用况客API实现表格的具体思路
1、系统环境
需要提前下载况客R语言Api,即qutke,GitHub链接是:https://github.com/qutke/qutke
可以安装注册git,通过git命令来下载相应的R包。
1
| git clone https://github.com/qutke/qutke.git
|
也可以通过RStudio命令来下载:
1 2
| library(devtools) install_github('qutke/qutke')
|
2、咱们需要初始化,为正式编写代码做个准备吧,就像木匠一样,先把原材料以及工具准备好,才干活是不。其中,我们需要安装需要使用的R包,这里我们要用得到的有与date日期相关的lubridate包,以及我们刚下载的qutke。接着,通过数据库key,我们进行初始化,并与数据库连接上。
1 2 3 4 5
| library('lubridate') library(qutke) key<-'ff5ed58edf645c6581e8148db1130dc310fbab5fdccc4b2a9ea0be30f4128ace' init(key)
|
3、定义变量,取得需要的参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| date <- Sys.Date()
lastYearDate <- as.Date(paste(year(date)-1,month(date),day(date),sep='-')) tradingDay <- getDate(data='tradingDay',startdate=lastYearDate,enddate=date,key=key) length <- length(tradingDay) date <- tradingDay[length]
sw1 <- '商业贸易'
industry <- getIndustry(data='industryType',date=date,SW1=sw1,key=key)
qtid <- industry$qtid
FirstDay <- as.Date(paste(year(date)-1,'1','1',sep='-')) FirstDay <- (getDate(data='tradingDay',startdate=FirstDay,enddate=date,key=key))[1]
|
4、依照股票代码qtid来筛选获取数据库中这些个股的数据,并进行计算。此处,我们可以直接获得当天的收盘价、成交量,但是涨跌幅是需要进行计算的。
涨跌幅的计算公式是:(当前最新成交价(或收盘价)-开盘参考价)÷开盘参考价×100%
一般情况: 开盘参考价=前一交易日收盘价
除权息日: 开盘参考价=除权后的参考价
我们参考以上涨跌幅的计算公式,可以计算当天的涨跌幅,至于周涨跌幅,则是要把开盘参考价改为5个交易日前的收盘价即可,至于月涨跌幅、年涨跌幅、年初至今涨跌幅,亦是一个道理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
mktDaily <- getDailyQuote(data='mktDaily',qtid = qtid,startdate=date,enddate=date,key=key) qtid <- mktDaily$qtid
SecuAbbr <- (getIndustry(data='industryType',qtid = qtid,date=date,SW1=sw1,key=key))$SecuAbbr
close<- mktDaily$close
volume <- mktDaily$volume
prevClose <- mktDaily$prevClose
quoteChangeDaily <- (close-prevClose)/prevClose
mktWeek <- getDailyQuote(data='mktDaily',qtid = qtid,startdate=tradingDay[length-5],enddate=tradingDay[length-5],key=key) mktMonth <- getDailyQuote(data='mktDaily',qtid = qtid,startdate=tradingDay[length-20],enddate=tradingDay[length-20],key=key) mktYear <- getDailyQuote(data='mktDaily',qtid = qtid,startdate=tradingDay[1],enddate=tradingDay[1],key=key) mktFYear <- getDailyQuote(data='mktDaily',qtid = qtid,startdate=FirstDay,enddate=FirstDay,key=key)
quoteChangeWeek <- (close-mktWeek$close)/mktWeek$close
quoteChangeMonth <- (close-mktMonth$close)/mktMonth$close
quoteChangeYear <- (close-mktYear$close)/mktYear$close
quoteChangeFYear <- (close-mktFYear$close)/mktFYear$close
|
5、生成表格data.frame
1 2 3 4 5 6 7 8
| stock1 <- data.frame('1'=qtid,'2'=SecuAbbr,'3'=paste(year(date),month(date),day(date),sep='-'),'4'=close, '5'=quoteChangeDaily,'6'=volume,'7'=quoteChangeWeek, '8'=quoteChangeMonth,'9'=quoteChangeYear, '10'=quoteChangeFYear,'11'=sw1)
names(stock1)<-c('代码','名称','日期','收盘价','涨跌幅(%)','成交量(万元)','周涨跌幅(%)','月涨跌幅(%)','年涨跌幅(%)','年初至今涨跌幅(%)','SW1')
postData(stock1,name='stock1',key=key)
|
6、登录况客投研平台,在 创建图表 选项中对生成的图表进行修改,并增加涨跌提示、搜索、排序等功能,然后可以将表格嵌入网站、博客之中,进行展示。