获取股票的历史数据

   从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()); 
            }
        }

    }

}
View Code

 代码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();
            }
        }
View Code

 

posted @ 2014-08-20 17:32  cstar(小乐)  阅读(2208)  评论(0编辑  收藏  举报