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

这篇具有很好参考价值的文章主要介绍了新浪股票接口获取历史数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

最近二十天左右的每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数组:日期、开盘价、最高价、最低价、收盘价、成交量:
获取的数据是类似下面的json数组:日期、开盘价、最高价、最低价、收盘价、成交量:

获取的数据会有很多,然后根据自己需要进行解析,我需要的是每天的收盘价,股市是每个工作日下午3点收盘,所以我只需要找到每天的下午三点时刻的数据进行过滤即可:
1、新建一个历史数据对象类:
新浪股票接口获取历史数据
获取的数据会有很多,然后根据自己需要进行解析,我需要的是每天的收盘价,股市是每个工作日下午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://www.toymoban.com/news/detail-498128.html

到了这里,关于新浪股票接口获取历史数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据仓库保存历史数据方法之拉链表

    数据仓库是一个面向主题的、集成的、相对稳定的、反应历史变化的数据集合,用于支持管理决策。 面向主题:传统的数据库是面向事务处理的,而数据仓库是面向某一领域而组织的数据集合,主题是指用户关心的某一联系紧密的集合。 集成:数据仓库中数据来源于各个离

    2024年03月13日
    浏览(36)
  • 业务测试——历史数据

    业务测试历史数据的必要性 1.保留上一版本的呈现效果以及数据正确性 2.做发版前后数据、样式一致性校验 3.后端处理历史数据,覆盖各类场景,保证客户的现有数据不会被影响,造成线上事务 4.为测试过程的覆盖度以及产品迭代的质量保驾护航 如何做历史数据(发版前截图

    2024年02月14日
    浏览(28)
  • 网站域名历史记录批量查询-老域名建站历史快照数据查询

      域名建站历史查询软件是一种用于查询一个域名被使用的网站的历史记录的工具。它可以提供许多有用的信息,包括该网站的创建和修改日期、使用的网站建设平台、使用的CMS系统、网站的历史页面内容和页面结构等。 域名建站历史查询软件的作用是帮助网站管理员、S

    2024年02月08日
    浏览(131)
  • TDengine(taos)数据库导出历史数据

    业务需求:导出某个站点的累计充电量,累计放电量,光伏总放电量,进线总功率的所有数据‘ 提示Database changed;即为使用成功; realId即为我想要导出的表,需要导出里面所有的字段; select * from yc_1680037147048042498_1011 /data.csv; 运行即可得到.csv文件; 注意导出路径里不能有

    2024年02月08日
    浏览(37)
  • 自动清理 ES 历史数据

    目录 一、 背景 二、解决方案 三、实现操作 三、合并定时任务的例子         随着业务的增长和时间的变化,ES 数据库的存储空间越来越大,存储数据多数为系统监控日志,保存的数据不需要长期保留,多数情况只需要保留几个月ES数据即可,既可以减轻ES服务器的负载和

    2024年02月08日
    浏览(35)
  • sql server删除历史数据

    datediff函数 : datepart的取值可以是year,quarter,Month,dayofyear,Day,Week,Hour,minute,second,millisecond startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。 删除2023年以前的数据 运行结果如下:

    2024年02月10日
    浏览(36)
  • 数据仓库发展历史

    数据仓库是企业中用于存储、整合和分析数据的关键组件。随着时间的推移,数据仓库经历了三代演化: 从需求驱动到平台化、从平台化到智能(AI)化 第一代数据仓库演化:需求驱动的分层架构 第一代数据仓库的核心思想是根据需求分析和业务模型构建分层架构,使用工

    2024年02月15日
    浏览(48)
  • TiDB(5):TiDB-读取历史数据

    接下来介绍 TiDB 如何读取历史版本数据,包括具体的操作流程以及历史数据的保存策略。 1 功能说明 TiDB 实现了通过标准 SQL 接口读取历史数据功能,无需特殊的 client 或者 driver。当数据被更新、删除后,依然可以通过 SQL 接口将更新/删除前的数据读取出来。 另外即使在更新

    2024年02月12日
    浏览(44)
  • 数据泄露的平均成本创历史新高

    IBM Security 发布了年度数据泄露成本报告,显示数据泄露的全球平均成本在 2023 年达到 445 万美元,创下该报告的历史新高,并且比过去 3 年增加了 15%。 检测和升级成本在同一时间段内跃升了 42%,占违规成本的最高部分,并表明转向更复杂的违规调查。 根据 2023 年 IBM 报告,

    2024年02月14日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包