问财量化选股策略逻辑
首先,我们需要确定一个时间周期,这里我们选择10日。接下来,我们需要找到至少5根均线,这里我们选择5日、10日、20日、50日和200日均线。然后,我们需要筛选出10日涨幅大于0小于35的股票,即上涨趋势明显但涨幅还未过大的股票。最后,我们需要筛选出今日增仓占比大于5%的股票,即机构投资者今日加仓比例较大的股票。
综上所述,我们的选股逻辑如下:
def select_stock():
# 确定时间周期
time周期 = 10
# 确定均线
ma5 = df['close'].rolling(time周期).mean()
ma10 = df['close'].rolling(time周期).mean()
ma20 = df['close'].rolling(time周期).mean()
ma50 = df['close'].rolling(time周期).mean()
ma200 = df['close'].rolling(time周期).mean()
# 筛选出10日涨幅大于0小于35的股票
df['10_day_return'] = df['close'].pct_change(time周期)
df = df[df['10_day_return'] > 0]
df = df[df['10_day_return'] < 35]
# 筛选出今日增仓占比大于5%的股票
df['net_amount'] = df['amount'] - df['amount'].shift(time周期)
df['net_amount'] = df['net_amount'].cumsum()
df = df[df['net_amount'] > 0]
df = df[df['net_amount'] / df['amount'].sum() > 0.05]
# 将所有符合条件的股票合并
selected_stocks = df.merge(ma5, on='date')
selected_stocks = selected_stocks.merge(ma10, on='date')
selected_stocks = selected_stocks.merge(ma20, on='date')
selected_stocks = selected_stocks.merge(ma50, on='date')
selected_stocks = selected_stocks.merge(ma200, on='date')
# 返回符合条件的股票列表
return selected_stocks
选股逻辑分析
以上策略基于5日、10日、20日、50日和200日均线的移动平均线来筛选股票,这些均线能够反映股票的长期趋势和短期波动。同时,策略还考虑了10日涨幅和今日增仓占比两个因素,这两个因素能够反映股票的上涨动力和机构投资者的参与程度。综合来看,该策略能够筛选出一些具有上涨潜力和机构投资者参与的股票。
然而,该策略也存在一些风险。首先,该策略只考虑了短期趋势和机构投资者的参与程度,而忽略了其他因素,如公司的财务状况、行业前景等。因此,筛选出的股票可能存在一定的风险。其次,该策略的筛选条件较为严格,可能会漏掉一些具有潜力的股票。最后,该策略只考虑了股票的短期表现,而忽略了长期表现,可能会导致一些股票被筛选出来但实际上表现不佳。
如何优化?
为了优化该策略,我们可以考虑加入一些其他因素,如公司的财务状况、行业前景等。此外,我们还可以考虑调整筛选条件的严格程度,以更好地平衡筛选出的股票的质量和数量。最后,我们还可以考虑加入一些长期表现的指标,如市盈率、市净率等,以更好地评估股票的价值。
最终的选股逻辑
最终的选股逻辑如下:
def select_stock():
# 确定时间周期
time周期 = 10
# 确定均线
ma5 = df['close'].rolling(time周期).mean()
ma10 = df['close'].rolling(time周期).mean()
ma20 = df['close'].rolling(time周期).mean()
ma50 = df['close'].rolling(time周期).mean()
ma200 = df['close'].rolling(time周期).mean()
# 筛选出10日涨幅大于0小于35的股票
df['10_day_return'] = df['close'].pct_change(time周期)
df = df[df['10_day_return'] > 0]
df = df[df['10_day_return'] < 35]
# 筛选出今日增仓占比大于5%的股票
df['net_amount'] = df['amount'] - df['amount'].shift(time周期)
df['net_amount'] = df['net_amount'].cumsum()
df = df[df['net_amount']
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


