股票财经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
- #!/usr/bin/env python
- #
- # Copyright (c) 2007-2008, Corey Goldberg (corey@goldb.org)
- #
- # license: GNU LGPL
- #
- # This library is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
- # version 2.1 of the License, or (at your option) any later version.
- import urllib
- """
- This is the "ystockquote" module.
- This module provides a Python API for retrieving stock data from Yahoo Finance.
- sample usage:
- >>> import ystockquote
- >>> print ystockquote.get_price('GOOG')
- 529.46
- """
- def __request(symbol, stat):
- url = 'http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s' % (symbol, stat)
- return urllib.urlopen(url).read().strip().strip('"')
- def get_all(symbol):
- """
- Get all available quote data for the given ticker symbol.
- Returns a dictionary.
- """
- values = __request(symbol, 'l1c1va2xj1b4j4dyekjm3m4rr5p5p6s7').split(',')
- data = {}
- data['price'] = values[0]
- data['change'] = values[1]
- data['volume'] = values[2]
- data['avg_daily_volume'] = values[3]
- data['stock_exchange'] = values[4]
- data['market_cap'] = values[5]
- data['book_value'] = values[6]
- data['ebitda'] = values[7]
- data['dividend_per_share'] = values[8]
- data['dividend_yield'] = values[9]
- data['earnings_per_share'] = values[10]
- data['52_week_high'] = values[11]
- data['52_week_low'] = values[12]
- data['50day_moving_avg'] = values[13]
- data['200day_moving_avg'] = values[14]
- data['price_earnings_ratio'] = values[15]
- data['price_earnings_growth_ratio'] = values[16]
- data['price_sales_ratio'] = values[17]
- data['price_book_ratio'] = values[18]
- data['short_ratio'] = values[19]
- return data
- def get_price(symbol):
- return __request(symbol, 'l1')
- def get_change(symbol):
- return __request(symbol, 'c1')
- def get_volume(symbol):
- return __request(symbol, 'v')
- def get_avg_daily_volume(symbol):
- return __request(symbol, 'a2')
- def get_stock_exchange(symbol):
- return __request(symbol, 'x')
- def get_market_cap(symbol):
- return __request(symbol, 'j1')
- def get_book_value(symbol):
- return __request(symbol, 'b4')
- def get_ebitda(symbol):
- return __request(symbol, 'j4')
- def get_dividend_per_share(symbol):
- return __request(symbol, 'd')
- def get_dividend_yield(symbol):
- return __request(symbol, 'y')
- def get_earnings_per_share(symbol):
- return __request(symbol, 'e')
- def get_52_week_high(symbol):
- return __request(symbol, 'k')
- def get_52_week_low(symbol):
- return __request(symbol, 'j')
- def get_50day_moving_avg(symbol):
- return __request(symbol, 'm3')
- def get_200day_moving_avg(symbol):
- return __request(symbol, 'm4')
- def get_price_earnings_ratio(symbol):
- return __request(symbol, 'r')
- def get_price_earnings_growth_ratio(symbol):
- return __request(symbol, 'r5')
- def get_price_sales_ratio(symbol):
- return __request(symbol, 'p5')
- def get_price_book_ratio(symbol):
- return __request(symbol, 'p6')
- def get_short_ratio(symbol):
- return __request(symbol, 's7')
- def get_historical_prices(symbol, start_date, end_date):
- """
- Get historical prices for the given ticker symbol.
- Date format is 'YYYYMMDD'
- Returns a nested list.
- """
- url = 'http://ichart.yahoo.com/table.csv?s=%s&' % symbol + \
- 'd=%s&' % str(int(end_date[4:6]) - 1) + \
- 'e=%s&' % str(int(end_date[6:8])) + \
- 'f=%s&' % str(int(end_date[0:4])) + \
- 'g=d&' + \
- 'a=%s&' % str(int(start_date[4:6]) - 1) + \
- 'b=%s&' % str(int(start_date[6:8])) + \
- 'c=%s&' % str(int(start_date[0:4])) + \
- 'ignore=.csv'
- days = urllib.urlopen(url).readlines()
- data = [day[:-2].split(',') for day in days]
- return data
使用工具类
- import ystockquote
- print ystockquote.get_price('600887.SS')
=======================
最近想自己写个股票查询的小软件,网上找到了新浪的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
- 股票财经API笔记
- 连接雅虎财经API获取股票信息
- 连接雅虎财经API获取股票信息
- 雅虎财经股票数据API获取
- 雅虎财经和新浪财经股票API,中国A股实时和历史数据API获取
- 使用Sina API获取新浪财经的证券股票数据接口(时价 K线等)
- 新浪财经API
- 各大财经网站股票数据接口
- Python 抓取新浪财经股票数据
- 股票API
- 股票API
- 股票API
- 如何使用java获取雅虎财经上的股票信息
- java 抓取新浪财经网上的股票数据(1)
- R爬取新浪财经网的股票数据
- 爬取网易财经中股票的历史交易数据
- Python爬虫入门(爬取某网页财经部分股票数据)
- python爬取新浪财经的股票信息
- Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (上)
- 黑马程序员——集合——List、Set、泛型
- javac编译带包的源文件
- 释放托管与非托管资源(析构3)
- android手机如何连上ubuntu
- 股票财经API笔记
- ble学习笔记一---------开发环境搭建
- VC/Wince 实现仿Win8 Metro风格界面1——设计概述和自绘Button
- 题目1511:从尾到头打印链表
- Linux/Unix系统中自制回收站Trash
- HttpClient使用详解
- oracle 函数大全
- 数独自动填写程序
- Android开发基础规范