㈠ 如何使用 Yahoo Finance stock API 获取股票数据
1、通过API获取实时数据
请求地址
http://finance.yahoo.com/d/quotes.csv?s=<股票名称>&f=<数据列选项>
参数
s – 表示股票名称,多个股票之间使用英文加号分隔,如”XOM+BBDb.TO+JNJ+MSFT”,罗列了四个公司的股票:XOM, BBDb.TO, JNJ, MSFT。
f – 表示返回数据列,如”snd1l1yr”。更详细的参见雅虎股票 API f 参数对照表。
2、通过API获取历史数据
请求地址
http://ichart.yahoo.com/table.csv?s=<string>&a=<int>&b=<int>&c=<int>&d=<int>&e=<int>&f=<int>&g=d&ignore=.csv
参数
s – 股票名称
a – 起始时间,月
b – 起始时间,日
c – 起始时间,年
d – 结束时间,月
e – 结束时间,日
f – 结束时间,年
g – 时间周期。Example: g=w, 表示周期是’周’。d->’日’(day), w->’周’(week),m>’月’(mouth),v->’dividends only’一定注意月份参数,其值比真实数据-1。如需要9月数据,则写为08。
3、通过API获取深沪股票数据
雅虎的API是国际性的,支持查询国内沪深股市的数据,但代码稍微变动一下,如浦发银行的代号是:600000.SS。规则是:上海市场末尾加.ss,深圳市场末尾加.sz。
㈡ 如何获取股票数据与历史数据以数据库方式存储的
股票历史数据查询有个很不错的网页工具可以推荐,地址是http://tool.cnfunny.cn/#/打开就可以直接版使用,还可以大批量下载,权方便省事!
㈢ 开发炒股软件,从哪里获得股票数据
目前市场上有很多股票行情交易软件,各种软件提供了丰富的分析和展示功能,而且基本上是免费的。但这些数据都是在线的、无法统一地下载到本地进行分析,于是上网找了些资料,有的是将程序到新浪搜狐的财经频道或其他财经类网站抓取并分析网页,这种方法操作性不强而且准确率较低,遇到广告或网页变动时风险较大。于是找到了Sina股票数据接口,这个接口是通过在IE端输入"http://hq.sinajs.cn/list="+相应股票代码网站返回一个文件形式的数据,也可以通过JS获取该文件中的变量得到想要的数据字符串。
以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:http://hq.sinajs.cn/list=sh601006这个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,真实太方便了!直接在浏览器地址中数据网址即可http://table.finance.yahoo.com/table.csv?s=股票代码,但是如果手动输入再逐一下载保存简直是太麻烦了,光上证股票就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 = "http://table.finance.yahoo.com/table.csv?s=";
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;i<cu.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;i<f.length;i++){
if(f[i].getName().endsWith(".csv"))
l.add(f[i]); www.2cto.com
}
Iterator it = l.iterator();
while(it.hasNext()){
File ff = (File)it.next();
test.run(path.toString()+File.separator+ff.getName());
}
}catch (Exception e){
}
}
}
㈣ 股票数据分析都有哪些
看盘的几个小技巧:
第一:看盘的首要重点是看板块和热点个股的轮动规律,进而推测出行情的大小和持续性时间变化。比如每天应该注意是否有涨停个股开盘,如果有,那么说明主力资金还在努力选择突破口,如果两市都有10只以上的涨停个股开盘,则说明市场处于多头气氛,人气比较旺,少于这个标准则说明市场人气不佳,投资者应该当心大盘继续下跌风险。如果每天盘面都有跌停板,并且是以板块方式出现,那么,应该警惕新一轮的中级调整开始。在热点上,如果前一交易日涨停的个股或是上涨比较好的板块难以维持两天以上的行情,那么,就说明主力资金属于短炒性质,此个股或板块不能成为一波行情的领头羊,同时也意味着这一轮上涨属于单日短线反弹。反过来讲,如果热点板块每天都有2-3个以上,平均涨幅都在2%以上,并相互进行有效轮番上涨,则中期向好行情就值得期待。2010年7月初、中期,有色资源、煤炭资源、稀土资源以及新能源、智能电网等板块交替上涨,从而产生中级行情。
第二:看盘应该注重关注成交量。根据两市目前市值情况看,上海大盘成交量小于1000亿应做震荡整理理解,700亿以下为缩量,小于500亿可以理解为地量,超过1100亿应该理解为放量。地量背后往往意味着反转,例如,2010年6月底和7月初之间,先后多个交易日上海股市成交量低于500亿,这个时候空仓资金应为自己的重新进场做好准备。当大盘摆脱下降趋势,走出一个缓慢的底部构筑的形态下,成交量温和状态下,投资者可以以不超过半仓的水平买股持股。如果,当股票持续上涨,成交量放大,换手率超过15%(中小板、创业板个股特定条件下可以放宽到20%左右,另外新股、次新股、限售股、转赠股、配股上市日不在此列),5-20日线开始死叉转向,那么此类短线题材股和概念股应该考虑逐步抛售。
第三:努力培养盘感,运用技术手段捕捉市场机会。不管是什么品种的股票,如经过短期暴跌,跌幅超过50%,下跌垂直度越大,那么关注价值就越高,当某一天突然缩量,短线买进的机会来了。因为急跌暴跌后,成交量突然萎缩就杀跌盘已经枯竭,肯定会出现反弹,这个时候可以坚决地战胜自己恐慌情绪积极进去抢一把反弹就走人。同样,如果股票价格在接连涨了很多时间,而且高位开始频繁放量,可是价格始终盘旋在某个小区域,连续用小单在尾盘直线拉高制造高位串阳K线,筹码峰密集严重扩散,则说明这个完全是主力在出货!必须坚决清仓。
第四:别小看低位的三连阳,别漠视高位的三连阴。一般讲股票价格在接连下跌一段时间后,突然在某天不那么狂跌,而且,K线上接连出现红三兵,价格波动幅度又不是那样大,通常价格一串上去又被单子砸下来了,请你注意了,这个时候往往就是有主力潜伏着开始收货中;反过来,如果在涨势继续了一段时间,股票价格已经很大幅度地脱离了主力原始成本,这个时候出现了高位几连阴,股票价格重心开始下移,尤其是在一些时候,主力利用快要收盘的时候,突然用几笔单把股票价格迅速买回日均线,在随后的几天里同样的手法经常出现,K线图上收出长下影,那说明主力出货的概率已经达到80%以上,它的这些做法都是为了麻痹经验不足的资金。假如某天连10日、20日、30日线都跌破,不管是赚还是赔,坚决离场。
第五:大涨买龙头,如何发觉龙头,其实在市场大跌气氛里很容易判断龙头股,应密切注意涨幅榜中始终跃居前几位的逆市红盘股,特别是价格处于“三低”范畴,或是股价在15-20元之间,离新多主力拉升底部区域不足50%空间,在大盘大跌的当日或随后几天时间里,果断用长阳反击K线收复前期长阴失地的,则有望成为反弹的龙头。市场的法则永远是“强者恒强,弱者恒弱”。当中级以上行情出现的时候,投资者要善于提早发现谁是龙头,并果断追进,抓稳抓牢,别因一时盘面震荡轻易下马。通常洗得越凶,后期飚涨概率越大。炒股抢占先机概念很重要。有的股票难当龙头最好在行情启动初期果断放弃,不要跟自己过不去。
第六:在涨势中不要轻视冷门股、问题股。 你只要它涨得好,涨得牛就是,“涨时重势,跌时重质”就是这个道理。任何时候,主力和庄家比我们聪明,他们不是傻瓜,当股票一个敢于在大势不好的情况下缩量封出涨停板,肯定有其不被市场大众知道的东西隐藏在后面。熊市里,很多2-5元中小盘个股就是这样无量快速涨停,通常这个时候非常考验短线高手的看盘功力,因为这样的股票往往留给人的思考、判断、下单时间不会超过一分钟,一般此类股很容易出现连续涨停,甚至是一字涨停,像2010年7月27日,很多ST股大跌的时候,ST黑化却震荡走高,上方买盘都被逐步吃掉,并在临近收盘的最后10分钟封上涨停,这说明市场已有嗅觉灵敏的资金闻到了变盘气息在重组前夜下手。
㈤ 怎么抓取股票数据
那么中国股市的数据有没有呢?答案是肯定的,不过要按照下面的参数做些调整,下面提供全球证券交易所的资料。
上证股票是股票代码后面加上.ss,深证股票是股票代码后面加上.sz
例如:000001 = 000001.sz
深市数据链接:http://table.finance.yahoo.com/table.csv?s=000001.sz
上市数据链接:http://table.finance.yahoo.com/table.csv?s=600000.ss
上证综指代码:000001.ss,深证成指代码:399001.SZ,沪深300代码:000300.ss
下面就是世界股票交易所的网址和缩写,要查找哪个股票交易所的数据,就按照上面的格式以此类推。
上海交易所=cn.finance.yahoo.com,.SS,Chinese,sl1d1t1c1ohgv
深圳交易所=cn.finance.yahoo.com,.SZ,Chinese,sl1d1t1c1ohgv
美国交易所=finance.yahoo.com,,United States,sl1d1t1c1ohgv
加拿大=ca.finance.yahoo.com,.TO,Toronto,sl1d1t1c1ohgv
新西兰=au.finance.yahoo.com,.NZ,sl1d1t1c1ohgv
新加坡=sg.finance.yahoo.com,.SI,Singapore,sl1d1t1c1ohgv
香港=hk.finance.yahoo.com,.HK,Hong Kong,sl1d1t1c1ohgv
台湾=tw.finance.yahoo.com,.TW,Taiwan,sl1d1t1c1ohgv
印度=in.finance.yahoo.com,.BO,Bombay,sl1d1t1c1ohgv
伦敦=uk.finance.yahoo.com,.L,London,sl1d1t1c1ohgv
澳洲=au.finance.yahoo.com,.AX,Sydney,sl1d1t1c1ohgv
巴西=br.finance.yahoo.com,.SA,Sao Paulo,sl1d1t1c1ohgv
瑞典=se.finance.yahoo.com,.ST,Stockholm,sl1d1t1c1ohgv
以上方法只能提供历史数据,实时数据不能抓取,此方法由ArthurXF提供
㈥ 如何使用 Yahoo,Finance stock API 获取股票数据
有三种方法获得数据,具体如下:
1、通过API获取实时数据
请求地址:http://finance.yahoo.com/d/quotes.csv?s=<股票名称>&f=<数据列选项>
具体参数:
s – 表示股票名称,多个股票之间使用英文“+”分隔如:”XOM+BBDb.TO+MSFT”,表示三个公司的股票:XOM,BBDb.TO,MSFT。
f – 表示返回数据列,如”snd1l1yr”。更详细的参见雅虎股票 API f 参数对照表。
2、通过API获取历史数据
请求地址如下:http://ichart.yahoo.com/table.csv?s=<string>&a=<int>&b=<int>&c=<int>&d=<int>&e=<int>&f=<int>&g=d&ignore=.csv
具体参数:
s – 股票名称
a – 起始时间,月
b – 起始时间,日
c – 起始时间,年
d – 结束时间,月
e – 结束时间,日
f – 结束时间,年
g – 时间周期。
例如: g=w, 表示周期是“周"。d表示“日”(day),w表示“周”(week),m表示“月”(mouth),一定注意月份参数,其值比真实数据少1。如需要9月数据,则写为08。
3、通过API获取深沪股票数据
雅虎的API是国际性的,支持查询国内沪深股市的数据,但代码稍微变动一下,如浦发银行的代号是:600000.SS。规则是:上海市场末尾加.SS,深圳市场末尾加.SZ。
㈦ 股市数据从哪里得到
像一些数据是要通过人工统计和计算的,所以大多数都是要通过收费软件才能获得版,免费的即使你得权到了但是滞后的效果也是挺要命的,所以我还是不向你推荐乱七八糟的网站了,每个用户在证卷公司开户时都会有个经理,你有权力要求他在每天开盘时向你提供当天的资讯
㈧ 上海交易所股票交易数据谁可以看到
除了监管机构,
无人可以看到。
㈨ 怎么看股票行情的数据
股票行情数据分析方法
(1)技术分析:技术分析是以预测市场价格变化的未来趋势为目的,通过分析历史图表对市场价格的运动进行分析的一种方法。股票技术分析是证券投资市场中普遍应用的一种分析方法。
(2)基本分析:基本分析法通过对决定股票内在价值和影响股票价格的宏观经济形势、行业状况、公司经营状况等进行分析,评估股票的投资价值和合理价值,与股票市场价进行比较,相应形成买卖的建议。
(3)演化分析:演化分析是以演化证券学理论为基础,将股市波动的生命运动特性作为主要研究对象,从股市的代谢性,趋利性,适应性,可塑性,应激性,变异性和节律性等方面入手,对市场波动方向与空间进行动态跟踪研究,为股票交易决策提供机会和风险评估的方法总和。
炒股对于高手说是一种艺术的创作,创作出更多的价值。股票行情分析是创作的灵感来源。所以,一个好的资源必定出现非常伟大的创作。下面我们来说说两种简单的分析方法:
方法一:上升三法
学习炒股,最先要会的就是看图,所以看图说话,在上升趋势中,如果出现一根长阳线,在此长阳之后,出现一群实体短小的阴阳线,显示先前趋势所面临的一些压力。一般而言,这些盘整的线形大多为黑线,但最重要的一点是,这些线形的实体必须处在第一天长白线的高、低价范围内,包括影线在内。最后一根阴阳线(通常为第五天)的开盘价位于前一天收盘价之上,并且收盘价创出新高。
方法二:下降三法
顾名思义,下降三法就是上升三法的相反方法。就是在市场处于下降趋势的时候,如果一根长黑线的出现使其跌势得到加强。随后三天则为实体短小的线形,其走势与既定趋势相反。如果这些盘整线形的实体为白色,则情况最佳。必须注意,这些短小的实体全部位于第一根长黑线的高、低价范围内。最后一天开盘价应该在前一天的收盘价附近,收盘则创出新低,宣告市场休息时间结束。