楼主: fantuanxiaot
14530 66

[源码分享] [转载]基于yahoo股票接口获取股票交易数据   [推广有奖]

已卖:1597份资源

大师

9%

还不是VIP/贵宾

-

威望
7
论坛币
-234454 个
通用积分
225.8477
学术水平
3783 点
热心指数
3819 点
信用等级
3454 点
经验
150360 点
帖子
7597
精华
32
在线时间
1329 小时
注册时间
2013-2-4
最后登录
2025-3-23

初级学术勋章 初级热心勋章 中级热心勋章 中级学术勋章 初级信用勋章 中级信用勋章 高级热心勋章 高级学术勋章 特级学术勋章 特级热心勋章 高级信用勋章 特级信用勋章

楼主
fantuanxiaot 发表于 2015-2-3 21:09:28 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
代码如下:

本帖隐藏的内容

  1. /**
  2. * 股票实体类
  3. * @author 祁丛生 2013.01.02
  4. */
  5. public class StockData {
  6.     private String code; // 股票编码
  7.     private String name; // 股票名称
  8.     private String date; // 交易日期
  9.     private double open = 0.0; // 开盘价
  10.     private double high = 0.0; // 最高价
  11.     private double low = 0.0; // 最低价
  12.     private double close = 0.0; // 最后一次交易价格,相当于收盘价
  13.     private double volume = 0.0;// 总交易手
  14.     private double adj = 0.0; // 最后一次交易价格 (今天的收盘价当做加权价格)

  15.     //setters and getters.....省略
  16.     //toString method...为测试方便可以加个toString方法,省略
  17. }

  18. /**
  19. * yahoo股票数据接口工具类
  20. * @author 祁丛生 2013.01.02
  21. * @version 1.0
  22. */
  23. import java.io.BufferedReader;
  24. import java.io.IOException;
  25. import java.io.InputStreamReader;
  26. import java.net.URL;
  27. import java.net.URLConnection;
  28. import java.util.ArrayList;
  29. import java.util.Date;
  30. import java.util.List;

  31. public class GetDataFromYahooUtil {
  32.    
  33.     public static final String YAHOO_FINANCE_URL = "http://table.finance.yahoo.com/table.csv?";
  34.     public static final String YAHOO_FINANCE_URL_TODAY = "http://download.finance.yahoo.com/d/quotes.csv?";

  35.     /**
  36.      * 根据 股票编码、开始日期、结束日期 获取股票数据
  37.      * @author 祁丛生
  38.      * @param stockName  沪市:000000.ss 深市:000000.sz
  39.      * @param fromDate    开始日期
  40.      * @param toDate         结束日期
  41.      * @return List<StockData>
  42.      */
  43.     public static List<StockData> getStockCsvData(String stockName, String fromDate,String toDate) {
  44.         List<StockData> list = new ArrayList<StockData>();
  45.         String[] datefromInfo= fromDate.split("-");
  46.         String[] toDateInfo = toDate.split("-");
  47.         String code = stockName.substring(0, 6);;
  48.         
  49.         String a = (Integer.valueOf(datefromInfo[1])-1)+"";// a – 起始时间,月
  50.         String b = datefromInfo[2];// b – 起始时间,日
  51.         String c =  datefromInfo[0];// c – 起始时间,年
  52.         String d = (Integer.valueOf(toDateInfo[1])-1)+"";// d – 结束时间,月
  53.         String e = toDateInfo[2];// e – 结束时间,日
  54.         String f =  toDateInfo[0];// f – 结束时间,年
  55.         
  56.         String params = "&a=" + a + "&b=" + b + "&c=" + c + "&d=" + d + "&e="
  57.                 + e + "&f=" + f;
  58.         String url = YAHOO_FINANCE_URL + "s=" + stockName + params;
  59.         
  60.         URL MyURL = null;
  61.         URLConnection con = null;
  62.         InputStreamReader ins = null;
  63.         BufferedReader in = null;
  64.         try {
  65.             MyURL = new URL(url);
  66.             con = MyURL.openConnection();
  67.             ins = new InputStreamReader(con.getInputStream(), "UTF-8");
  68.             in = new BufferedReader(ins);

  69.             String newLine = in.readLine();// 标题行
  70.             
  71.             while ((newLine = in.readLine()) != null) {
  72.                 String stockInfo[] = newLine.trim().split(",");
  73.                 StockData sd = new StockData();
  74.                 sd.setCode(code);
  75.                 sd.setDate(stockInfo[0]);
  76.                 sd.setOpen(Float.valueOf(stockInfo[1]));
  77.                 sd.setHigh(Float.valueOf(stockInfo[2]));
  78.                 sd.setLow(Float.valueOf(stockInfo[3]));
  79.                 sd.setClose(Float.valueOf(stockInfo[4]));
  80.                 sd.setVolume(Float.valueOf(stockInfo[5]));
  81.                 sd.setAdj(Float.valueOf(stockInfo[6]));
  82.                 list.add(sd);
  83.             }

  84.         } catch (Exception ex) {
  85.             return null; //无交易数据
  86.         } finally {
  87.             if (in != null)
  88.                 try {
  89.                     in.close();
  90.                 } catch (IOException ex) {
  91.                     ex.printStackTrace();
  92.                 }
  93.         }
  94.         return list;
  95.     }
  96.     /**
  97.      * 根据 股票编码、日期 获取股票数据
  98.      * @author 祁丛生
  99.      * @param stockName   沪市:000000.ss 深市:000000.sz
  100.      * @param date 日期
  101.      * @return StockData
  102.      */
  103.     public static StockData getStockCsvData(String stockName, String date){
  104.         List<StockData> list = getStockCsvData(stockName,date,date);
  105.         return ((list.size()>0)?list.get(0):null);
  106.     }
  107.     /**
  108.      * 根据 股票编码 获取当天股票数据
  109.      * @author 祁丛生
  110.      * @param stockName   沪市:000000.ss 深市:000000.sz
  111.      * @return StockData
  112.      */
  113.     public static StockData getStockCsvData(String stockName){
  114.         String date = String.format("%1$tF", new Date());
  115.         List<StockData> list = getStockCsvData(stockName,date,date);
  116.         return ((list!=null&&list.size()>0)?list.get(0):null);
  117.     }
  118. }


  119. /**
  120. * 测试类
  121. */
  122. public class Test {
  123.     public static void main(String[] args){
  124.         GetDataFromYahooUtil stockUtil = new GetDataFromYahooUtil();
  125.         StockData sd = stockUtil.getStockCsvData("600629.ss", "2012-12-31");
  126.         System.out.println(sd);
  127.     }
  128. }
复制代码




测试结果:
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]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:股票交易数据 YAHOO 交易数据 股票交易 YAHO 股票交易 yahoo 接口

回帖推荐

梦幻泡沫 发表于47楼  查看完整内容

我有新浪,腾迅的,yahoo的还没有测试过,先看看
已有 1 人评分学术水平 收起 理由
kizito + 1 精彩帖子

总评分: 学术水平 + 1   查看全部评分

本帖被以下文库推荐

沙发
feders 发表于 2015-2-4 00:12:50

回帖奖励 +2

嗯,看看

藤椅
aasa11 发表于 2015-2-4 09:11:32

回帖奖励 +2

看看先~~~

板凳
mike68097 发表于 2015-2-4 09:11:50

回帖奖励 +2

支持!!!!

报纸
fjrong 在职认证  发表于 2015-2-4 09:13:22

回帖奖励 +2

地板
fjrong 在职认证  发表于 2015-2-4 09:21:38

回帖奖励 +2

7
woaiwangqiao 发表于 2015-2-4 10:09:12

回帖奖励 +2

饭团君真厉害

8
woaiwangqiao 发表于 2015-2-4 10:10:17

回帖奖励 +2

这个是用什么抓的,MATLAB?

9
Crsky7 发表于 2015-2-4 10:46:15

回帖奖励 +2

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

10
showmsg 发表于 2015-2-4 10:52:52

回帖奖励 +2

东西很好,很实用的

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2026-1-3 14:49