Python量化实战(一):银行板块低估值选股策略

本项目的核心思路:根据pe ratio对股票进行分组,分组之后等权重投资低估值的股票,再平衡日为每月最后一天。

1 获取并处理数据

注:本项目使用的全部数据来自Tushare社区(id=570231):Tushare社区

1.1 获取数据

1.首先,我们安装一下Tushare库

pip install tushare

2.调用API之前,进行必要的初始化设置

import tushare as ts  # 导入Tushare
my_token = '你的Token'
pro = ts.pro_api(my_token)

3.获取A股所有股票的基本信息,包括:股票代码、股票名称、所在地、行业等最基本的信息

all_stock_basic_infos = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code, symbol, name, area, industry, list_date')
all_stock_basic_infos  # 查看一下刚刚获取到的数据

所有股票的基本信息
4.获取银行股票的基本信息

bank_stock_basic_infos = all_stock_basic_infos[all_stock_basic_infos['industry'] == '银行']
bank_stock_basic_infos

拿到的数据长这样:
银行股票基本信息
5.接下来,我们获取所有银行股票的日线行情数据
(1)先拿到所有银行股票代码的一个list

all_bank_stock_code = bank_stock_basic_infos['ts_code'].tolist()
print(all_bank_stock_code)

拿到的list输出如下所示:
list银行股票代码
(2)然后我们定义一个函数,随后使用for循环遍历all_bank_stock_code,获取到全部银行股的日线数据

bank_stock_daily = pd.DataFrame()    # 创建一个空的DataFrame,用于保存最后获得的银行股行情数据

# 定义一个函数,用于获取个股行情
def get_stock_daily(stock_code):
    """
    获取个股日线行情数据
    :param stock_code: 传入一个股票代码
    :return: 以DataFrame形式返回股票日线行情数据
    """
    df1 = pro.daily(ts_code=stock_code)
    if len(df1) == 6000:    # 每次最多获取6000条数据
        time.sleep(1.6)
        df2 = pro.daily(ts_code=stock_code, end_date=df1[
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值