问财量化选股策略逻辑
该策略基于以下三个条件进行股票筛选:
- 至少5根均线重合的股票
- 100亿市值以内的无亏损企业
- 500日内至少2次涨停
选股逻辑分析
该策略通过筛选满足以上三个条件的股票,试图找到具备较强市场表现和盈利能力的股票。均线重合的股票可能表明市场趋势稳定,无亏损企业则说明公司经营状况良好,而多次涨停则表明股票具有较强的市场活跃度和投资者关注度。
然而,该策略也存在一定的风险。首先,该策略过于简单,可能无法捕捉到市场中更为复杂的股票表现。其次,该策略对于市值和涨幅的限制可能会导致错过一些优质股票。最后,该策略对于短期市场表现的依赖较大,可能无法长期保持投资收益。
如何优化?
为了优化该策略,可以考虑以下几点:
- 适当增加筛选条件,例如加入股票的市盈率、市净率等指标,以更全面地评估股票的价值和风险。
- 采用更灵活的时间周期,例如筛选过去一年或两年内的股票表现,以捕捉更长期的投资机会。
- 尝试使用更高级的量化分析工具,例如使用机器学习算法进行股票预测和筛选。
最终的选股逻辑
最终的选股逻辑如下:
- 筛选出100亿市值以内的无亏损企业。
- 计算股票的收盘价和成交量,筛选出过去500日内至少2次涨停的股票。
- 计算股票的收盘价和成交量,筛选出至少5根均线重合的股票。
- 计算股票的市盈率、市净率等指标,评估股票的价值和风险。
- 将以上条件进行综合评分,选择评分最高的前100只股票作为最终投资标的。
python代码参考
以下为该策略的python代码参考:
import talib
import pandas as pd
# 读取股票数据
data = pd.read_csv('stock_data.csv')
# 筛选出100亿市值以内的无亏损企业
data = data[(data['market_cap'] <= 100) & (data['loss'] == 0)]
# 筛选出过去500日内至少2次涨停的股票
data = data[(data['days_since_first涨停'] >= 500) & (data['days_since_second涨停'] >= 500)]
# 筛选出至少5根均线重合的股票
data = data[(data['close'].rolling(window=5).sum() >= 5) & (data['close'].rolling(window=5).sum() <= 10)]
# 计算股票的市盈率、市净率等指标
data = data[['close', 'volume', 'pe', 'pb']] # 增加市盈率和市净率等指标
data = data.apply(lambda x: x / x.shift(1), axis=1) # 对比上一交易日的收盘价,计算收益率
data = data.dropna() # 删除含有缺失值的行
# 综合评分
data['score'] = data['pe'] * 0.2 + data['pb'] * 0.3 + data['close'].rolling(window=5).sum() * 0.5
# 选择评分最高的前100只股票作为最终投资标的
top_100 = data.nlargest(100, 'score')
# 输出结果
print(top_100)
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


