如何将股票数据保存为文本文件。

我用的是“通达信”行情软件。

按以下方法:

1、登录行情软件;

2、软件顶部的“系统”--“数据导出”;

3、弹出的窗口有3种文件格式选择:txt、excel和图形。

4、选择你需要的格式,以及保存位置。

5、窗口里面的“高级导出”有更多选择。

或者,你可以去雅虎财经看看,输入股票代码后,好像也有数据下载的。记得有excel和txt2种格式。太久没用了,你去看看就很容易上手的。

雅虎财经停服数据怎么查

1、首先搜索纳斯达克官网,在纳斯达克官方网站上输入。

2、其次搜三百股票代码SOUG。

3、最后就可以看到搜三百目前的股票价格了。

解决 pandas_datareader 无法获取雅虎财经数据的问题

pandas_datareader 是重要的 pandas 相关包,原来是 pandas.io.data 方法,用于获取接口数据,比如雅虎财经上的数据或者美联储路易斯安娜分行的数据,但是在最近版本(比如 pandas 0.20)中 pandas.io.data 的方法独立出来称为一个新的包 pandas_datareader 。

雅虎财经和谷歌财经的接口变换频繁。如果用 pip install pandas_datareader ,已经无法得到雅虎财经。

pandas_datareader github Issuse #315 针对的就是雅虎财经接口无法访问的问题, gusutabopb 在 5月21日进行了成功修正,并提供了他修正后的 pandas_datareader 新版本。

该修正版本的安装方法是

安装以后测试获取 google 的股票数据成功。

参考:

Issues with the data reader fetching yahoo finance #315

Error with pulling data from Yahoo Finance

开发炒股软件,从哪里获得股票数据

目前市场上有很多股票行情交易软件,各种软件提供了丰富的分析和展示功能,而且基本上是免费的。但这些数据都是在线的、无法统一地下载到本地进行分析,于是上网找了些资料,有的是将程序到新浪搜狐的财经频道或其他财经类网站抓取并分析网页,这种方法操作性不强而且准确率较低,遇到广告或网页变动时风险较大。于是找到了Sina股票数据接口,这个接口是通过在IE端输入""+相应股票代码网站返回一个文件形式的数据,也可以通过JS获取该文件中的变量得到想要的数据字符串。

以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:这个url会返回一串文本,例如:

var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92,

22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300,

26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";

这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。

0:”大秦铁路”,股票名字;

1:”27.55″,今日开盘价;

2:”27.25″,昨日收盘价;

3:”26.91″,当前价格;

4:”27.55″,今日最高价;

5:”26.20″,今日最低价;

6:”26.91″,竞买价,即“买一”报价;

7:”26.92″,竞卖价,即“卖一”报价;

8:”22114263″,成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百;

9:”589824680″,成交金额,单位为“元”,为了一目了然,通常以“万元”为成交金额的单位,所以通常把该值除以一万;

10:”4695″,“买一”申请4695股,即47手;

11:”26.91″,“买一”报价;

12:”57590″,“买二”

13:”26.90″,“买二”

14:”14700″,“买三”

15:”26.89″,“买三”

16:”14300″,“买四”

17:”26.88″,“买四”

18:”15100″,“买五”

19:”26.87″,“买五”

20:”3100″,“卖一”申报3100股,即31手;

21:”26.92″,“卖一”报价

(22, 23), (24, 25), (26,27), (28, 29)分别为“卖二”至“卖四的情况”

30:”2008-01-11″,日期;

31:”15:05:32″,时间;

相应地,也可以获得深市相关股票信息,但是这种方法的弊病是只能获得最新的或者是当天的股票数据,无法将历史数据导入到数据库,当然,你也可以以某一天为起始点自己重新创造历史数据。所以继续寻找其他网站接口,终于找到了雅虎财经网站,它提供的接口可以直接把股票历史数据导成Excel,真实太方便了!直接在浏览器地址中数据网址即可股票代码,但是如果手动输入再逐一下载保存简直是太麻烦了,光上证股票就800多个,估计刚手动下载完就又开盘了还得重新下载。所以我的思路是,1、利用多线程方法下载股票文件。2、将这些文件统一导入数据库。

1.1文件下载类:

import java.io.*;

import java.net.*;

import java.util.List;

import fatowen.stocksystem.sysconfig.data.DownLoadVO;

public class HttpDownFile {

private static int BUFFER_SIZE = 8096;

/**根据URL下载文件并保存

* @param destUrl String

* @param fileName String

* @throws Exception

*/

public void saveToFile(String destUrl, String fileName) throws IOException {

FileOutputStream fos = null;

BufferedInputStream bis = null;

HttpURLConnection httpUrl = null;

URL url = null;

byte[] buf = new byte[BUFFER_SIZE];

int size = 0;

url = new URL(destUrl);

httpUrl = (HttpURLConnection) url.openConnection();

httpUrl.connect();

bis = new BufferedInputStream(httpUrl.getInputStream());

fos = new FileOutputStream(fileName);

while ((size = bis.read(buf)) != -1)

fos.write(buf, 0, size);

fos.close();

bis.close();

httpUrl.disconnect();

}

}

1.2多线程实现下载类:

import java.util.ArrayList;

import java.util.List;

public class HisDataAddThread extends Thread {

boolean runFlag = true;

List myParamList = null;

String downLoadData ="";

String baseUrl = "";

String result = "";

String savePath = "";

public HisDataAddThread(List paramList,String savePath){

this.myParamList = paramList;

this.savePath = savePath;

}

public void run() {

while(runFlag){

downLoadData = PublicDataUtil.getDownLoadData(myParamList);

if(!Lib.isEmpty(downLoadData)){

HttpDownFile oInstance = new HttpDownFile();

try {

oInstance.saveToFile(baseUrl + downLoadData, savePath + downLoadData + ".csv");

}catch (Exception err) {

System.out.println(err.toString());

}

}else{

runFlag = false;

}

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

public List getFailureList() {

return failureList;

}

public void setFailureList(List failureList) {

this.failureList = failureList;

}

public List getSuccessList() {

return successList;

}

public void setSuccessList(List successList) {

this.successList = successList;

}

}

2.将下载完的文件统一保存到数据库工具类

import java.io.BufferedReader;

import java.io.File;

import java.io.FileReader;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class CSVUtitl {

private BufferedReader bufferedreader = null;

private List list = new ArrayList();

public CSVUtitl(){

}

public CSVUtitl(String filename) throws IOException{

bufferedreader = new BufferedReader(new FileReader(filename));

String stemp;

while((stemp = bufferedreader.readLine()) != null){

list.add(stemp);

}

}

public List getList() throws IOException {

return list;

}

// 得到csv文件的行数

public int getRowNum(){

return list.size();

}

//得到csv文件的列数

public int getColNum(){

if(!list.toString().equals("[]")) {

//csv文件中,每列之间的是用','来分隔的

if(list.get(0).toString().contains(",")) {

return list.get(0).toString().split(",").length;

}else if(list.get(0).toString().trim().length() != 0) {

return 1;

}else{

return 0;

}

}else{

return 0;

}

}

//取得指定行的值

public String getRow(int index) {

if (this.list.size() != 0)

return (String) list.get(index);

else

return null;

}

//取得指定列的值

public String getCol(int index){

if (this.getColNum() == 0){

return null;

}

StringBuffer scol = new StringBuffer();

String temp = null;

int colnum = this.getColNum();

if (colnum 1){

for (Iterator it = list.iterator(); it.hasNext();) {

temp = it.next().toString();

scol = scol.append(temp.split(",")[index] + ",");

}

}else{

for (Iterator it = list.iterator(); it.hasNext();) {

temp = it.next().toString();

scol = scol.append(temp + ",");

}

}

String str=new String(scol.toString());

str = str.substring(0, str.length() - 1);

return str;

}

//取得指定行,指定列的值

public String getString(int row, int col) {

String temp = null;

int colnum = this.getColNum();

if(colnum 1){

temp = list.get(row).toString().split(",")[col];

}else if(colnum == 1) {

temp = list.get(row).toString();

}else{

temp = null;

}

return temp;

}

public void CsvClose() throws IOException {

this.bufferedreader.close();

}

public void run(String filename) throws IOException {

CSVUtitl cu = new CSVUtitl(filename);

for(int i=0;icu.getRowNum();i++){

String SSCCTag = formatData(cu.getString(i,1));//得到第i行.第一列的数据.

String SiteName = formatData(cu.getString(i,2));//得到第i行.第二列的数据.

String StationId= formatData(cu.getString(i,3));

//将数据保存到数据库中

... ...

... ...

... ...

}

cu.CsvClose();

}

public String formatData(String baseData){

String result = null;

if(!"".equals(baseData) baseData != null){

if(baseData.length() 1){

result = baseData.substring(1,baseData.length());

result = result.substring(0, result.length()-1);

}else{

result = baseData;

}

}else{

result = "";

}

return result.trim();

}

public static void main(String[] args) throws IOException {

CSVUtitl test = new CSVUtitl();

try{

File path = new File("e:\\data");

File[] f = path.listFiles();

List l = new ArrayList();

for(int i=0;if.length;i++){

if(f[i].getName().endsWith(".csv"))

l.add(f[i]);

}

Iterator it = l.iterator();

while(it.hasNext()){

File ff = (File)it.next();

test.run(path.toString()+File.separator+ff.getName());

}

}catch (Exception e){

}

}

}

怎么把雅虎财经的股票数据下载下来啊

你说的这些公司全是在美国上市的公司,必须用美元结算的。因为人民币还没有自由兑换,谷歌582.35+2.17 雅虎15.42+0.26百度438.00+2.43以上截止2009.11.23.16:00

声明:
本站部分内容转载于互联网,转载文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请与本网联系(runpll@foxmail.com),我们将及时更正、删除,谢谢。