股票财经API笔记

来源:互联网 发布:互联网金融软件测试 编辑:程序博客网 时间:2024/04/28 03:47

股票财经API笔记

    博客分类: 
  • python
 

一、获取Yahoo数据 

1.1 实时数据

深圳交易所

http://finance.yahoo.com/d/quotes.csv?s=000625.sz&f=snohgl1v

000625.SZ CHANGAN AUTOMOBIL 12.4 12.8 12.4 12.69 9787354

 

上证交易所(API异常,目前无法获取数据):

http://finance.yahoo.com/d/quotes.csv?s=600600.SS&f=snohgl1v returns

600600.SS 600600.SS N/A N/A N/A 0 N/A

 

1.2 历史数据

下面两个只是域名不同,直接ping测试,指向相同IP

  • http://ichart.yahoo.com/table.csv?s=600000.SS&a=08&b=25&c=2010&d=09&e=8&f=2010&g=d
  • http://table.finance.yahoo.com/table.csv?s=600000.SS&a=08&b=25&c=2010&d=09&e=8&f=2010&g=d

 

 

===下面为转载==================

1.获取实时数据

http://finance.yahoo.com/d/quotes.csv?s=股票名称&f=数据列选项

s — 表示股票名称,多个股票之间使用英文加号分隔,如“XOM+BBDb.TO+JNJ+MSFT”,罗列了四个公司的股票:XOM, BBDb.TO, JNJ, MSFT。

f — 表示返回数据列,如“snd1l1yr”。更详细的参见附录

2.历史数据请求

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的取值范围:d->‘日’(day), w->‘周’(week),m->‘月’(mouth),v->‘dividends only’

Ø  月份是从0开始的,如9月数据,则写为08。

示例

查询浦发银行2010.09.25 – 2010.10.8之间日线数据

http://ichart.yahoo.com/table.csv?s=600000.SS&a=08&b=25&c=2010&d=09&e=8&f=2010&g=d

查看国内沪深股市的股票,规则是:沪股代码末尾加.ss,深股代码末尾加.sz。如浦发银行的代号是:600000.SS

附录

雅虎股票API f参数对照表

a

Ask

a2

Average Daily Volume

a5

Ask Size

b

Bid

b2

Ask (Real-time)

b3

Bid (Real-time)

b4

Book Value

b6

Bid Size

c

Change & Percent Change

c1

Change

c3

Commission

c6

Change (Real-time)

c8

After Hours Change (Real-time)

d

Dividend/Share

d1

Last Trade Date

d2

Trade Date

e

Earnings/Share

e1

Error Indication (returned for symbol changed / invalid)

e7

EPS Estimate Current Year

e8

EPS Estimate Next Year

e9

EPS Estimate Next Quarter

f6

Float Shares

g

Day’s Low

h

Day’s High

j

52-week Low

k

52-week High

g1

Holdings Gain Percent

g3

Annualized Gain

g4

Holdings Gain

g5

Holdings Gain Percent (Real-time)

g6

Holdings Gain (Real-time)

i

More Info

i5

Order Book (Real-time)

j1

Market Capitalization

j3

Market Cap (Real-time)

j4

EBITDA

j5

Change From 52-week Low

j6

Percent Change From 52-week Low

k1

Last Trade (Real-time) With Time

k2

Change Percent (Real-time)

k3

Last Trade Size

k4

Change From 52-week High

k5

Percebt Change From 52-week High

l

Last Trade (With Time)

l1

Last Trade (Price Only)

l2

High Limit

l3

Low Limit

m

Day’s Range

m2

Day’s Range (Real-time)

m3

50-day Moving Average

m4

200-day Moving Average

m5

Change From 200-day Moving Average

m6

Percent Change From 200-day Moving Average

m7

Change From 50-day Moving Average

m8

Percent Change From 50-day Moving Average

n

Name

n4

Notes

o

Open

p

Previous Close

p1

Price Paid

p2

Change in Percent

p5

Price/Sales

p6

Price/Book

q

Ex-Dividend Date

r

P/E Ratio

r1

Dividend Pay Date

r2

P/E Ratio (Real-time)

r5

PEG Ratio

r6

Price/EPS Estimate Current Year

r7

Price/EPS Estimate Next Year

s

Symbol

s1

Shares Owned

s7

Short Ratio

t1

Last Trade Time

t6

Trade Links

t7

Ticker Trend

t8

1 yr Target Price

v

Volume

v1

Holdings Value

v7

Holdings Value (Real-time)

w

52-week Range

w1

Day’s Value Change

w4

Day’s Value Change (Real-time)

x

Stock Exchange

 

 

 

python获取yahoo财经信息工具类

 

   ystockquote.py

 

Python代码  收藏代码
  1. #!/usr/bin/env python  
  2. #  
  3. #  Copyright (c) 2007-2008, Corey Goldberg (corey@goldb.org)  
  4. #  
  5. #  license: GNU LGPL  
  6. #  
  7. #  This library is free software; you can redistribute it and/or  
  8. #  modify it under the terms of the GNU Lesser General Public  
  9. #  License as published by the Free Software Foundation; either  
  10. #  version 2.1 of the License, or (at your option) any later version.  
  11.   
  12.   
  13. import urllib  
  14.   
  15.   
  16. """ 
  17. This is the "ystockquote" module. 
  18.  
  19. This module provides a Python API for retrieving stock data from Yahoo Finance. 
  20.  
  21. sample usage: 
  22. >>> import ystockquote 
  23. >>> print ystockquote.get_price('GOOG') 
  24. 529.46 
  25. """  
  26.   
  27.   
  28. def __request(symbol, stat):  
  29.     url = 'http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s' % (symbol, stat)  
  30.     return urllib.urlopen(url).read().strip().strip('"')  
  31.   
  32.   
  33. def get_all(symbol):  
  34.     """ 
  35.     Get all available quote data for the given ticker symbol. 
  36.      
  37.     Returns a dictionary. 
  38.     """  
  39.     values = __request(symbol, 'l1c1va2xj1b4j4dyekjm3m4rr5p5p6s7').split(',')  
  40.     data = {}  
  41.     data['price'] = values[0]  
  42.     data['change'] = values[1]  
  43.     data['volume'] = values[2]  
  44.     data['avg_daily_volume'] = values[3]  
  45.     data['stock_exchange'] = values[4]  
  46.     data['market_cap'] = values[5]  
  47.     data['book_value'] = values[6]  
  48.     data['ebitda'] = values[7]  
  49.     data['dividend_per_share'] = values[8]  
  50.     data['dividend_yield'] = values[9]  
  51.     data['earnings_per_share'] = values[10]  
  52.     data['52_week_high'] = values[11]  
  53.     data['52_week_low'] = values[12]  
  54.     data['50day_moving_avg'] = values[13]  
  55.     data['200day_moving_avg'] = values[14]  
  56.     data['price_earnings_ratio'] = values[15]  
  57.     data['price_earnings_growth_ratio'] = values[16]  
  58.     data['price_sales_ratio'] = values[17]  
  59.     data['price_book_ratio'] = values[18]  
  60.     data['short_ratio'] = values[19]  
  61.     return data  
  62.       
  63.       
  64. def get_price(symbol):   
  65.     return __request(symbol, 'l1')  
  66.   
  67.   
  68. def get_change(symbol):  
  69.     return __request(symbol, 'c1')  
  70.       
  71.       
  72. def get_volume(symbol):   
  73.     return __request(symbol, 'v')  
  74.   
  75.   
  76. def get_avg_daily_volume(symbol):   
  77.     return __request(symbol, 'a2')  
  78.       
  79.       
  80. def get_stock_exchange(symbol):   
  81.     return __request(symbol, 'x')  
  82.       
  83.       
  84. def get_market_cap(symbol):  
  85.     return __request(symbol, 'j1')  
  86.      
  87.      
  88. def get_book_value(symbol):  
  89.     return __request(symbol, 'b4')  
  90.   
  91.   
  92. def get_ebitda(symbol):   
  93.     return __request(symbol, 'j4')  
  94.       
  95.       
  96. def get_dividend_per_share(symbol):  
  97.     return __request(symbol, 'd')  
  98.   
  99.   
  100. def get_dividend_yield(symbol):   
  101.     return __request(symbol, 'y')  
  102.       
  103.       
  104. def get_earnings_per_share(symbol):   
  105.     return __request(symbol, 'e')  
  106.   
  107.   
  108. def get_52_week_high(symbol):   
  109.     return __request(symbol, 'k')  
  110.       
  111.       
  112. def get_52_week_low(symbol):   
  113.     return __request(symbol, 'j')  
  114.   
  115.   
  116. def get_50day_moving_avg(symbol):   
  117.     return __request(symbol, 'm3')  
  118.       
  119.       
  120. def get_200day_moving_avg(symbol):   
  121.     return __request(symbol, 'm4')  
  122.       
  123.       
  124. def get_price_earnings_ratio(symbol):   
  125.     return __request(symbol, 'r')  
  126.   
  127.   
  128. def get_price_earnings_growth_ratio(symbol):   
  129.     return __request(symbol, 'r5')  
  130.   
  131.   
  132. def get_price_sales_ratio(symbol):   
  133.     return __request(symbol, 'p5')  
  134.       
  135.       
  136. def get_price_book_ratio(symbol):   
  137.     return __request(symbol, 'p6')  
  138.          
  139.          
  140. def get_short_ratio(symbol):   
  141.     return __request(symbol, 's7')  
  142.       
  143.       
  144. def get_historical_prices(symbol, start_date, end_date):  
  145.     """ 
  146.     Get historical prices for the given ticker symbol. 
  147.     Date format is 'YYYYMMDD' 
  148.      
  149.     Returns a nested list. 
  150.     """  
  151.     url = 'http://ichart.yahoo.com/table.csv?s=%s&' % symbol + \  
  152.           'd=%s&' % str(int(end_date[4:6]) - 1) + \  
  153.           'e=%s&' % str(int(end_date[6:8])) + \  
  154.           'f=%s&' % str(int(end_date[0:4])) + \  
  155.           'g=d&' + \  
  156.           'a=%s&' % str(int(start_date[4:6]) - 1) + \  
  157.           'b=%s&' % str(int(start_date[6:8])) + \  
  158.           'c=%s&' % str(int(start_date[0:4])) + \  
  159.           'ignore=.csv'  
  160.     days = urllib.urlopen(url).readlines()  
  161.     data = [day[:-2].split(','for day in days]  
  162.     return data  
  163.           

 

  使用工具类

 

Python代码  收藏代码
  1. import ystockquote  
  2. print ystockquote.get_price('600887.SS')  

 

 

=======================

 

 

和讯网股票查询接口
2011-01-26 12:38

最近想自己写个股票查询的小软件,网上找到了新浪的javascript接口,比较方便,但是新浪的接口没有把换手率等信息直接返回,刚好看到和讯网的接口有这个信息,所以记录下来。

查询接口例:

http://bdcjhq.hexun.com/quote?s2=000001.sh,399001.sz,399300.sz,601186.sh

 

返回结果:

 

 <html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><script type='text/javascript'>document.domain='hexun.com';</script></head><body></body><script>try{parent.bdcallback({"399001.sz":{na:"深证成指",pc:"11446.372",op:"11459.016",vo:"2193906",tu:"379028",hi:"11624.467",lo:"11459.016",la:"11558.021",type:"1",time:"2011-01-26 11:30:22"},"399300.sz":{na:"沪深300 ",pc:"2938.654",op:"2939.773",vo:"21205501",tu:"2559517",hi:"2971.763",lo:"2939.356",la:"2960.847",type:"1",time:"2011-01-26 11:31:07"},"601186.sh":{na:"中国铁建",pc:"7.22",op:"7.22",vo:"174035",tu:"12804",hi:"7.42",lo:"7.22",la:"7.39",type:"2",time:"2011-01-26 11:30:15",sy:"18.45",lt:"24.50",sz:"911.74",hs:"0.71",is:"0"},"tofnow":{time:"2011-01-26 11:37:51"}})}catch(e){}</script></html> 

 从返回的结果看,股票数据应该就是JSON串,因此解析就比较方便了。

各个字段的意义如下:

"601186.sh":          //股票代码

{

na:"中国铁建",       //股票中文名称

pc:"7.22",           //昨收盘

op:"7.22",           //今开盘

vo:"174035",         //成交量

tu:"12804",          //成交额

hi:"7.42",           //最高价

lo:"7.22",           //最低价

la:"7.39",           //现价

type:"2",            //类型,1:指数,2:股票?

time:"2011-01-26 11:30:15", //时间

sy:"18.45",          //市盈率= 现价/最近四个季度摊薄每股收益之和

lt:"24.50",          //流通股数(单位:亿股)

sz:"911.74",         //总市值(单位:亿)

hs:"0.71",           //换手率

is:"0"               // ??暂时未知

}

 

 

 

参考:

 

http://0411.iteye.com/blog/1068239

http://www.goldb.org/ystockquote.html

http://hi.baidu.com/mryongzhang/blog/item/352bde597b862892800a1893.html

 

 

 

分享
0 0
原创粉丝点击