@吻舞双全
```
# 计算 PEG 并排序筛选股票
# pe_ratio 市盈率(PE, TTM) 每股市价为每股收益的倍数,反映投资人对每元净利润所愿支付的价格,用来估计股票的投资报酬和风险
# 市盈率(PE,TTM)=(股票在指定交易日期的收盘价 * 截止当日公司总股本)/归属于母公司股东的净利润TTM
# inc_net_profit_year_on_year 净利润同比增长率(%)
# (当期的净利润-上月(上年)当期的净利润)/上月(上年)当期的净利润绝对值=净利润同比增长率
# PEG 指标
# 百度百科:https://baike.baidu.com/item/PEG指标/10904043
# PEG指标(市盈率相对盈利增长比率)是用公司的市盈率除以公司的盈利增长速度
# PEG指标(市盈率相对盈利增长比率)是Jim Slater发明的一个股票估值指标,是在PE(市盈率)估值的基础上发展起来的
# 它弥补了PE对企业动态成长性估计的不足
# 当时他在选股的时候就是选那些市盈率较低,同时它们的增长速度又是比较高的公司
# 这些公司有一个典型特点就是PEG会非常低
def get_peg(context,stocks):
# 通过 filter 子句限制了PEG的范围
q = query(valuation.code,
).filter(
valuation.pe_ratio / indicator.inc_net_profit_year_on_year > -3,
valuation.pe_ratio / indicator.inc_net_profit_year_on_year < 3,
valuation.code.in_(stocks)
)
df_fundamentals = get_fundamentals(q)
stocks = list(df_fundamentals.code)
# 对于筛选出来的股票按照 市值升序 排列
df = get_fundamentals(query(valuation.code).\
filter(valuation.code.in_(stocks)).\
order_by(valuation.market_cap.asc()))
return list(df.code)
```
代码里面有详细的说明和注释哈
建议克隆代码研究效率更高
2023-10-19