量化学习 | Tushare 基本面选股 (二)

摘要:
首先,从tushare_basiclast_year='20190101'开始日期='20200313'mytoken='your_token'ts.set_token(mytoken)pro=ts.pro_api()df=pro.daily_basic(ts_code='',trade_date=start_date,

量化投资比较重要的是策略,可是你得先选个好股,价值投资需要认同他的价值,值得投资的股票才有投资的机会,现在简单介绍一下基于基本面的选股,其实我现实生活中也有炒股,都是经验之说的选股原则。

首先从tushare中获取每日指标 pro.daily_basic

last_year = '20190101'
start_date = '20200313'
mytoken='your_token'
ts.set_token(mytoken)
pro = ts.pro_api()
df = pro.daily_basic(ts_code='', trade_date=start_date, fields='ts_code,trade_date,turnover_rate,volume_ratio,pe,pb')

P.S. 用户需要至少300积分才可以调取,我是学生进了官方群之后管理员帮我升级到了2000积分,所以大部分接口我都能使用。欢迎大家在我的链接下注册会送我积分

https://tushare.pro/register?reg=355247

首先我们筛选PE为15以下的,PB为7一下的股票:

  • PE是每股股价除以每股收益。如果股价是10元/股,每股收益是1元,PE就相当于10倍,你买这家公司的价钱相当于付出这家公司每年盈利的倍数。一般30以下才觉得可以接受。
  • PB是每股股价除以每股净资产的倍数。如果股价是10元/股,净资产是5元/股,PB就是2倍,也相当于付出的是这个公司净资产的2倍。一般8以下可以接受,我这里调整成小一些,因为最近跌幅挺大的,所以很多公司跌破净资产。
PE_T = 15
PB_T = 1
df_choose = df[(df.pe<=PE_T)&(df.pb<=PB_T)]

符合条件的有198只股票,接着我们筛选一下近期公布的收益

收益可以通过pro.income接口查询:

income = []
for c in df_choose.ts_code:
    df_income = pro.income(ts_code=c,start_date=last_year,end_date=start_date,fields='ts_code,ann_date,f_ann_date,end_date,report_type,comp_type,basic_eps,diluted_eps')
    income.append(df_income['basic_eps'].iloc[0])
df_choose['basic_eps']=income
df_choose_good = df_choose[df_choose.basic_eps>1.0]
print(len(df_choose_good))

收益大于1.0的股票df_choose_good中含有23只股票

接着我想得出这些这些股票代码的股票名字,可以查询这个接口pro.stock_basic ,并且我存下该表格。

data_path = './data/'
if not os.path.exists(data_path):
    os.makedirs(data_path)
csv_name = f'allname_data.csv'
csv_path = os.path.join(data_path,csv_name)
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
data.to_csv(csv_path, index=False)
data[data.ts_code.isin(df_choose_good.ts_code)]
ts_codesymbolnameareaindustrylist_date
33000042.SZ000042中洲控股深圳全国地产19940921
97000501.SZ000501鄂武商A湖北百货19921120
480002024.SZ002024苏宁易购江苏电器连锁20040721
583002128.SZ002128露天煤业内蒙煤炭开采20070418
600002146.SZ002146荣盛发展河北全国地产20070808
2201600000.SH600000浦发银行上海银行19991110
2211600016.SH600016民生银行北京银行20001219
2247600064.SH600064南京高科江苏园区开发19970506
2356600188.SH600188兖州煤业山东煤炭开采19980701
2564600449.SH600449宁夏建材宁夏水泥20030829
2770600694.SH600694大商股份辽宁百货19931122
2773600697.SH600697欧亚集团吉林百货19931206
2919600859.SH600859王府井北京百货19940506
2964600919.SH600919江苏银行江苏银行20160802
2965600926.SH600926杭州银行浙江银行20161027
3034601088.SH601088中国神华北京煤炭开采20071009
3062601186.SH601186中国铁建北京建筑工程20080310
3076601229.SH601229上海银行上海银行20161116
3111601577.SH601577长沙银行湖南银行20180926
3134601677.SH601677明泰铝业河南20110919
3157601828.SH601828美凯龙上海其他商业20180117
3158601838.SH601838成都银行四川银行20180131
3201601997.SH601997贵阳银行贵州银行20160816

这个就是选出来的股,看来银行最近跌得挺厉害的,看好银行在后期反弹。

量化学习 | Tushare 基本面选股 (二)第1张

量化学习 | Tushare 基本面选股 (二)第2张

ts_codesymbolnameareaindustrylist_date
0000001.SZ1平安银行深圳银行19910403
140000553.SZ553安道麦A湖北农药化肥19931203
272000732.SZ732泰禾集团福建区域地产19970704
2201600000.SH600000浦发银行上海银行19991110
2210600015.SH600015华夏银行北京银行20030912
2356600188.SH600188兖州煤业山东煤炭开采19980701
2522600383.SH600383金地集团深圳全国地产20010412
2608600508.SH600508上海能源上海煤炭开采20010829
2770600694.SH600694大商股份辽宁百货19931122
2852600782.SH600782新钢股份江西普钢19961225
2919600859.SH600859王府井北京百货19940506
3016601009.SH601009南京银行江苏银行20070719
3057601166.SH601166兴业银行福建银行20070205
3076601229.SH601229上海银行上海银行20161116
3157601828.SH601828美凯龙上海其他商业20180117
3201601997.SH601997贵阳银行贵州银行20160816

免责声明:文章转载自《量化学习 | Tushare 基本面选股 (二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java Web项目案例之---登录和注册(精华版)使用Android Studio时so文件打包不到APK中下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

主流框架中DOMContentLoaded事件的实现(转)

也许还有朋友不太清楚DOMContentLoaded这个事件。简单的说,这个事件就是要在大多数情况下去替代window.onload事件,因为window.onload事件必须要等待页面所有元素的资源都下载完毕时才触发。这个事件实际是上w3c推荐的标准事件,是在DOM树建成的时候触发,因此要比onload事件快很多。ff, opera高版本已经支持了该事件...

JavaScript核心之事件详解(EventTarget接口,js事件传播,Event对象)

事件是一种异步编程的实现方式,本质上是程序各个组成部分之间传递的特定消息。DOM支持大量的事件,本节介绍DOM的事件编程。 1 EventTarget接口DOM的事件操作(监听和触发),都定义在EventTarget接口。Element节点、document节点和window对象,都部署了这个接口。此外,XMLHttpRequest、AudioNode、A...

Kalman Filter算法详解

关键词:卡尔曼滤波 线性最优估计 迭代 预测值 估计值 协方差矩阵 状态转移方程 观测方程 最小均方估计 预测+矫正    经典的卡尔曼滤波是一个迭代的线性的最优状态估计器。利用最小均方误差原理,可以保证状态值的估计是最优的。它只需要知道上次的状态估计值和当前的测量值,就可以预测到当前的最优估计值,适用于实际系统,共需5个方程既可以得到完成一次迭代。卡尔曼...

windows计划任务+批处理文件实现oracle数据库的定时备份与恢复

1.备份:PS:2014-1-15 如果导出的dmp数据文件不大的话,就直接每天导出好了,不要只保存七天的数据。然后顶起通过winrar对文件进行打包,我发现dmp文件的压缩包还是很高的。 那么就需要考虑在导出的dmp文件末尾加上日期了。bat脚本里面有date和time的函数,通过以下函数我们就可以得到想要的日期了。如果要求日期是以"-"结束,需要设定日...

python学习笔记(十七)flask模块写接口

1 import flask,json 2 from tools import op_mysql #op_mysql() 3 # 接口,后台服务 4 server = flask.Flask(__name__) #把咱们这个app这个python文件当做一个server 5 @server.route('/get_user',methods=[...

Django学习系列之django restframework

曾几何时,Ajax已经统治了Web开发中的客户端,而REST成为web世界中最流行的架构风格(architecture style)。所以我们的选择变得很简单:前端ajax访问后端的RESTful API对资源进行操作Django中有一些可选的REST framework,比如django-piston,django-tasypie。 但是我和google...