股票池
自己做量化交易软件(17)通过基本面建立自己的股票池
自动交易不能随便选股进行买卖,因此需要预先建立自己的股票池。
一般我们通过基本面来建立股票池,至少避免购买业绩非常差的股票。
我们主要关注的基本面参数主要有3个,市盈率,市净率,流通盘。
股票的内在价值核心由2部分组成:每股资产净值,每股收益率。
市净率=股价/每股净资产
市盈率=股价/每股收益。
选股流程如下:
(1)获取沪深上市公司的实时数据,其中包含股票代码,市盈率,市净率。
其中,删除业绩较差的ST股票,删除业绩亏算的股票, 删除净资产为负的股票。
(2)选取市盈率前100名股票。
(3)选取市净率前100名股票。
(4)对所选取的股票代码进行运算,选取同时满足的股票代码,建立股票池.
实盘中只在股票池中寻找买卖时机.
下面直接给出源代码,大家可以参考来进行改进为自己的选股策略.使用了tushare 数据。
# -*- coding: utf-8 -*-
#通过基本面选股,建立股票池
import tushare as ts
#获取最新股票数据
df=ts.get_today_all()
df1=df.copy() #建立一个备份
n=100 #选择前n个数据
#删除业绩较差的ST股票
df1['a']=[('ST' in x )for x in df1.name.astype(str)] #先给ST股票做标记a
df1=df1.set_index('a') #将a设置为索引
df1=df1.drop(index=[True]) #删除ST股票
df1=df1.reset_index(drop=True) #重建默认索引
#删除业绩亏损的股票
df1=df1[df1.per >0]
#删除净资产为负的股票
df1=df1[df1.pb >0]
#选取市盈率前100名股票
df2=df1.sort_values(by=['per'],ascending=True).head(n)
#选取市净率100名股票
df3=df1.sort_values(by=['pb'],ascending=True).head(n)
#生成股票代码集合,进行集合运算
g2=set(df2.code) #低市盈率股票代码
g3=set(df3.code) #低市净率股票代码
g=g2&g3 #集合交运算
zxg1=list(g) #把集合转为列表
print()
print('基本面选股结果:',zxg1)
参照上面例子,根据经验作自己的选股程序。
相关阅读
点击“技术领导
A5创业网(公众号:iadmin5)2月15日报道,美国股神沃伦·巴菲特执掌的伯克希尔哈撒韦公司削减了在iPhone制造商苹果的股份,据悉,苹果
体制、制度、机制,是现代企业经营管理的黄金三角,其中打造合适的“机制”是企业管理的核心,所谓“机制”,最重要
A5创业网(公众号:iadmin5)5月29日报道,暴风集团在昨日晚间发出公告,宣布公司筹划非公开发行股票事项,预计融资金额不会超过5000万元,经申
简介 蜗牛股票软件是博主在业余时间开发的一款股票软件,运行于Windows环境,目前已经开源到GitHub上,界面使用VC++/MFC开发,IDE选用Vi