问财量化选股策略逻辑
- 今日增仓占比>5%
- 今日最大跌幅<-4且>-5
- 30日平均线向上
选股逻辑分析
该策略基于三个量化指标来筛选股票。首先,要求今日的增仓比例大于5%,这表明机构投资者正在买入该股票。其次,要求今日的最大跌幅小于-4且大于-5,这表明该股票的价格在过去一段时间内波动较小,且有上涨的趋势。最后,要求30日平均线向上,这表明该股票的长期趋势是上涨的。
有何风险?
该策略的局限性在于它只考虑了股票的短期趋势和机构投资者的买入行为,而没有考虑公司的基本面情况和市场整体环境。此外,由于该策略仅考虑了30日内的平均线,因此可能无法捕捉到长期趋势。
如何优化?
为了优化该策略,可以考虑将更多的时间周期纳入平均线的计算,例如60日、90日等,以更好地捕捉长期趋势。此外,可以考虑加入其他量化指标,例如市盈率、市净率等,以更好地评估公司的基本面情况。
最终的选股逻辑
- 今日增仓占比>5%
- 今日最大跌幅<-4且>-5
- 30日平均线向上
- 60日平均线向上
- 市盈率小于20
- 市净率大于1
python代码参考
import talib
def get_top_gainers():
# 获取所有A股股票的代码和名称
codes = list(a股代码)
names = list(a股名称)
# 初始化增仓比例和跌幅数据
gainers = []
losers = []
for code in codes:
gainers.append(0)
losers.append(0)
# 获取今日增仓比例和跌幅数据
for code in codes:
data = yf.download(code, start='2021-01-01', end='2021-12-31')
gainers[code] = data['net_long_pos'] / data['total_net_long_pos'] * 100
losers[code] = max(data['close'].values) - min(data['close'].values)
# 获取30日平均线数据
ma30 = talib.MA(data['close'], timeperiod=30)
# 获取60日平均线数据
ma60 = talib.MA(data['close'], timeperiod=60)
# 获取市盈率和市净率数据
pe = data['pe']
pb = data['pb']
# 初始化筛选条件
cond1 = gainers > 5
cond2 = losers < -4
cond3 = ma30 > ma60
# 过滤满足条件的股票
filtered_codes = []
filtered_names = []
for code, name in zip(codes, names):
if cond1[code] and cond2[code] and cond3[code]:
filtered_codes.append(code)
filtered_names.append(name)
# 返回筛选结果
return filtered_codes, filtered_names
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


