相关文章推荐
文雅的数据线  ·  造園景觀乙級技術士證照輔導班| 東海大學推廣部·  7 月前    · 
老实的弓箭  ·  明人扇頭書冊明文嘉等楷書江南春詞四則- 故宮·  7 月前    · 
失恋的白开水  ·  International ...·  7 月前    · 
坚强的碗  ·  虹牌pu 面漆- FindPrice ...·  8 月前    · 
粗眉毛的薯片  ·  亚洲唯一入选英格兰名人堂!孙继海为何能立足英 ...·  1 年前    · 
小百科  ›  新浪股票接口获取历史数据开发者社区
网易股票(NTES) 接口 list string
千杯不醉的黑框眼镜
2 年前
作者头像
全栈程序员站长
0 篇文章

新浪股票接口获取历史数据

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 全栈程序员必看 > 新浪股票接口获取历史数据

新浪股票接口获取历史数据

作者头像
全栈程序员站长
发布 于 2022-09-12 10:14:44
3.3K 1
发布 于 2022-09-12 10:14:44
举报

大家好,又见面了,我是你们的朋友全栈君。

这两天做了一个调用新浪股票接口获取实时以及历史股票 数据 的应用,因为新浪没有公开关于其接口的官方文档,所以通过各种百度差了很多关于新浪股票接口的使用,不过大家基本都是转载或者直接复制,对于实时数据的获取讲的很详细,但是缺少获取历史数据的方法。

关于实时数据的获取大家可以看这篇博客: 实时股票数据接口

经过不懈的努力终于再这篇博文中找到了关于新浪股票历史数据的获取方式 腾讯股票接口、和讯网股票接口、新浪股票接口、雪球股票数据、网易股票数据

最近二十天左右的每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) {
 
推荐文章
文雅的数据线  ·  造園景觀乙級技術士證照輔導班| 東海大學推廣部
7 月前
老实的弓箭  ·  明人扇頭書冊明文嘉等楷書江南春詞四則- 故宮
7 月前
失恋的白开水  ·  International Association for Dental, Oral, and Craniofacial Research
7 月前
坚强的碗  ·  虹牌pu 面漆- FindPrice 價格網2025年7月熱門拍賣商品
8 月前
粗眉毛的薯片  ·  亚洲唯一入选英格兰名人堂!孙继海为何能立足英超7年之久?|孙继海 ...
1 年前
Link管理   ·   Sov5搜索   ·   小百科
小百科 - 百科知识指南