问财量化选股策略逻辑
本选股策略在日线上选取以下股票:振幅大于1、500日内至少2次涨停,深证主板中市盈率0-29.01市净率0-3.11的股票。
选股逻辑分析
本选股策略在振幅大于1和500日内至少2次涨停的基础上,加入了市盈率和市净率的过滤条件。指定市盈率和市净率范围可以筛选出相对估值较低的标的股票。同时,深证主板是国内最具活力的股票市场之一,与上海证券交易所一起构成了A股市场,在市场流动性等方面具有优势。
有何风险?
市盈率和市净率指标可能会被利用进行操纵,例如业绩造假,因此需要选取质量较高的数据源进行筛选。此外,市盈率和市净率波动较大,需要选择合适的时间窗口进行计算,以避免选股策略的稳定性受到影响。
如何优化?
可以选择多个质量较高的数据源,例如巨潮资讯、Wind等进行市盈率和市净率数据的获取,以避免被操纵的风险。同时,可以采用滚动时间窗口的方式计算市盈率和市净率,并根据选取的时间窗口进行调整,以降低波动性对选股策略带来的影响。
最终的选股逻辑
选取振幅大于1和500日内至少2次涨停,且市盈率在0-29.01,市净率在0-3.11范围内的深证主板股票。
同花顺指标公式代码参考
振幅大于1和500日内至少2次涨停参考上文的公式。
市盈率:PE ,市净率:PB 。
python代码参考
import tushare as ts
# 定义要筛选的企业性质列表
property_list = ['证券', '银行', '保险']
# 定义市盈率和市净率的范围
pe_range = [0, 29.01]
pb_range = [0, 3.11]
data = ts.get_stock_basics()
selected_stocks = data[(data['high'] - data['low']).mean() / data['close'].mean() > 0.01]
selected_stocks = selected_stocks[(selected_stocks['high'] / selected_stocks['low'].shift(1) > 1.099).rolling(500).sum() >= 2]
selected_stocks = selected_stocks[(selected_stocks['pe'] >= pe_range[0]) & (selected_stocks['pe'] <= pe_range[1])]
selected_stocks = selected_stocks[(selected_stocks['pb'] >= pb_range[0]) & (selected_stocks['pb'] <= pb_range[1])]
selected_stocks = selected_stocks[selected_stocks.index.map(lambda x: x.startswith('00'))]
#输出选中的股票
print(selected_stocks.index.tolist())
以上代码仅供参考,投资者可以根据自身需求和市场情况进行调整和验证。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
