利用tushare pro根据财务指标选股

本文介绍了一种基于中证500指数成分股的量化选股策略,通过排除特定板块、停牌股票,并综合考虑财务指标来筛选出潜力股。

选股策略:
1、以中证500为股票池;
2、按照权重从大到小排列获取后三百只股票;
3、过滤掉创业板及科创板的股票
4、过滤掉当天停牌的股票
5、 基础科目及衍生类:获取每只股票的finaexp_of_gr(财务费用/营业总收入)、current_exint(无息流动负债)、netdebt(净债务)。以上数据偏向小值。
6、 每股指标因子 undist_profit_ps(每股未分配利润)、q_eps(每股收益)、surplus_rese_ps(每股盈余公积)。以上数据取大值。
7、 价值因子:ar_turn(应收账款周转率)、cogs_of_sales(销售成本率)、debt_to_eqt(产权比率),其上数据取小值。
8、获取每只股票以上九个数据,3倍中位数去极值。
9、(5)中三个都利用1分位数分类,分位内的获得1分。(6)中三个都以四分位数进行区分,4分位内的获得1分。(7)中三个都利用1分位数分类,分位内的获得1分。
10、利用得分降序排列取前十只。

import tushare as ts
import pandas as pd
import numpy as np
import datetime
from dateutil.relativedelta import relativedelta
from time import sleep

# 日期处理
today = datetime.datetime.today().strftime('%Y%m%d')    #获取今天的年月日

lastday = datetime.datetime.today() - datetime.timedelta(days=1)  #获取前一天日期
lastday = lastday.strftime('%Y%m%d')

last_year = datetime.datetime.today() - relativedelta(months=12)   #获取前一年的日期
last_year = last_year.strftime('%Y%m%d')   # 转换成STR

Lastweek = datetime.datetime.today() - datetime.timedelta(days=7)   #获取前一周的日期
Lastweek = Lastweek.strftime('%Y%m%d')    # 转换成STR

last_mon = datetime.datetime.today() - relativedelta(months=1)   #获取前一月的日期
last_mon = last_mon.strftime('%Y%m%d')   # 转换成STR

ts.set_token('you token')
pro=ts.pro_api()

# 1 以中证500位股票池
df = pro.index_weight(index_code = '000905.SH', start_date = last_mon, end_date = today) 

#按照权重降序排序
df = df.sort_values(by = 'weight',ascending = False).reset_index()       

# 2 获取权重最轻的后300只股票
df = df.tail(300)

# 3、过滤掉创业板及科创板的股票
cy = df[df.con_code.str.contains('^30')]  # 利用正则表达式匹配以30开头的所有股票

cy_list = cy['con_code'].values.tolist()  # 将30开头的股票代码导出成一个列表
for i in cy_list:
df = df.drop(index=(df.loc[(df['con_code'] == i)].index
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhaojieming1990

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值