导入数据
import pandas as pd
from urllib.request import urlopen
新浪财经接口
- 返回一个股票的数据:http://hq.sinajs.cn/list=sz000001 修改股票代码。交易时间获取数据。
- 返回一串股票的数据:http://hq.sinajs.cn/list=sh600000,sz000002,sz300001
- 正常网址:https://finance.sina.com.cn/realstock/company/sh600000/nc.shtml
- 港股:http://hq.sinajs.cn/list=hk00941
- 美股:http://hq.sinajs.cn/list=gb_amzn
从各类财经网站爬去数据,需要一定的爬虫知识
url = "http://hq.sinajs.cn/list=sh600000,sz000002,sh600519,sz300383,sz000538,sz000661,sh601857,sh601399,sz000858,hk00941"
content = urlopen(url).read().decode('gbk')
转成Pandas的DataFrame
data_line = content.strip().split('\n') # 去掉文本前后的空格、回车等。每行是一个股票的数据
data_line = [i.replace('var hq_str_', '').split(',') for i in data_line]
df = pd.DataFrame(data_line, dtype='float')
数据处理
df[0] = df[0].str.split('="')
df['stock_code'] = df[0].str[0].str.strip()
df['stock_name'] = df[0].str[-1].str.strip()
df['candle_end_time'] = pd.to_datetime(df[30] + ' ' + df[31]) # 股票市场的K线,是普遍以当跟K线结束时间来命名的
rename_dict = {1: 'open', 2: 'pre_close', 3: 'close', 4: 'high', 5: 'low', 6: 'buy1', 7: 'sell1',
8: 'amount', 9: 'volume', 32: 'status'} # 还有更多feature
df.rename(columns=rename_dict, inplace=True)
df['status'] = df['status'].str.strip('";')
df = df[['stock_code', 'stock_name', 'candle_end_time', 'open', 'high', 'low', 'close', 'pre_close', 'amount', 'volume',
'buy1', 'sell1', 'status']]
print(df)
存储数据
df.to_csv('stock_data.csv', index=False, encoding="utf_8_sig")
附录
盈透证券API方案,港美股量化实盘交易
锐思Resset、国泰安数据库,支持A股和港股股票行情,淘宝购买,支持下载
Tushare,支持A股股票历史和实时行情,Python免费安装
Rqalpha,支持A股股票日线级别行情,Python本地安装
支持数据获取、算法交易、回测引擎、实盘模拟、数据分析,综合性的量化方案
Wind量化接口个人版
A股股票指数和基金行情和财务数据
investing.com,国内外指数和外汇历史数据,支持下载
新浪财经api,支持外汇股票实时行情,暂无python模块
实时行情
A股股票&基金
http://hq.sinajs.cn/list=sh601006
http://hq.sinajs.cn/list=sh502007
A股指数
http://hq.sinajs.cn/list=s_sz399001
港股股票
http://hq.sinajs.cn/list=hk02333
http://hq.sinajs.cn/list=rt_hkCSCSHQ #沪港通资金流量
港股指数
http://hq.sinajs.cn/list=int_hangseng
http://hq.sinajs.cn/list=rt_hkHSI
http://hq.sinajs.cn/list=hkHSI,hkHSCEI,hkHSCCI #恒生指数,恒生国企指数,恒生红筹指数
美股股票&基金
http://hq.sinajs.cn/list=gb_amzn
http://hq.sinajs.cn/list=usr_amzn
http://hq.sinajs.cn/list=usr_russ
美股指数
http://hq.sinajs.cn/list=int_nasdaq
http://hq.sinajs.cn/list=gb_ixic #纳斯达克指数
http://hq.sinajs.cn/list=int_dji
http://hq.sinajs.cn/list=int_sp500
http://hq.sinajs.cn/list=int_ftse #伦敦指数
http://hq.sinajs.cn/list=int_bloombergeuropean500 #彭博欧洲500指数
http://hq.sinajs.cn/list=int_dax30,int_djstoxx50
外汇行情
http://hq.sinajs.cn/list=XAUUSD
http://hq.sinajs.cn/list=DINIW #美元指数
黄金&白银
http://hq.sinajs.cn/list=hf_XAU
http://hq.sinajs.cn/list=hf_XAG
http://hq.sinajs.cn/list=hf_GC #COMEX黄金
http://hq.sinajs.cn/list=hf_SI #COMEX白银
http://hq.sinajs.cn/list=hf_AUTD #黄金TD
http://hq.sinajs.cn/list=hf_AGTD #白银TD
http://hq.sinajs.cn/list=AU0 #黄金期货
http://hq.sinajs.cn/list=AG0 #白银期货
http://hq.sinajs.cn/list=hf_CL #NYMEX原油
期货
http://hq.sinajs.cn/list=CFF_LIST #金融期货合约
http://finance.sina.com.cn/iframe/futures_info_cff.js #商品与金融期货合约
http://hq.sinajs.cn/?list=CFF_RE_IF1705 #合约行情
期权合约的月份
http://stock.finance.sina.com.cn/futures/api/openapi.php/StockOptionService.getStockName
期权合约到期日
看涨期权合约
http://hq.sinajs.cn/list=OP_UP_5100501705
看跌期权合约
http://hq.sinajs.cn/list=OP_DOWN_5100501705
期权行情
http://hq.sinajs.cn/list=CON_OP_10000869
http://hq.sinajs.cn/list=CON_ZL_10000869
http://hq.sinajs.cn/list=CON_SO_10000869
热门股票
http://finance.sina.com.cn/realstock/company/hotstock_daily_a.js
新股日历
http://vip.stock.finance.sina.com.cn/corp/view/iframe/vAK_NewStockIssueFrame_2015.php?num=10
定增列表
http://vip.stock.finance.sina.com.cn/corp/view/vAK_IncreaseStockIssueFrame_2015.php?num=10
基金公司
Quandl,支持美国股票数据(部分免费),python免费安装,访问Github地址
pandas_datareader,雅虎财经封装的python模块(雅虎财经接口关闭)
Yahoo财经api,支持A股港股美股历史和实时数据(官方已关闭)
历史数据
http://table.finance.yahoo.com/table.csv?s=AMZN
或者
http://ichart.yahoo.com/table.csv?s=600000.SS&a=08&b=25&c=2010&d=09&e=8&f=2010&g=d
参数:
s — 股票名称
a — 起始时间,月
b — 起始时间,日
c — 起始时间,年
d — 结束时间,月
e — 结束时间,日
f — 结束时间,年
g — 时间周期。w表示周期是周,d表示日,m表示月,v表示dividends only
上海市场后缀.ss
深圳市场后缀.sz
香港市场