请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3365793 新帖:0

JQData HTTP - R语言

我是一个土豆发表于:5 月 9 日 21:50回复(1)
  • R语言安装及环境配置
    • 官网下载
    • 常用R语言的IDE:RStudio
  • RStudio简介
  • 安装包
    • 调用包
  • 调用JQData数据
    • 打包调用函数
    • get_all_securities - 获取所有标的信息
    • get_security_info - 获取单个标的信息
    • get_index_stocks - 获取指数成份股
    • get_margincash_stocks - 获取融资标的列表
    • get_marginsec_stocks - 获取融券标的列表
    • get_locked_shares - 获取限售解禁数据
    • get_index_weights - 获取指数成份股权重(月度)
    • get_industries - 获取行业列表
    • get_industry - 查询股票所属行业
    • get_industry_stocks - 获取行业成份股
    • get_concepts - 获取概念列表
    • get_concept_stocks - 获取概念成份股
    • get_trade_days - 获取指定范围交易日
    • get_all_trade_days - 获取所有交易日
    • get_mtss - 获取融资融券信息
    • get_money_flow - 获取资金流信息
    • get_billboard_list - 获取龙虎榜数据
    • get_future_contracts - 获取期货可交易合约列表
    • get_dominant_future - 获取主力合约对应的标的
    • get_fund_info - 基金基础信息数据
    • get_current_tick - 获取最新的 tick 数据
    • get_extras - 获取基金净值/期货结算价等
    • get_price / get_bars - 获取指定时间周期的行情数据(合并为一个函数)
    • get_ticks - 获取tick数据
    • get_factor_values - 聚宽因子库数据
    • run_query - 模拟JQDataSDK的run_query方法
    • get_query_count - 获取查询剩余条数

R语言安装及环境配置

R语言可以通过官网下载

CRAN

Img

常用R语言的IDE:RStudio

与其他语言丰富的IDE不同,R语言目前最常用的开发环境为RStudio,同样可以通过官网下载

注意:必须先下载安装R语言完成之后,再下载、配置RStudio哦!

Img

Img

RStudio简介

安装完成之后,我们打开RStudio看一下界面设置

Img

基本上界面划分为5个部分

  • Part 1: 目录栏,新建文档等均可在部分实现
  • Part 2:草稿纸,编写、修改代码,点击Run运行
  • Part 3: 控制台,所有代码均在此运行
  • Part 4: 环境及历史,可以查看当前存储的变量和类型、格式,查看历史代码
  • Part 5: 综合区,查看文件路径、图像展示、包文件及帮助文档

小伙伴们看懂英文很容易就上手啦,还有其他问题可以百度查一查哦!

安装包

重所周知,第三方包的安装是非常重要的,下面介绍两种方法安装

  • Number 1

通过综合区Packages下的install可以很方便的安装

Img

填入需要下载包的名字,便可自动下载

Tip1:下载多个包可以用逗号,隔开

Tip2:官网镜像可能下载速度有点慢,可以切换到国内镜像下载

  • Number 2

通过控制台输入代码下载

install.packages('package1','package2')

Tip:包名需要加引号''

调用包

下载完成之后,需要先调用包才能使用包中的函数,在控制台中使用library()函数调用

Img

调用JQData数据

现附上JQData链接

打包调用函数

为了方便使用JQData的接口,小编将复杂的调用过程打包成了函数request

request <- function(method,list=FALSE,...){
  '''
  method:需要调用的数据函数
  list:判断返回值是否为列表,如get_index_stocks需填TRUE以返回列表
  其他参数在此后带参数名填写
  '''
  #加载包
  library(httr)
  library(readr)
  library(rjson)
  #获取调用凭证
  url <- "https://dataapi.joinquant.com/apis"
  body <- list(
    method = "get_token",
    mob = "181...", #手机号
    pwd = "..." #密码
  )
  r <- POST(url, body = body, encode = "json")
  token <- content(r)

  body1 <- list(
    method = method,
    token = token,
    ...
  )

  r1 <- POST(url, body = body1, encode = 'json')
  if(method == 'get_fund_info'){
    result = fromJSON(content(r1))
    return(result)
  }else{
    if(list==F){
      df <- data.frame(read_csv(content(r1)),check.names = T)
      return(df)
    }else{
      l <- strsplit(content(r1),'\n')
      return(l)
    }
  }
}

定义完成之后我们就可以方便地调用JQData的api啦!

get_all_securities - 获取所有标的信息

df <-request('get_all_securities',code='stock',date='2019-01-05')
rbind(head(df),tail(df)) # 查看数据首尾

Img

get_security_info - 获取单个标的信息

df <- request('get_security_info',code='000001.XSHE')
df

Img

get_index_stocks - 获取指数成份股

ls <- request('get_index_stocks',code='000300.XSHG',list = TRUE)
ls

Img

get_margincash_stocks - 获取融资标的列表

ls <- request('get_margincash_stocks',list = TRUE)
ls

Img

get_marginsec_stocks - 获取融券标的列表

ls <- request('get_marginsec_stocks',list = TRUE)
ls

Img

get_locked_shares - 获取限售解禁数据

df <- request('get_locked_shares',code="600000.XSHG",date="2010-09-29",end_date="2018-09-29")
df

Img

解释

  • num: 解禁股数
  • rate1: 解禁股数/总股本
  • rate2: 解禁股数/总流通股本

get_index_weights - 获取指数成份股权重(月度)

df <- request('get_index_weights',code="000300.XSHG",date="2019-02-02")
rbind(head(df),tail(df))

Img

get_industries - 获取行业列表

df <- request('get_industries',code="sw_l3")
rbind(head(df),tail(df))

Img

行业代码

  • sw_l1: 申万一级行业
  • sw_l2: 申万二级行业
  • sw_l3: 申万三级行业
  • jq_l1: 聚宽一级行业
  • jq_l2: 聚宽二级行业
  • zjw: 证监会行业

get_industry - 查询股票所属行业

df <- request('get_industry',code="000001.XSHE")
df

Img

get_industry_stocks - 获取行业成份股

ls <- request('get_industry_stocks',code="HY007",list=TRUE)
ls

Img

get_concepts - 获取概念列表

df <- request('get_concepts')
rbind(head(df),tail(df))

Img

get_concept_stocks - 获取概念成份股

ls <- request('get_concept_stocks',code='GN001',list=T)
ls

Img

get_trade_days - 获取指定范围交易日

ls <- request('get_trade_days',date='2018-01-01',end_date='2019-02-02',list=T)
ls

Img

get_all_trade_days - 获取所有交易日

ls <- request('get_all_trade_days',list=T)
ls

get_mtss - 获取融资融券信息

df <- request('get_mtss',code='000001.XSHE',date='2019-01-01',end_date='2019-02-02')
rbind(head(df),tail(df))

Img

get_money_flow - 获取资金流信息

df <- request('get_money_flow',code='000001.XSHE',date='2019-01-01',end_date='2019-02-02')
rbind(head(df),tail(df))

Img

get_billboard_list - 获取龙虎榜数据

df <- request('get_billboard_list',code='000001.XSHE',date='2016-08-01',end_date='2019-02-02')
bind(head(df),tail(df))

Img

get_future_contracts - 获取期货可交易合约列表

ls <- request('get_future_contracts',code='AU',date='2019-01-01',list=T)
ls

Img

get_dominant_future - 获取主力合约对应的标的

ls <- request('get_dominant_future',code='AU',date='2019-01-01',list=T)
ls

Img

get_fund_info - 基金基础信息数据

ls <- request('get_fund_info',code='519223.OF',date='2018-12-01')

Img

返回:

  • fund_name: 基金全称
  • fund_type: 基金类型
  • fund_establishment_day: 基金成立日
  • fund_manager: 基金管理人及基本信息
  • fund_management_fee: 基金管理费
  • fund_custodian_fee: 基金托管费
  • fund_status: 基金申购赎回状态
  • fund_size: 基金规模(季度)
  • fund_share: 基金份额(季度)
  • fund_asset_allocation_proportion: 基金资产配置比例(季度)
  • heavy_hold_stocks: 基金重仓股(季度)
  • heavy_hold_stocks_proportion: 基金重仓股占基金资产净值比例(季度)
  • heavy_hold_bond: 基金重仓债券(季度)
  • heavy_hold_bond_proportion: 基金重仓债券占基金资产净值比例(季度)

get_current_tick - 获取最新的 tick 数据

df <- request('get_current_tick',code='000001.XSHE')
df

Img

get_extras - 获取基金净值/期货结算价等

df <- request('get_extras',code='000001.XSHE',date='2019-01-01',end_date='2019-02-01')
rbind(head(df),tail(df))

Img

Img

Img

返回值

  • date: 日期
  • is_st: 是否是ST,是则返回 True,否则返回 False。股票使用
  • acc_net_value: 基金累计净值。基金使用
  • unit_net_value: 基金单位净值。基金使用
  • futures_sett_price: 期货结算价。期货使用
  • futures_positions: 期货持仓量。期货使用
  • adj_net_value: 场外基金的复权净值。场外基金使用

get_price / get_bars - 获取指定时间周期的行情数据(合并为一个函数)

df <- request('get_price',code='000001.XSHE',count=10,unit='1d',end_date='2019-02-01')
df

Img

返回值

  • code: 股票代码
  • count: 大于0的整数,表示获取bar的条数,不能超过5000
  • unit: bar的时间单位, 支持如下周期:1m, 5m,15m, 30m, 60m, 120m, 1d, 1w, 1M。其中m表示分钟,d表示天,w表示周,M表示月
  • end_date:查询的截止时间,默认是今天
  • fq_ref_date:复权基准日期,该参数为空时返回不复权数据

get_ticks - 获取tick数据

df <- request('get_ticks',code='000001.XSHE',count=15,end_date='2019-02-01')
head(df)

Img

get_factor_values - 聚宽因子库数据

获取因子值的 API,点击查看因子列表

参数

  • code: 单只股票代码
  • columns: 因子名称,因子名称,多个因子用逗号分隔
  • date: 开始日期
  • end_date: 结束日期
df <- request('get_factor_values',code='000001.XSHE',date='2019-01-20',end_date='2019-02-07',columns='net_profit_ratio,cfo_to_ev')
df

Img

run_query - 模拟JQDataSDK的run_query方法

run_query api 是模拟了JQDataSDK run_query方法获取财务、宏观、期权等数据
可查询的数据内容请查看JQData文档

参数:

  • table: 要查询的数据库和表名,格式为 database . tablenamefinance.STK_XR_XD
  • columns: 所查字段,为空时则查询所有字段,多个字段中间用,分隔。如id,company_id,columns不能有空格等特殊字符
  • conditions: 查询条件,可以为空,格式为report_date#>=#2006-12-01&amp;
    report_date#<=#2006-12-31,条件内部#号分隔,格式: column # 判断符 # value,多个条件使用&amp;号分隔,表示and,conditions不能有空格等特殊字符
  • count: 查询条数
df <- request('run_query',table='finance.STK_XR_XD',columns='company_id,company_name,code,report_date',
conditions='report_date#=#2006-12-01',count=10)
df

Img

get_query_count - 获取查询剩余条数

request('get_query_count',list=T)

Img

全部回复

0/140

量化课程

    移动端课程