回测效果挺好,但是程序里有些逻辑错误,
"df = get_fundamentals(query(
valuation.code
).filter(
valuation.code.in_(stocks),
valuation.pe_ratio.between(0,25),#市盈率
indicator.inc_return >3,#净资产收益率(扣除非经常损益)(%)
indicator.inc_total_revenue_year_on_year>5,#营业总收入同比增长率(%)
indicator.inc_net_profit_year_on_year>11,#净利润同比增长率
valuation.pe_ratio / indicator.inc_net_profit_year_on_year>0.08,#净利润同比增长率
valuation.pe_ratio / indicator.inc_net_profit_year_on_year< 1.9,
))"
执行这个过滤后,股息率排序的stocks list,顺序会被打乱,所以虽然选了些优质股,但是最后排序并不是按股息率的,最后的排序可能是按照数据库中存储数据的顺序来的。
2024-03-13