本文旨在分享编程经验,非炒股指导软件。
Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。
tushare接口为python接口,为了比较方便的获取数据,该系统为python+java环境。python主要用于股票数据获取和数据分析,java主要用于网站的搭建及结果的展示。
用于存储历史股票数据(近3年)和新闻舆论信息。
注意:若mysql数据库中存储中文,请使用utf8的方式创建:
CREATE DATABASE tushare DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
为了使用pyhton tushare工具包,安装了anaconda工具,在pycharm中需要配置anaconda所在的环境,如图:
本博客主要使用3张表,股票列表、行业分类和历史数据3张表
code,代码 name,名称 industry,所属行业 area,地区 pe,市盈率 outstanding,流通股本(亿) totals,总股本(亿) totalAssets,总资产(万) liquidAssets,流动资产 fixedAssets,固定资产 reserved,公积金 reservedPerShare,每股公积金 esp,每股收益 bvps,每股净资 pb,市净率 timeToMarket,上市日期 undp,未分利润 perundp, 每股未分配 rev,收入同比(%) profit,利润同比(%) gpr,毛利率(%) npr,净利润率(%) holders,股东人数
将数据存储到数据库python代码
def getStockBasic():
df = ts.get_stock_basics()
engine = create_engine('mysql://root:[email protected]/tushare?charset=utf8')
df.to_sql('stock_basics', engine, if_exists='append')
注意1:若没有提前建立数据表,该方法会自动在数据库中创建表。但可能没写字段无法自动对应,需要后期修改数据表。
注意2:该数据库请使用utf8的方式创建,否则在存储中文的时候,会失败。
CREATE DATABASE tushare DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
行业分类信息如下
将数据存储到数据库python代码
def getIndustryClassified():
df = ts.get_industry_classified()
engine = create_engine('mysql://root:[email protected]/tushare?charset=utf8')
df.to_sql('industry_classified', engine, if_exists='append')
3、历史数据表(该接口提供最近3年的历史成交数据)
#获取所有股票的历史数据
def getHistDataAll():
#从数据库读取所有股票代码
# 打开数据库连接
db = MySQLdb.connect("localhost", "root", "root", "tushare", charset='utf8')
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行SQL语句
sql = "select code from tushare.stock_basics"
cursor.execute(sql)
# 使用 fetchone() 方法获取所有数据
data = cursor.fetchall()
for da in data:
getHistData(da[0])
# 关闭数据库连接
db.close()
# 获取每只股票的历史数据
def getHistData(code):
df = ts.get_hist_data(code)
if df is not None:
df.insert(0, 'code', code)
engine = create_engine('mysql://root:[email protected]/tushare?charset=utf8')
# 存入数据库
df.to_sql('hist_data', engine, if_exists='append')
该表大约有200W条数据,在获取数据时,需要等待一段时间。
若考虑到每天自动同步历史数据的话,需要写一个定时任务,来自动同步每天数据。
(后续补充...)
若需要获取其他数据,可以从tushare网站自主选择添加。
相关问题,可QQ交流:1931969006