多因子选股之tushare数据获取

多因子选股模型是一种常见的量化投资模型,多因子选股模型构建需要获取因子数据。下面就是介绍如何获取因子数据并储存起来的。

一、获取数据方法

本文从tushare官网(tushare数据接口)获取股票数据,使用Python语言。

import tushare as ts
ts.set_token("36c4bc12e6659f16e1bd6f8b4fed981d2a09ade336bb22cec25644cc")
pro = ts.pro_api()

df = pro.daily(trade_date='20200325')

二、存数据之存入MySQL数据库

1.连接MySQL数据库

连接MySQL数据库,首先需要电脑有MySQL数据库,可以自行下载并配置环境变量。

首先需要连接数据库,可以执行数据库建表,查询,添加,删除等操作。在对数据库操作完成后需要关闭数据库连接。

代码如下(示例):

# 初始化数据库连接
mydb = pymysql.connect(host='localhost',user='root',password='自己的密码',database='myDb')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = mydb.cursor()

#sql查询语句
sql = select * from myDb
# 使用 execute()  方法执行 SQL 语句
cursor.execute(sql)

# 关闭数据库连接
mydb.close()

2.建表添加数据

#建表---股票基础信息(stock_basic_info)
sql = """CREATE TABLE STOCK_BASIC_INFO (
         id int , ts_code  CHAR(30) NOT NULL,
         symbol  CHAR(20) comment '股票代码',name CHAR(20) comment '股票名称',
         area CHAR(20) comment '地域',industry CHAR(20) comment '所属行业',
         fullname CHAR(60) comment '股票全称',enname CHAR(60) comment '英文全称',
         list_status CHAR(20) comment '上市状态',market CHAR(20) comment '市场类型')"""

cursor.execute(sql)

#根据tushare接口查询数据,并将数据添加至所建的表里
#查询当前所有正常上市交易的股票列表
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,fullname,enname,list_status,market')

#通过循环语句逐行添加数据
for index,row in data.iterrows():
    sql = "INSERT INTO STOCK_BASIC_INFO(id ,ts_code, \
          symbol,name,area,industry,fullname,list_status ,market) \
          VALUES ('%d','%s', '%s',  '%s',  '%s',  '%s','%s', '%s',  '%s')" % \
          (index,row['ts_code'],row['symbol'],row['name'],row['area'],row['industry'],row['fullname'],row['list_status'],row['market'])
    # print(index)
    #执行sql语句
    cursor.execute(sql)
# 执行sql语句
mydb.commit()

3.读入数据

代码如下(示例):

#读取数据
stock_data = pd.read_sql('SELECT * FROM stock_data.stock_basic_info',mydb)

二、存数据之存csv文件

1.存为csv文件

代码如下(示例):

import tushare as ts
pro = ts.pro_api()
# 读取交易日历
df_tradeData = pro.trade_cal(exchange='', start_date='20180101', end_date='20181231')

# 保存交易日历
df_tradeData.to_csv(r'.\tradeDate.csv',index=False)

2.读入数据

代码如下(示例):

#读取.csv文件数据
df_Date = pd.read_csv(r'.\tradeDate.csv')
print(df_Date)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值