博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jq使用教程07_ JQData HTTP 接口正式上线
阅读量:4294 次
发布时间:2019-05-27

本文共 5072 字,大约阅读时间需要 16 分钟。

JQData

聚宽量化数据接口JQData自上线以来,覆盖了银行、证券、保险、基金等各大金融机构以及高校师生和广大个人量化投资者们。历经一年多百亿级实盘交易量考验,完全具备商用数据的稳定性和准确性。为了保证数据质量,聚宽每年从各大交易所、统计局等权威官方渠道获取原始数据授权,再由专业的数据团队清洗入库,加工出适用于量化场景的数据和因子体系,拥有自有数据版权,做到“专业可依赖“。

新的一年,JQData除继续支持Python SDK外,还正式推出了不限编程语言的HTTP接口,无论你用的是:C、C++、C#、Java、R、Matlab、PHP、Go、NodeJS还是Ruby等任何一种语言,都能轻松方便的调用JQData提供的全品种量化金融数据。

JQData HTTP接口

在新上线的 HTTP 接口中,我们采用 post 机制,用户只需提交 JSON body 参数,就能获取股票、指数、基金、期货、期权、宏观经济、因子数据、舆情数据等量化研究所需的各类金融数据。。 下面我们来一一讲解JQData HTTP 接口的各个部分。

url

 请求JQData数据的http接口地址
token
请求数据接口前需要使用get_token函数获取调用数据的身份凭证,通过post方法传入申请JQData时填入的手机号和密码(密码是聚宽官网登录密码;新申请用户是手机号后6位):

body= {"method" : "get_token", "mob" : "135xxxxxxx", "pwd" : "xxxxxxxxxx"}

返回token结果如下所示:

body:通过post方法传入 JSON 格式的字符串,获取指定的金融量化数据,body 参数由如下部分组成:```body={"method" : 指定获取数据的方法名,调用指定数据品种"token" : 调用数据接口的身份验证,当天有效,失效后可重新获取"param1" : 指定method方法输入的参数1"param2" : 指定method方法输入的参数2…}

输出结果:返回 CSV 格式的文本数据,例如使用 get_all_securities 方法获取所有标的信息的返回结果如下:

000001.XSHE,平安银行,PAYH,1991-04-03,2200-01-01,stock000002.XSHE,万科A,WKA,1991-01-29,2200-01-01,stock…

下面,我们来用具体的代码示例演示一下:

Python调用JQData HTTP示例

import requests, jsonimport pandas as pd#获取调用凭证url = "https://dataapi.joinquant.com/apis"body = {    "method": "get_token",    "mob": "ID",  #ID是申请JQData时所填写的手机号    "pwd": "Password",  # Password为聚宽官网登录密码,新申请用户默认为手机号后6位}response = requests.post(url, data=json.dumps(body))token = response.text#调用get_all_securities函数获取所有股票信息body = {    "method": "get_all_securities",    "token": token,    "code": "stock",    "date": "2019-01-15"}response = requests.post(url, data=json.dumps(body))stock = response.text#写入CSV文件with open('C:/Users/jase8/Desktop/test/stock.csv', 'w')as f:    f.write(stock)#读取CSV文件转化成dataframedf = pd.read_csv('C:/Users/jase8/Desktop/test/stock.csv','utf-8',engine='python')print(df)        code,display_name,name,start_date,end_date,type0     000001.XSHE,平安银行,PAYH,1991-0 4-03,2200-01-01,stock1       000002.XSHE,万科A,WKA,1991-01-29,2200-01-01,stock2     000004.XSHE,国农科技,GNKJ,1990-12-01,2200-01-01,stock3     000005.XSHE,世纪星源,SJXY,1990-12-10,2200-01-01,stock

Matlab调用JQData HTTP示例

slCharacterEncoding('UTF-8')url = 'https://dataapi.joinquant.com/apis';options = weboptions('RequestMethod','post','MediaType','application/json');body = struct('method','get_token','mob','135xxxxxxx','pwd','xxxxxxxxxx');token = webwrite(url,body,options);body = struct('method','get_security_info','token',token,'code','600519.XSHG');options = weboptions('RequestMethod','post','ContentReader',@readtable, 'MediaType','application/json');result = webwrite(url,body,options);% writetable(result,'xxxxxx.csv')resultcode,display_name,name,start_date,end_date,type,parent600519.XSHG,贵州茅台,GZMT,2001-08-27,2200-01-01,stock,

R调用JQData HTTP示例

library(httr)url <- "https://dataapi.joinquant.com/apis"body <- list(    method = "get_token",    mob = "135xxxxxxx",    pwd = "xxxxxxxxxx")r <- POST(url, body = body, encode = "json")token <- content(r)body <- list(    method = "get_security_info",    token = token,    code = "600519.XSHG")r <- POST(url, body = body, encode = "json")content(r)code,display_name,name,start_date,end_date,type,parent600519.XSHG,贵州茅台,GZMT,2001-08-27,2200-01-01,stock,

C#调用JQData HTTP示例:

using System;using System.Net.Http;using System.Text;using System.Web.Script.Serialization;namespace JQData.Samples{    class Program    {        static void Main(string[] args)        {            QuerySecurityInfo();        }        static void QuerySecurityInfo()        {            var url = "https://dataapi.joinquant.com/apis";            using (var client = new HttpClient())            {                //需要添加System.Web.Extensions                //生成JSON请求信息                string json = new                 JavaScriptSerializer().Serialize(new                {                    method = "get_token",                    mob = "135xxxxxxx", //mob是申请JQData时所填写的手机号                    pwd = "xxxxxxxxxx" //Password为聚宽官网登录密码,新申请用户默认为手机号后6位                });                var content = new StringContent(json,                 Encoding.UTF8, "application/json");                //POST请求并等待结果                var result = client.PostAsync(url,                 content).Result;                //读取返回的TOKEN                string token = result.Content.ReadAsStringAsync().Result;                string body = new JavaScriptSerializer().Serialize(new                {                    method = "get_security_info",                    token = token, //token                    code = "600519.XSHG" //代码                });                var bodyContent = new StringContent(body,                 Encoding.UTF8, "application/json");                //POST请求并等待结果                result = client.PostAsync(url,                 bodyContent).Result;                //code,display_name,name,start_date,end_date,type,parent                //600519.XSHG,贵州茅台,GZMT,2001-08-27,2200-01-01,stock,                var securityInfo = result.Content.ReadAsStringAsync().Result;                Console.WriteLine("Result\n" + securityInfo);            }        }    }}

更多语言示例详见 。使用中如有任何问题请添加JQData管理员咨询解答,扫描二维码立刻添加。

转载地址:http://xzfws.baihongyu.com/

你可能感兴趣的文章
C语言文件操作详解
查看>>
C++虚函数定义
查看>>
C语言 unlink函数
查看>>
对SendMessage与PostMessage的理解
查看>>
共享内存
查看>>
CRecordset类
查看>>
文件操作模式分析
查看>>
matlab filter与filtfilt函数实现,C语言实现
查看>>
智能电网与配网自动化工程建设
查看>>
Qt之emit、signals、slot的使用
查看>>
微信小程序--wx-charts图表插件使用教程
查看>>
Qt C++中的关键字explicit
查看>>
Qt多线程编程(3)——QSemaphore的使用
查看>>
Qt 如何处理密集型耗时的事情(频繁调用QApplication::processEvents)
查看>>
Wafer2 Node.js QuickStart 架构分析
查看>>
深入理解 Koa2 中间件机制
查看>>
小程序连接数据库
查看>>
knex.js详解
查看>>
小程序逻辑层之注册程序和场景值
查看>>
css属性设置
查看>>