一、基础概念介绍
(一)市盈率(PE)
市盈率是股票价格与每股收益的比率,计算公式为:市盈率 = 股票价格 / 每股收益 。它反映了投资者为获取公司每一元盈利所愿意支付的价格。例如,一只股票价格为 50 元,每股收益为 5 元,其市盈率就是 10 倍。
低市盈率可能意味着股票被低估,具有投资价值;但也可能预示着公司业绩增长缓慢或存在问题。高市盈率则表示投资者对公司未来增长预期较高,但也蕴含较大风险。不同行业的市盈率通常有较大差异,如科技行业平均市盈率较高,而银行等传统行业市盈率相对较低。
(二)流通市值
流通市值是指在某个特定时间内,上市公司可流通股票的市场价值总和,即 流通市值 = 流通股数 × 股票价格 。它衡量了股票在市场上的规模大小。
大流通市值股票通常稳定性较高,多为行业龙头,不易被资金过度炒作,但股价波动相对较小。小流通市值股票则股性较为活跃,可能因资金的进出而出现较大涨幅,但风险也相对较高。
(三)PEG 指标
PEG 指标即市盈率相对盈利增长比率,计算公式为:PEG = 市盈率 /(盈利增长率 × 100) 。它弥补了市盈率只考虑当前盈利情况的不足,将市盈率与公司未来盈利增长速度相结合。
一般认为,PEG 小于 1 时,股票具有较好的投资价值,表明股票价格相对其盈利增长速度被低估。PEG 大于 1,股票可能被高估,或者市场对其未来盈利增长预期过高。
二、数据获取
(一)使用第三方金融数据平台
- Wind 金融终端:这是专业金融人士常用工具,提供全面准确的金融数据。在 Wind 中,通过 “股票筛选器” 功能,可设定市盈率、流通市值、PEG 等指标筛选条件,快速获取符合条件的股票列表。例如,设置市盈率区间为 10 - 30 倍,流通市值大于 50 亿元,PEG 小于 1,就能筛选出满足这些条件的股票。
- 东方财富 Choice 金融终端:操作界面友好,数据丰富。在 “数据浏览器” 中,可选择 “股票” 相关数据,添加市盈率、流通市值、PEG 字段,并设置筛选条件进行筛选。
(二)利用 Python 获取数据
以akshare
库为例,这是一个免费且功能强大的金融数据获取库。
import akshare as ak
import pandas as pd
# 获取A股所有股票的基本信息
from tqdm import tqdm
df = ak.stock_zh_a_spot_em()
print(len(df), "/".join(df))
# 5684序号/代码/名称/最新价/涨跌幅/涨跌额/成交量/成交额/振幅/最高/最低/今开/昨收/量比/换手率/市盈率-动态/市净率/总市值/流通市值/涨速/5分钟涨跌/60日涨跌幅/年初至今涨跌幅
# 排除ST股票
df = df[~df['名称'].str.contains('ST')]
# 保留主板股票
df = df[df["代码"].str.startswith("00") | df["代码"].str.startswith("60")]
# 市盈率-动态介于10到30之间
df = df[(df["市盈率-动态"] >= 10) & (df["市盈率-动态"] <= 30)]
# 流通市值结余50亿到2000亿之间
df = df[(df["流通市值"] >= 5e9) & (df["流通市值"] <= 200e9)]
print("初筛股票数:", len(df))
# 股票列表
stock_list = df[["代码", "名称"]].values.tolist()
# 存储所有股票的相关指标数据
all_stock_data = []
for code, name in tqdm(stock_list):
try:
# 获取指定股票PEG数据
stock_value_em_df = ak.stock_value_em(symbol=code)
pe = stock_value_em_df['PE(TTM)'].iloc[-1]
peg = stock_value_em_df['PEG值'].iloc[-1]
if not stock_value_em_df.empty:
rise = stock_value_em_df['当日涨跌幅'].iloc[-1]
market_capital = stock_value_em_df['流通市值'].iloc[-1]
pe = stock_value_em_df['PE(TTM)'].iloc[-1]
peg = stock_value_em_df['PEG值'].iloc[-1]
if pe >= 10 and pe <= 30 and peg > 0 and peg <= 0.75:
all_stock_data.append({
'股票代码': code,
'股票名称': name,
'当日涨幅': rise,
'市盈率': pe,
'流通市值': market_capital,
'PEG': peg
})
except Exception as e:
print(f"获取股票{code}数据失败: {e}")
result_df = pd.DataFrame(all_stock_data)
print(result_df)
三、筛选策略制定
(一)设定筛选条件
- 市盈率范围:根据不同行业特性和市场情况,一般将市盈率设定在 10 - 30 倍之间。对于稳健型投资者,可偏向于 10 - 20 倍的股票,这类股票通常具有较为稳定的盈利,被高估风险较低。对于愿意承担一定风险,追求较高收益的投资者,可将范围扩大到 20 - 30 倍,该区间可能存在一些成长型股票。
- 流通市值标准:如果追求稳定性和流动性,可选择流通市值大于 50 亿元的股票。这类股票在市场波动时,抗风险能力较强,且交易活跃,便于买卖。若希望挖掘潜在黑马股,也可适当考虑流通市值在 10 - 50 亿元的股票,但需对其基本面进行更深入研究。
- PEG 指标阈值:PEG 小于 1 是筛选的重要标准,表明股票价格相对其盈利增长被低估。为进一步筛选出优质股票,可将 PEG 范围缩小至 0.5 - 1 之间,这个区间的股票可能具有更好的性价比。
(二)综合筛选
通过数据平台或 Python 代码,将上述三个指标的筛选条件结合起来,筛选出同时满足市盈率在 10 - 30 倍、流通市值大于 50 亿元(或其他设定值)、PEG 小于 0.75(或 0.5 - 1)的股票。这样初步筛选出的股票在估值、规模和增长潜力方面具有一定优势。
四、深入分析与验证
(一)行业分析
- 行业前景:分析筛选出股票所属行业的发展趋势。例如,新能源行业受政策支持和市场需求增长影响,未来发展空间广阔;而一些传统夕阳行业,如传统煤炭采选业,可能面临行业萎缩风险。优先选择处于上升期行业的股票,其盈利增长更具持续性。
- 行业竞争格局:了解行业内企业的竞争态势,龙头企业往往具有品牌、技术、规模等优势,更有可能在市场竞争中脱颖而出,获取更高的市场份额和利润。例如,白酒行业的贵州茅台,凭借其品牌优势和强大的市场地位,在行业内占据领先地位。
(二)公司基本面分析
- 财务状况:详细研究公司的资产负债表、利润表和现金流量表。关注资产负债率,合理的资产负债率一般在 40% - 60% 之间,过高表明公司偿债压力大;查看净利润增长率,持续稳定增长的净利润是公司良好发展的标志;分析经营活动现金流量净额,正数且金额较大说明公司经营状况良好,资金回笼顺畅。
- 管理层能力:通过查阅公司公告、新闻报道,了解管理层的过往业绩、战略决策能力和管理水平。优秀的管理层能够带领公司把握市场机遇,实现持续增长。例如,苹果公司在蒂姆・库克的领导下,不断推出创新产品,保持行业领先地位。
(三)技术分析辅助(可选)
- 趋势分析:通过观察股票价格走势,判断其处于上升趋势、下降趋势还是盘整阶段。上升趋势的股票表明市场对其较为看好,具有继续上涨的动力。例如,通过绘制股票的日线图,观察其均线系统,若短期均线在长期均线上方,且均线呈多头排列,说明股票处于上升趋势。
- 成交量分析:成交量反映了股票的活跃程度和市场参与度。在股价上涨过程中,成交量逐渐放大,表明有更多资金流入,推动股价上涨;而在股价下跌时,成交量萎缩,说明市场抛售压力减小。例如,当股票突破重要阻力位时,成交量显著放大,说明突破的有效性较高。
五、风险控制
(一)分散投资
不要把所有资金集中在一只或几只股票上。将资金分散投资于不同行业、不同规模的股票,降低单一股票波动对投资组合的影响。例如,同时投资金融、消费、科技等不同行业的股票,避免因某个行业出现系统性风险而导致巨大损失。
(二)设置止损和止盈
- 止损:设定一个能够承受的亏损比例,如 10%。当股票价格下跌达到该比例时,果断卖出,防止亏损进一步扩大。例如,以 100 元买入一只股票,当股价跌至 90 元时,执行止损操作。
- 止盈:根据投资目标和市场情况,设定止盈点。例如,当股票涨幅达到 30% 时,可部分卖出锁定利润;若股价继续上涨,可逐步卖出剩余股票。这样既能保证获得一定收益,又能避免因市场回调而失去全部利润。
通过以上步骤,投资者可以利用市盈率、流通市值、PEG 等指标,结合行业分析、公司基本面分析和技术分析,筛选出优质股票,并在投资过程中做好风险控制,提高投资成功的概率。但需注意,股票市场复杂多变,任何投资策略都不能保证绝对盈利,投资者应持续学习,积累经验,根据市场变化及时调整投资策略。