Java yahoo 雅虎 股票接口获取股票交易数据
来源:互联网 发布:软件项目团队管理 编辑:程序博客网 时间:2024/05/22 08:23
/** * 股票实体类 * @ 2013.01.02 */public class StockData { private String code; // 股票编码 private String name; // 股票名称 private String date; // 交易日期 private double open = 0.0; // 开盘价 private double high = 0.0; // 最高价 private double low = 0.0; // 最低价 private double close = 0.0; // 最后一次交易价格,相当于收盘价 private double volume = 0.0;// 总交易手 private double adj = 0.0; // 最后一次交易价格 (今天的收盘价当做加权价格) //setters and getters.....省略 //toString method...为测试方便可以加个toString方法,省略} /** * yahoo股票数据接口工具类 * @ 2013.01.02 * @version 1.0 */import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import java.util.Date;import java.util.List;public class GetDataFromYahooUtil { public static final String YAHOO_FINANCE_URL = "http://table.finance.yahoo.com/table.csv?"; public static final String YAHOO_FINANCE_URL_TODAY = "http://download.finance.yahoo.com/d/quotes.csv?"; /** * 根据 股票编码、开始日期、结束日期 获取股票数据 * * @param stockName 沪市:000000.ss 深市:000000.sz * @param fromDate 开始日期 * @param toDate 结束日期 * @return List<StockData> */ public static List<StockData> getStockCsvData(String stockName, String fromDate,String toDate) { List<StockData> list = new ArrayList<StockData>(); String[] datefromInfo= fromDate.split("-"); String[] toDateInfo = toDate.split("-"); String code = stockName.substring(0, 6);; String a = (Integer.valueOf(datefromInfo[1])-1)+"";// a – 起始时间,月 String b = datefromInfo[2];// b – 起始时间,日 String c = datefromInfo[0];// c – 起始时间,年 String d = (Integer.valueOf(toDateInfo[1])-1)+"";// d – 结束时间,月 String e = toDateInfo[2];// e – 结束时间,日 String f = toDateInfo[0];// f – 结束时间,年 String params = "&a=" + a + "&b=" + b + "&c=" + c + "&d=" + d + "&e=" + e + "&f=" + f; String url = YAHOO_FINANCE_URL + "s=" + stockName + params; URL MyURL = null; URLConnection con = null; InputStreamReader ins = null; BufferedReader in = null; try { MyURL = new URL(url); con = MyURL.openConnection(); ins = new InputStreamReader(con.getInputStream(), "UTF-8"); in = new BufferedReader(ins); String newLine = in.readLine();// 标题行 while ((newLine = in.readLine()) != null) { String stockInfo[] = newLine.trim().split(","); StockData sd = new StockData(); 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 (Exception ex) { return null; //无交易数据 } finally { if (in != null) try { in.close(); } catch (IOException ex) { ex.printStackTrace(); } } return list; } /** * 根据 股票编码、日期 获取股票数据 * * @param stockName 沪市:000000.ss 深市:000000.sz * @param date 日期 * @return StockData */ public static StockData getStockCsvData(String stockName, String date){ List<StockData> list = getStockCsvData(stockName,date,date); return ((list.size()>0)?list.get(0):null); } /** * 根据 股票编码 获取当天股票数据 * * @param stockName 沪市:000000.ss 深市:000000.sz * @return StockData */ public static StockData getStockCsvData(String stockName){ String date = String.format("%1$tF", new Date()); List<StockData> list = getStockCsvData(stockName,date,date); return ((list!=null&&list.size()>0)?list.get(0):null); }}/** * 测试类 */public class Test { public static void main(String[] args){ GetDataFromYahooUtil stockUtil = new GetDataFromYahooUtil(); StockData sd = 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]
0 0
- Java yahoo 雅虎 股票接口获取股票交易数据
- 使用Yahoo API获取雅虎的证券股票数据接口(时价 K线等)
- Yahoo 股票数据接口 实现 Java版
- Yahoo 股票数据接口 实现 Java版
- Python获取Yahoo股票数据
- Java实现Yahoo股票接口
- 通过Yahoo Finance API获取股票数据
- 雅虎财经股票数据API获取
- 雅虎股票接口 转载
- Matlab--------股票接口,获取股票数据
- 实时股票接口行情数据 api (新浪雅虎等提供)
- 如何使用 Yahoo! Finance stock API 获取股票数据
- 如何使用 Yahoo! Finance stock API 获取股票数据
- 使用golang从雅虎抓取股票交易数据
- 用matplotlib获取雅虎股票数据并作图【转载】
- 如何使用java获取雅虎财经上的股票信息
- 多线程获取yahoo股票信息
- 获取实时股票数据与股票数据接口API
- 车牌识别--倾斜矫正
- 【Java开发手册之MySQL规约(一)】建表规约
- bzoj2179 FFT快速傅立叶
- 对/etc/oratab文件的理解
- PHP反射机制实现自动依赖注入
- Java yahoo 雅虎 股票接口获取股票交易数据
- kafka direct 跟receiver 方式接收数据的区别
- 基于NStime计时器的实现
- Visual Studio 2015 快捷键
- 文章标题
- 通过 Inode 删除文件
- 编码格式转换
- bootstrap-datetimepicker的使用
- RxJava上手(一)