自己做量化交易软件(17)通过基本面建立自己的股票池

 

股票池

自己做量化交易软件(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) 

参照上面例子,根据经验作自己的选股程序

相关阅读

使用Sina API获取新浪财经的证券股票数据接口(时价 K

从网上找到的Sina API的财经API说,Mark一下,以供以后参考http://market.finance.sina.com.cn/downxls.php?date=2011-07-08&symbol=

股权登记日第二天卖出股票是否还能得到现金分红?

  问:股权登记日为5月19日,如果20号卖出会不会有分红? 答:只要你在股权登记日的当天15:00之前有过此股,那以后抛掉都有分红,因为电脑已

股票中的情侣——配对交易

什么是配对交易? 配对交易(Pairs Trading)是指八十年代中期华尔街著名投行Morgan Stanley的数量交易员Nunzio Tartaglia成立的一个数

获取股票实时交易数据的方法

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,

【深度】从雪球和牛股王的产品发展路径说开去,股票类Ap

核心观点股民这个大群体,是需要区分对待的:其中包含一小部分有自己独立判断能力的投资者和一大群没有自己判断能力(尽管他们经常觉得

发表评论