精华内容
下载资源
问答
  • matlab wind 量化接口获取数据

    千次阅读 2018-01-09 21:17:37
    matlab wind 量化接口获取数据 闲话 做量化,数据是非常重要的。wind 虽然说在数据方面也强不到哪里去,不过毕竟是行业的龙头老大。我实习所在的某机构公司就用有用 wind。所以,我终于有机会能摆脱学生版,...

    matlab 从 wind 量化接口获取数据

    闲话

    做量化,数据是非常重要的。wind 虽然说在数据方面也强不到哪里去,不过毕竟是行业的龙头老大。我实习所在的某机构公司就用有用 wind。所以,我终于有机会能摆脱学生版,名正言顺的用 wind 了。一个电话过去,在无情地被客服妹子放了几次鸽子之后,终于给我装上了机构版的 wind。

    一天,公司的交易员老哥突发奇想。想要统计一下豆粕和白糖的涨跌情况。这个重担自然而然的落到了我的头上,于是我就研究了一波 wind 的 matlab 量化接口。果不其然,挺垃圾的。比如,竟然没有一个期货合约的存续期,已经把合约自动给拼接起来了。说实话,你拼接也行,但总得给我提供原始数据吧。我就喜欢自己动手,谁知道他们的算法有没有问题。因为拼接期货数据是一们技术活,各家有各家的做法。

    好在,交易员仅仅是要日频率的,准确来说是将日夜盘串起来的开收盘之间的涨跌幅。这到是轻松。

    正题

    其实,wind 量化接口的说明写得挺详细的。我这里算是做个各人笔记。

    先建立一个 windmatlab 对象,然后调用这个对象提供的方法去获取你想要的东西。

    close all
    clear
    clc
    %%
    tic
    w = windmatlab;
    w.menu;
    
    dates = '2017-3-31';
    % 为空表示最新日期
    datee = '';
    
    stocklist = 'SR801.CZC,SR805.CZC,SR809.CZC,M1801.DCE,M1805.DCE,M1809.DCE';
    stocklist = regexp(stocklist,'[,]','split');
    n = length(stocklist);
    %% 
    for i = 1:n
        code = stocklist{i};
        temp = regexp(code,'\w*','match');
        temp = temp{1,1};
        product = ['future.',temp];
        tempdata = [product,'.data'];
        temptime = [product,'.time'];
        cmd = ['[',tempdata,',~,~,',temptime,'] = w.wsi(code,''open,close,pct_chg'',dates,datee,''BarSize=60'');'];
        eval(cmd);
    end
    t = toc;
    disp(['数据下载成功,用时 ',num2str(t),' s']);
    save('future.mat','future');
    

    其实挺简单。这段代码,对于初学者而言要注意的地方有二。一是将 stocklist 字符串,用正则表达式转变成元胞数组,不过这是画蛇添足。既然知道 wsi 只能一次作用于一个标的何必先写成字符串再转换成元胞,直接写成元胞就好。

    第二个有意思的地方就属于,eval 函数了。eval 是个好东西,这里就利用 eval 实现了了变量的批量生成。相信聪明的大家一定能看得懂,需要注意的是,字符串中的单引号要用两个。

    嗯,时间到了。我该下班了,回去研究一下怎么数据分析和可视化,然而呈现给交易员。这些东西下次分享。

    展开全文
  • python3 接口获取数据

    万次阅读 多人点赞 2018-12-06 13:59:12
    第一次了解到“通过接口获取数据”是在做一个项目时需要存储大量数据,而通过接口是传输大量数据最好的选择,因为它比导出csv文件,再保存至数据库的方法要更快捷、更方便。自己对接口学习了一段时间,对学到的东西...

    第一次了解到“通过接口获取数据”是在做一个项目时需要存储大量数据,而通过接口是传输大量数据最好的选择,因为它比导出csv文件,再保存至数据库的方法要更快捷、更方便。自己对接口学习了一段时间,对学到的东西做个记录。

    那么接口是什么?
    接口分为两种:程序内部接口系统对外接口1

    程序内部接口 指的是,在程序内部的各方法、各模块之间进行信息传递和交互的函数、变量等都可以称为“接口”。
    系统对外接口 指的是,当你从别的网站或者服务器上获取数据或资源时,不会直接得到数据库,而是别人给你提供一个url,让你通过这个url就可以直接使用他写好的方法,达到数据共享的目的,获得相关的数据和信息等。比如app、网址等在进行数据处理的时候都是通过接口来进行调用的。

    这里主要记录一下http接口。http接口遵循http协议,通过接口发送http请求报文,请求报文以key-value格式发送,然后会接收到http响应报文,一般响应报文都是json数据,通过解析json数据,便可以得到我们想要的数据。

    获取json数据一般有两种方式:getpost 2
    get方法 :将请求数据附在url之后(就是把数据放置在HTTP协议头中),并显示在地址栏中。

    以?分割URL和传输数据,多个参数用&连接。
    例如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

    post方法 :把请求数据放置在http包的包体中。请求数据并不会出现在地址栏中。

    下面是get方法实例:

    import requests
    import json
    
    url = 'https://api.github.com/events'
    
    r = requests.get(url)
    result = json.loads(r.text)
    print(result)
    

    python中有专门处理json数据的库——json库。json规定的字符集是UTF-8,因此字符串必须使用双引号 “ ”,键值也需要用双引号 “ ”

    简要介绍一下常用json函数的含义。

    编解码json数据:
    json.loads() 解码json数据,将字符串类型json数据转化为字典dict类型
    json.dumps() 编码json数据,将dict类型转化为 str 类型的 json 数据
    读写json文件:
    json.load() 读取json文件的 json数据
    json.dump() 把json数据写出为 json文件

    下面是post方法实例:

    url = 'http://httpbin.org/post'
    s = json.dumps({'key1': 'value1', 'key2': 'value2'})
    r = requests.post(url, data=s)
    print(r.text)
    

    此时的输出结果便是我们传入的变量 s 。

    这就是通过接口获取数据,一开始我认为会有很多行代码来实现,其实没有那么复杂,只要获取到数据就可以了,具体怎么存到数据库后面会继续更新。hhh~~


    1. 接口测试及常用接口测试工具 https://www.cnblogs.com/feng0815/p/7509541.html ↩︎

    2. 关于HTTP协议,一篇就够了 https://www.cnblogs.com/ranyonsue/p/5984001.html ↩︎

    展开全文
  • 企业钉钉的接口获取数据

    万次阅读 2017-09-22 14:44:31
    首先说明我是帮使用钉钉软件的客户通过钉钉的接口获取数据,所以说我是有权限的。如果你是ISV,去看官方文档吧。 我暂时还不知道ISV开发人员是什么需求,但是至少对于钉钉来说我觉得挺麻烦的。点击打开链接 这是钉钉...

    公司需要,搞了一下钉钉的接口。

    首先说明我是帮使用钉钉软件的客户通过钉钉的接口获取数据,所以说我是有权限的。如果你是ISV,去看官方文档吧。

    我暂时还不知道ISV开发人员是什么需求,但是至少对于钉钉来说我觉得挺麻烦的。点击打开链接

    这是钉钉的官方文档地址:点击打开链接

    我搞了半天才分清一点ISV和非ISV是什么,反正大抵意思是一个授权和一个非授权的访问接口的方式。

    非ISV开发人员需要获取access_token(好像是默认两小时生命周期,超过时间若在持续获取数据就会自动延续,否则过期需要重新获取。),

    这个获取接口是https://oapi.dingtalk.com/gettoken?corpid=corpid&corpsecret=corpsecret,

    其中的corpid和corpsecret这样获取:点击打开链接

    java get方式获取示例代码:

    public static String get(String url) {
    		String result = "";
    		BufferedReader in = null;
    		try {
    			URL getUrl = new URL(url);
    			URLConnection connection = getUrl.openConnection();// 建立http连接
    			connection.setRequestProperty("Charset", "UTF-8");
    			connection.setRequestProperty("accept", "*/*");// 设置通用的请求属性
    			connection.connect();// 开始连接请求
    			in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));//这里如果不加编码方式,解析请求回来的json可能中文乱码报错
    			String line;
    			while ((line = in.readLine()) != null) {
    				result += line;
    			}
    		} catch (Exception e) {
    			System.out.println("发送GET请求出现异常!" + e);
    			e.printStackTrace();
    		} finally {
    			try {
    				if (in != null) {
    					in.close();
    				}
    			} catch (Exception e2) {
    				e2.printStackTrace();
    			}
    		}
    		return result;
    	}


    下面说POST方式获取数据,看一下接口文档就知道了,严格的参数要求,初次搞反正很蛋疼。

    @SuppressWarnings("unchecked")
    	public void post() throws Exception {
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		Calendar cal = Calendar.getInstance();
    		String access_tokenJson = "https://oapi.dingtalk.com/gettoken?corpid=corpid&corpsecret=corpsecret";
    		JSONObject accessJson = JSONObject.fromObject(get(access_tokenJson));
    		DD_access_token token= (DD_access_token)JSONObject.toBean(accessJson,DD_access_token.class);
            /*
             		钉钉取打卡记录的接口传参列表:
    	         {
    			    "userId": "员工在企业内的UserID,企业用来唯一标识用户的字段",//非必填
    			    "workDateFrom": "yyyy-MM-dd hh:mm:ss",
    			    "workDateTo": "yyyy-MM-dd hh:mm:ss"
    			 }
            */
            JSONObject jsonObj = new JSONObject();
     		Date curTime = new Date();
     		//jsonObj.put("userId", "userId");//userid查询条件
            jsonObj.put("workDateFrom", sdf.format(curTime)+" 00:00:00");
     		jsonObj.put("workDateTo", sdf.format(curTime));
    		String strURL = "https://oapi.dingtalk.com/attendance/list?access_token="+token.getAccess_token()+"";
    		try {
    			URL url = new URL(strURL);// 创建url资源
    			HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 建立http连接
    			conn.setDoOutput(true);// 设置允许输出
    			conn.setDoInput(true);// 设置允许输入
    			conn.setUseCaches(false);// 设置不用缓存
    			conn.setRequestMethod("POST");// 设置传参方式
    			conn.setRequestProperty("Charset", "UTF-8");
    			conn.setRequestProperty("Content-Type", "application/json");
    			conn.connect();// 开始连接请求
    			OutputStream out = conn.getOutputStream();
    			out.write((jsonObj.toString()).getBytes());// 写入请求的字符串
    			out.flush();
    			out.close();
    			if (conn.getResponseCode() == 200) {// 请求返回的状态
    				// 请求返回的数据
    				InputStream in = conn.getInputStream();
    				try {
    					BufferedReader rd = new BufferedReader(new InputStreamReader(in,"UTF-8"));//这里可以用这个也可以直接用流,buffer的话就是多了个缓存功能
    					int c = 0;
    					StringBuffer temp = new StringBuffer();//请求接口获取json拼接字符串的话,比较长的返回结果String接收是不够的
    					while((c = rd.read())!= -1){//这里可以用read也可用readLine,不清楚的话可以查一下两者区别
    					       temp.append((char)c);
    					}
    					JSONObject jsonobject = JSONObject.fromObject(temp.toString());
    					JSONArray dkobject = JSONArray.fromObject(jsonobject.get("recordresult"));//这里就是将json转成对象或者集合
    					List<Object> list = (List<Object>) JSONArray.toCollection(dkobject,Object.class);
    				} catch (Exception e1) {
    					e1.printStackTrace();
    				}
    			} else {
    				System.out.println(String.valueOf(conn.getResponseCode()));;
    			}
    
    		} catch (Exception e) {
    			e.printStackTrace();
    			System.out.println("发送POST请求出现异常!" + e);
    		}
    	}



    文中用到的JSONObject和JSONArray的包是

    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;

    可以自行下载导入,maven的话直接贴地址到pom.xml就好

    展开全文
  • 新浪股票接口获取历史数据

    万次阅读 多人点赞 2018-04-23 17:23:25
    这两天做了一个调用新浪股票接口获取实时以及历史股票数据的应用,因为新浪没有公开关于其接口的官方文档,所以通过各种百度差了很多关于新浪股票接口的使用,不过大家基本都是转载或者直接复制,对于实时数据的获取...

    这两天做了一个调用新浪股票接口获取实时以及历史股票数据的应用,因为新浪没有公开关于其接口的官方文档,所以通过各种百度差了很多关于新浪股票接口的使用,不过大家基本都是转载或者直接复制,对于实时数据的获取讲的很详细,但是缺少获取历史数据的方法。
    关于实时数据的获取大家可以看这篇博客:实时股票数据接口 
    经过不懈的努力终于再这篇博文中找到了关于新浪股票历史数据的获取方式腾讯股票接口、和讯网股票接口、新浪股票接口、雪球股票数据、网易股票数据

    最近二十天左右的每5分钟数据
    http://money.finance.sina.com.cn/quotes_service/api/json_v2.php/CN_MarketData.getKLineData?symbol=sz000001&scale=5&ma=5&datalen=1023
    (参数:股票编号、分钟间隔(5、15、30、60)、均值(5、10、15、20、25)、查询个数点(最大值242))


    获取的数据是类似下面的json数组:日期、开盘价、最高价、最低价、收盘价、成交量:


    获取的数据会有很多,然后根据自己需要进行解析,我需要的是每天的收盘价,股市是每个工作日下午3点收盘,所以我只需要找到每天的下午三点时刻的数据进行过滤即可:
    1、新建一个历史数据对象类:
    public class HistoryModel {
        public String day;
        public String close;
    
        public HistoryModel(String day, String close) {
            this.day = day;
            this.close = close;
        }
    }
    2、新建一个股票多次历史数据类:和上一个区别就是,这里包含的是所有的历史数据:参数包括股票名字、代码、现在的价格、历史数据:
    public class HistoryModels {
        public String name;
        public String code;
        public String now;
        public List<HistoryModel> list;
    
        public HistoryModels(String name, String code, String now, List<HistoryModel> list) {
            this.name = name;
            this.code = code;
            this.now = now;
            this.list = list;
        }
    }

    3、将需要查询的股票的代码带进url里通过HTTP请求json数据,我这里用的Volley请求的:

    其中将时间点未15:00:00的数据过滤出来,组合乘List之后在全部赋值组合成一个HistoryModels存放股票信息以及股票的所有历史数据。

    // Instantiate the RequestQueue.
    RequestQueue queue = Volley.newRequestQueue(Home.context);
    String url1 = "http://money.finance.sina.com.cn/quotes_service/api/json_v2.php/CN_MarketData.getKLineData?symbol=" + Home.myChoiceModelList.get(ii).code + "&scale=60&ma=no&datalen=1023";
    
    // Request a string response from the provided URL.
    StringRequest stringRequest1 = new StringRequest(Request.Method.GET, url1,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    List<HistoryModel> historyList = Convert(response,new TypeToken<List<HistoryModel>>() {
                    }.getType());
                    List<HistoryModel> historyList2 = new ArrayList<>();
                    if(historyList!=null) {
                        for (int j = 0; j < historyList.size(); j++) {
                            if (historyList.get(j).day.split(" ")[1].equals("15:00:00")) {
                                historyList2.add(historyList.get(j));
                            }
                        }
                    }
                    HistoryModels model = new HistoryModels(Home.myChoiceModelList.get(ii).name, Home.myChoiceModelList.get(ii).code, Home.myChoiceModelList.get(ii).now, historyList2);
                    cllList.add(model);
                    Message msg = new Message();
                    msg.what = 0x002;
                    handler.sendMessage(msg);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
            });
    
    queue.add(stringRequest1);

    4、其中对json数据的处理,即从json转化成数据对象的方法如下:
    /*
    * Json转换泛型
     */
    public static <T> T Convert(String jsonString, Type cls) {
        T t = null;
        try {
            if (jsonString != null && !jsonString.equals("")) {
                Gson gson = new Gson();
                t = gson.fromJson(jsonString, cls);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }
    关于股票的实时数据这里没有描述,通过文章开头连接的博客可以了解到,写的很详细。



    展开全文
  • 搜狐股票接口获取数据方法

    千次阅读 2018-07-20 21:53:42
    对于一些喜欢研究分析股票数据的朋友来说,获取股票历史数据是分析的第一步,这里简单介绍一下如何通过搜狐提供的接口获取数据。以股票上海机场(600009)为例,获取7月16到20号的日线数据。在浏览器中输入...
  • Android 通过调用接口获取数据

    千次阅读 2016-08-10 15:40:19
    最近的开发过程中,遇到这样一个情况: 制作一个摇杆,用户按下摇杆后再摇杆范围内滑动,获取实时的位置(x,y)来判断摇杆的状态和位置,进行相应的逻辑处理。 作为一名菜鸟开发人员,所以还是在网上找很多资料,...
  • 调用第三方接口获取数据写入数据库

    万次阅读 热门讨论 2018-10-17 11:48:10
    系统框架:springboot(和框架没有什么太大关系,...第三方接口:http://xx.xxx.com:9905/api/list?transtime=20181017105600&token=abcdefghijklmn 请求参数:{"data":"{\"xxx\":\"\",\"xx\":\"\",\"xxxx\":\...
  • JS请求接口获取数据

    千次阅读 2017-02-17 17:27:00
    1 $.getJSON("(引号里面写请求的API网址)", { 2 参数一: 参数一的值, 3 参数二:参数二的值 4 }, function(json) { 5 6 //在这里面处理获得的数据 7 ...
  • 单选和下拉数据是写死的时候。 &lt;el-form-item label="可编辑"&gt;  &lt;el-radio-group v-model="addForm.edititem"&gt; addForm.edititem最后取得的label的值。  &lt...
  • java代码实现访问网络外部接口获取数据的工具类 工具类代码,可以直接copy使用 package com.yqzj.util; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import java.io....
  • 调用第三方接口获取数据(简易版)

    万次阅读 多人点赞 2019-04-17 19:01:40
    举例:我现在打算调用京东万象的“笑话大全”api,通过这个接口调用数据,把笑话为我所用。 思路: (1)写一个controller,用来接收用户页面传过来的请求 (2)写一个service,用于实现业务需求,在这里也就是...
  • 1.java代码,结构如下入 1.pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:...
  • ajax获取接口数据

    千次阅读 2019-08-26 18:08:21
    直接明了 直接上代码 $.ajax({ url: 'https://www.easy-mock.com/mock/5d6390b90915be18898ac4bd/Hani-ChenURL/test', //接口链接 type: 'get', //请求方式 // 如果获取成功 success: function(data) { //成功...
  • 这里的例子是C# 客户端访问JAVA 接口获取Json 数据。 首先部署了一个可以访问的接口,通过这个URL 可以正常的访问到数据库。,如下图(这是我随意部署到个人服务器上的代码,各位也可以在本地部署) 然后...
  • 最近在做公司项目的时候遇到一个问题,要获取echart图中的多条线的数据,需要循环多次调用一个接口,无法知道所有数据何时加载完成。 解决方案: 思路:使用Promise,将调用接口的函数转变为一个Promise对象,...
  • uni-app获取后端接口数据demo代码

    千次阅读 2020-04-19 13:55:57
    //初始化函数 __init(){ uni.request({ // 192.168.2.111 本机ip localhost ... // console.log(this.initData(res.data.data)) } }) }, 注意真机调试时,需要本机ip才能显示数据
  • 老版本是通过云端数据的,现在要改成通过webservice获取数据。应该怎么改哪些地方
  • 今天在zuul上面获取返回值后,接口获取不到数据 主要代码如下: RequestContext ctx = RequestContext.getCurrentContext(); InputStream stream = ctx.getResponseDataStream(); String body = StreamUtils....
  • 目前主流的CS结构,数据都是通过RESTful风格接口形式呈现,不管是桌面级应用程序还是手机端,接口是我们获取数据的大多数选择,主流数据接口呈现形式主要是Json和Xml,后者目前基本渐行渐远。Json的轻量级和可读型...
  • 本人在实际中遇到过一个响应时间10s以上的接口,并且因为业务要求需要调用该接口很多次(10000+),说白了就是单次的传参数获取一些数据,单个接口数据量很小,但是对方没有提供批量数据获取接口,木的办法。...
  • java接口获取天气预报json数据

    千次阅读 2018-11-19 14:51:54
    https://blog.csdn.net/weixin_38959210/article/details/83515783 ... 我们用的这个http接口获取天气情况"http://t.weather.sojson.com/api/weather/city/101170301",后面的"101170301"为城市编号。 各城市...
  • jquery的post请求从接口(json){ "m":"dh", "oper":"fdghgh", "sqlid":"2455", "params":{ "PHONE":"手机号码" } },中获取到结果后,然后将结果解析并编译成表格形式.这个怎么弄,请教各位大神 我...
  • 项目背景:某医院提供两个restapi接口,我们需要把两个接口的数据整合一下放到我们的数据库 项目分析:一个很小的工具可以做到,比如用java代码,但是需要写...第二个脚本:本地文件中获取数据经过处理插入数据库;第三
  • 公司APP项目需要能能够显示当前天气,网上找了很多天气数据接口,总结下来要么收费,要么用起来不友好,最后还是用了郭霖推荐的和风天气接口这里记录一下自己的使用过程首先注册和风天气个人开发者,认证时间1-3天,...
  • tp5中利用接口获取返回数据的方法

    千次阅读 2018-04-18 12:15:39
    ps:代码内容为工作上的记录,最重要的是知道逻辑,其他的参数的命名根据自己需要进行修改public function jwFansShopping(){ $this-&gt;assign('login_user_id',Session::get('login_user_id')?Session::get...
  • jsp接口获取json类型的数据

    千次阅读 2018-10-15 18:13:30
    在测试代码中: String json = "{\"sex\": \"你猜\", \"name\": \"有种爱叫做东方不败\"}"; JSONObject jsonObject = new JSONObject(json); String ...
  • AngularJS 获取接口数据

    千次阅读 2017-05-17 11:40:20
    AngularJS是一款优秀的JS框架,使用的人数比较多,于是我也加入到项目里。 显示前几条新闻 HTML代码: ...AngularJS代码: angular.module('newsApp', []).controller('newsCtrl', function
  • python selenium 获取接口数据

    千次阅读 2020-06-01 16:35:34
    python selenium 获取接口数据。 selenium没有直接提供查询的函数,但是可以通过webdriver提供的API查询,使用的函数是Network.getResponseBody webdriver提供的API文档:...
  • 本篇文章主要介绍如何获取jenkins构建历史数据等信息,不包含java构建等操作。 1.jenkins所需jar,后续如有缺少可百度自行补齐。 &lt;!--jenkins所需jar包开始--&gt; &lt;!-- ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 976,967
精华内容 390,786
关键字:

不会代码从接口获取数据