获取股票的历史数据
从sina网站上获取,获取下来可以做分析使用,用于搭建自己的交易模型,选取
符合自己交易系统的股票。
代码1:
package com.xiaole.stock; import java.util.ArrayList; import java.util.List; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class GetHistoryData { public static void main(String[] args) { String url = "http://money.finance.sina.com.cn/corp/go.php/vMS_MarketHistory/stockid/000952.phtml?year=2014&jidu=3"; System.out.println(url); String msg = HttpService.sendHttpMsg(url, false,"gbk",null); Document document = Jsoup.parse(msg); Elements stockdatas = document.select("table#FundHoldSharesTable").select("tr"); for(Element e : stockdatas){ String time; double openPrice; double highPrice; double endPrice; double lowPrice; int dealCount; int dealAmount; Element tmp = e.select("td").select("a").first(); if(tmp != null){ List<String> infoList = new ArrayList<String>(); Elements infos = e.select("td"); for(Element info : infos){ String tmpMsg = info.text(); infoList.add(tmpMsg); } HisStockData hisData = new HisStockData(); time = infoList.get(0); openPrice = Double.parseDouble(infoList.get(1)); highPrice = Double.parseDouble(infoList.get(2)); endPrice= Double.parseDouble(infoList.get(3)); lowPrice= Double.parseDouble(infoList.get(4)); dealCount= Integer.parseInt(infoList.get(5)); dealAmount = Integer.parseInt(infoList.get(6)); hisData.setTime(time); hisData.setOpenPrice(openPrice); hisData.setHighPrice(highPrice); hisData.setEndPrice(endPrice); hisData.setLowPrice(lowPrice); hisData.setDealAmount(dealAmount); hisData.setDealCount(dealCount); System.out.println(hisData.toString()); } } } }
代码2:
package com.xiaole.stock; public class HisStockData { private String time; private double openPrice; private double highPrice; private double endPrice; private double lowPrice; private int dealCount; private int dealAmount; public String getTime() { return time; } public void setTime(String time) { this.time = time; } public double getOpenPrice() { return openPrice; } public void setOpenPrice(double openPrice) { this.openPrice = openPrice; } public double getHighPrice() { return highPrice; } public void setHighPrice(double highPrice) { this.highPrice = highPrice; } public double getEndPrice() { return endPrice; } public void setEndPrice(double endPrice) { this.endPrice = endPrice; } public double getLowPrice() { return lowPrice; } public void setLowPrice(double lowPrice) { this.lowPrice = lowPrice; } public int getDealCount() { return dealCount; } public void setDealCount(int dealCount) { this.dealCount = dealCount; } public int getDealAmount() { return dealAmount; } public void setDealAmount(int dealAmount) { this.dealAmount = dealAmount; } @Override public String toString() { return "HisStockData [time=" + time + ", openPrice=" + openPrice + ", highPrice=" + highPrice + ", endPrice=" + endPrice + ", lowPrice=" + lowPrice + ", dealCount=" + dealCount + ", dealAmount=" + dealAmount + "]"; } }
代码3:
if(!stockList.isEmpty()){ String filePath = "data/stockcode.txt"; PrintStream ps = null; try { ps = new PrintStream(new FileOutputStream(filePath)); } catch (FileNotFoundException e1) { e1.printStackTrace(); } for(StockItem data : stockList){ ps.println(data.getCode() + "\t" + data.getName()); } if (null != ps) { ps.close(); } }