基于yahoo股票接口获取股票交易数据

问题描述

一直想写个程序分析股票数据,无奈找不到数据源,昨天发现雅虎有开放的股票接口。鸡冻。先写个工具类,为后面分析数据做个准备。废话不多说,上代码!/***股票实体类*@author祁丛生2013.01.02*/publicclassStockData{privateStringcode;//股票编码privateStringname;//股票名称privateStringdate;//交易日期privatedoubleopen=0.0;//开盘价privatedoublehigh=0.0;//最高价privatedoublelow=0.0;//最低价privatedoubleclose=0.0;//最后一次交易价格,相当于收盘价privatedoublevolume=0.0;//总交易手privatedoubleadj=0.0;//最后一次交易价格(今天的收盘价当做加权价格)//settersandgetters.....省略//toStringmethod...为测试方便可以加个toString方法,省略}/***yahoo股票数据接口工具类*@author祁丛生2013.01.02*@version1.0*/importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.URL;importjava.net.URLConnection;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;publicclassGetDataFromYahooUtil{publicstaticfinalStringYAHOO_FINANCE_URL="http://table.finance.yahoo.com/table.csv?";publicstaticfinalStringYAHOO_FINANCE_URL_TODAY="http://download.finance.yahoo.com/d/quotes.csv?";/***根据股票编码、开始日期、结束日期获取股票数据*@author祁丛生*@paramstockName沪市:000000.ss深市:000000.sz*@paramfromDate开始日期*@paramtoDate结束日期*@returnList<StockData>*/publicstaticList<StockData>getStockCsvData(StringstockName,StringfromDate,StringtoDate){List<StockData>list=newArrayList<StockData>();String[]datefromInfo=fromDate.split("-");String[]toDateInfo=toDate.split("-");Stringcode=stockName.substring(0,6);;Stringa=(Integer.valueOf(datefromInfo[1])-1)+"";//a–起始时间,月Stringb=datefromInfo[2];//b–起始时间,日Stringc=datefromInfo[0];//c–起始时间,年Stringd=(Integer.valueOf(toDateInfo[1])-1)+"";//d–结束时间,月Stringe=toDateInfo[2];//e–结束时间,日Stringf=toDateInfo[0];//f–结束时间,年Stringparams="&a="+a+"&b="+b+"&c="+c+"&d="+d+"&e="+e+"&f="+f;Stringurl=YAHOO_FINANCE_URL+"s="+stockName+params;URLMyURL=null;URLConnectioncon=null;InputStreamReaderins=null;BufferedReaderin=null;try{MyURL=newURL(url);con=MyURL.openConnection();ins=newInputStreamReader(con.getInputStream(),"UTF-8");in=newBufferedReader(ins);StringnewLine=in.readLine();//第一行为标题行,不取数据while((newLine=in.readLine())!=null){StringstockInfo[]=newLine.trim().split(",");StockDatasd=newStockData();sd.setCode(code);sd.setDate(stockInfo[0]);sd.setOpen(Float.valueOf(stockInfo[1]));sd.setHigh(Float.valueOf(stockInfo[2]));sd.setLow(Float.valueOf(stockInfo[3]));sd.setClose(Float.valueOf(stockInfo[4]));sd.setVolume(Float.valueOf(stockInfo[5]));sd.setAdj(Float.valueOf(stockInfo[6]));list.add(sd);}}catch(Exceptionex){returnnull;//无交易数据}finally{if(in!=null)try{in.close();}catch(IOExceptionex){ex.printStackTrace();}}returnlist;}/***根据股票编码、日期获取股票数据*@author祁丛生*@paramstockName沪市:000000.ss深市:000000.sz*@paramdate日期*@returnStockData*/publicstaticStockDatagetStockCsvData(StringstockName,Stringdate){List<StockData>list=getStockCsvData(stockName,date,date);return((list.size()>0)?list.get(0):null);}/***根据股票编码获取当天股票数据*@author祁丛生*@paramstockName沪市:000000.ss深市:000000.sz*@returnStockData*/publicstaticStockDatagetStockCsvData(StringstockName){Stringdate=String.format("%1$tF",newDate());List<StockData>list=getStockCsvData(stockName,date,date);return((list!=null&&list.size()>0)?list.get(0):null);}}/***测试类*/publicclassTest{publicstaticvoidmain(String[]args){GetDataFromYahooUtilstockUtil=newGetDataFromYahooUtil();StockDatasd=stockUtil.getStockCsvData("600629.ss","2012-12-31");System.out.println(sd);}}测试结果:StockData[code=600629,date=2012-12-31,open=7.059999942779541,high=7.25,low=7.050000190734863,close=7.130000114440918,volume=1831800.0,adj=7.130000114440918]欢迎交流QQ:875881559

解决方案

解决方案二:
分析是关键。这里面牵扯的业务知识太多了,咱不懂股票的真的不好说太多。我最近也在学京东的接口,希望能把数据库中的数据批量上传到京东的数据库中。方法不难,但是其中遇到的具体的问题,真的不好解决。
解决方案三:

解决方案四:
你好,我需要帮助,请联系
解决方案五:
有获得总交易金额的历史记录的方法么?
解决方案六:
脱机式通达信程序化接口,可以在不运行券商下单软件情况下,直接进行程序化交易,下单速度可达到1秒钟几百单。功能包括下单,撤单,查询资金股份、当日委托、当日成交等,支持融资融券,可用于计算机自动程序化交易,供具有编程能力的股民使用。详见chaoguwaigua.com

时间: 2024-10-10 11:16:49

基于yahoo股票接口获取股票交易数据的相关文章

php获取json-怎么在接口获取json数据

问题描述 怎么在接口获取json数据 最近正研究php,请问php怎么在接口中获取post过来的json数据 有什么好的方法? 解决方案 先用json_encode加密,接口用json_decode解密 如果要考虑到URL解析. 可再用urlencode再加密,然后接口用urlencode解密.即可获取到传递过来的JSON数据.

基于jquery+ztree+java获取json数据构建树实例

zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件 兼容 IE.FireFox.Chrome 等浏览器 在一个页面内可同时生成多个 Tree 实例 支持 JSON 数据 支持一次性静态生成 和 Ajax 异步加载 两种方式 支持多种事件响应及反馈 支持 Tree 的节点移动.编辑.删除 支持任意更换皮肤 / 个性化图标(依靠css) 支持极其灵活的 checkbox 或 radio 选择功能 简单的参数配置实现 灵活多变的功能 因为ztree的格式支持J

如何获取更详尽的股票交易数据

问题描述 如何获取更详尽的股票交易数据,数据格式如下:席位ID席位名称时间价格现量特征????????09:259.68130B????????09:309.7207B????????09:309.7180B????????09:309.754S????????09:309.7510S以上是某只股票的部分交易明细,明细中没有席位ID和席位名称,我想要的数据就象上面看到的带席位ID和席位名称的交易明细.大智慧赢富数据和指南针赢富数据中有这样的数据,但是他们只有大户和基金的席位ID和席位名称,没有散

如何获取更详尽的股票交易数据信息?

问题描述 如何获取更详尽的股票交易数据,数据格式如下:席位ID席位名称时间价格现量特征????????09:259.68130B????????09:309.7207B????????09:309.7180B????????09:309.754S????????09:309.7510S以上是某只股票的部分交易明细,明细中没有席位ID和席位名称,我想要的数据就象上面看到的带席位ID和席位名称的交易明细.大智慧赢富数据和指南针赢富数据中有这样的数据,但是他们只有大户和基金的席位ID和席位名称,没有散

utf-8-Java 通过HttpURLConnection获取URL接口的返回数据中含有少数民族语言变成了乱码

问题描述 Java 通过HttpURLConnection获取URL接口的返回数据中含有少数民族语言变成了乱码 5C 各位大神private static String getJson(String url){ // String url = ""http://data1.cnr.cn/minzu_hanyuzhuan/phpencode.php?word=""+para; URL oldUrl; StringBuffer buffer = null; try {

vc++6.0MFC如何用基于对话框获取实时数据画曲线图?

问题描述 vc++6.0MFC如何用基于对话框获取实时数据画曲线图? 在vc++6.0下,将文件中前2通道的数据读出,并在界面上显示其形状,能放大和缩小波形,以便看到更多波形的细节. 文件后缀名:.cmc 解决方案 用mschart控件http://blog.csdn.net/youoran/article/details/8460875http://blog.sina.com.cn/s/blog_9a2a952201018ey9.html

java-新浪微博接口获取数据如何保存

问题描述 新浪微博接口获取数据如何保存 用新浪微博接口获取数据显示在控制台上后,怎样将结果保存存文件?用的是java~求解答~ 解决方案 你获取的数据打印控制台的同时,写入文件就可以了 解决方案二:

ajax-web前端开发中使用接口获取数据,然后获取到的结果编译成表格形式

问题描述 web前端开发中使用接口获取数据,然后获取到的结果编译成表格形式 jquery的post请求从接口(json){ "m":"dh", "oper":"fdghgh", "sqlid":"2455", "params":{ "PHONE":"手机号码" } },中获取到结果后,然后将结果解析并编译成表格形式.这个怎么弄,

服务器-调用一个新闻接口时,每次只有第一次请求时能获取到数据

问题描述 调用一个新闻接口时,每次只有第一次请求时能获取到数据 我在使用http://apistore.baidu.com/apiworks/servicedetail/688.html 这个借口时碰到了一个问题,每次只有服务器重启第一次访问接口的时候能拿到数据,请问这是为什么?该如何解决? 解决方案 原来是自己初始化字符串的时候出错了