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

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

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

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

最近二十天左右的每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; }
关于股票的实时数据这里没有描述,通过文章开头连接的博客可以了解到,写的很详细。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152678.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea 2021.5激活码【注册码】

    idea 2021.5激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    51
  • javascript 字符串包含判断_js去除字符串前后的空格

    javascript 字符串包含判断_js去除字符串前后的空格本文教程操作环境:windows7系统、jquery3.2.1版本,DELLG3电脑。小编介绍过js中使用indexOf()方法判断字符串包含某个字符(https://www.py.cn/web/js/22856.html),是一个很好用的方法,但除了这个方法之外,JavaScript中还有四种方法可以实现判断字符串包含某个字符:1、使用字符串search()方法search()方法用于检…

    2022年10月7日
    5
  • Intellij IDEA–Pycharm插件开发

    Intellij IDEA–Pycharm插件开发IntellijIDEA开发–Pycharm插件开发开发android用AndroidStudio;开发java用intellujIDEA;开发python用Pycharm,其实三者都是jetbrains公司的产品,三者任何一个开发软件导出的jar都可以通用。上一篇说过,我平时主要的开发IDE就是AndroidStudio和Pycharm。通过上一篇我们了解了在AndroidSt…

    2022年6月24日
    84
  • Java单例模式8种方式 详解

    Java单例模式8种方式 详解Singleton所谓单例,指的就是单实例,有且仅有一个类实例,这个单例不应该由人来控制,而应该由代码来限制,强制单例。运用场景很多,例如网站的在线人数,window系统的任务管理器,网站计数器等等,这些都是单例模式的运用。单例模式有常见的8种形式,如下:1.Lazy1【不可用】懒汉式1:线程不稳定延迟初始化多线程不安全是最基本的实现方式,不支持多线程,因为没有synchronized加锁,多线程不能工作。实现图多线程则会出现,当Singleton_La

    2022年8月11日
    7
  • 二叉树中序遍历(非递归)算法实现–C语言「建议收藏」

    二叉树中序遍历(非递归)算法实现–C语言「建议收藏」今天继续二叉树的学习。昨天写了一遍二叉树的先序遍历(非递归)算法,今天写一下二叉树的二叉树的中序遍历(非递归)算法。中序遍历的非递归算法有两种,但是个人觉得只要掌握一种就可以了,只要自己的逻辑清晰,会哪一种又有什么关系呢~首先给出今天的二叉树的示例图:代码如下://InOrderBiTreeTraverse.cpp:Definestheentrypointforthec…

    2025年11月15日
    3
  • EagleEye_eyekey

    EagleEye_eyekey摘要:EagleEye作为阿里集团老牌的链路跟踪系统,其自身业务虽不在交易链路上,但却监控着全集团的链路状态,特别是在中间件的远程调用上,覆盖了集团绝大部分的场景,在问题排查和定位上发挥着巨大的作用,保障了各个系统的稳定性,为整个技术团队打赢这场战役保驾护航。作者:王华锋(水彧)背景 双十一一直是阿里巴巴集团每年要打的一场大战役。要打赢这场战役,技术上,不仅仅是几个应用、几个

    2022年4月19日
    64

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号