问财量化选股策略逻辑
在问财量化选股策略中,我们采用了至少5根均线重合的股票、60开头的股票和RSI小于65的条件进行筛选。具体来说,我们首先筛选出所有60日均线、120日均线、250日均线、30日均线和5日均线重合的股票,然后从中筛选出60日均线在最上方的股票作为最终的股票池。接着,我们对股票池中的股票进行RSI指标的计算,选择RSI小于65的股票作为最终的股票池。最后,我们对股票池中的股票进行排序,选择排名前100的股票作为最终的股票池。
选股逻辑分析
该策略的逻辑是基于技术分析和趋势跟踪,通过筛选出均线重合和RSI小于65的股票,来筛选出具有较强趋势和较低风险的股票。该策略的缺点是可能会漏掉一些具有较强趋势但短期RSI指标较高的股票,同时也可能会筛选出一些短期趋势较弱但长期RSI指标较低的股票。因此,该策略需要结合其他因素进行综合分析,以提高筛选效果。
有何风险?
该策略的最主要的风险是市场风险。由于该策略基于技术分析和趋势跟踪,因此可能会受到市场波动的影响,导致筛选出的股票表现不佳。此外,该策略可能会漏掉一些具有较强趋势但短期RSI指标较高的股票,从而导致错过一些机会。
如何优化?
为了优化该策略,我们可以考虑结合其他因素进行综合分析,例如加入股票的市值、财务指标等。此外,我们还可以考虑使用其他技术指标进行筛选,例如MACD、布林线等。同时,我们还可以通过调整筛选条件和排序规则来提高筛选效果。
最终的选股逻辑
最终的选股逻辑如下:
def select_stock():
# 筛选出至少5根均线重合的股票
stocks = get_stocks_with_converging_ma()
# 筛选出60日均线在最上方的股票
stocks = get_stocks_with_60ma_at_top(stocks)
# 筛选出RSI小于65的股票
stocks = get_stocks_with_rsi_less_than_65(stocks)
# 对股票池中的股票进行排序,选择排名前100的股票作为最终的股票池
stocks = sort_stocks(stocks, ascending=False)
return stocks[:100]
python代码参考
def get_stocks_with_converging_ma():
# 获取所有60日、120日、250日、30日和5日均线重合的股票
ma_list = [60, 120, 250, 30, 5]
stocks = []
for stock in get_all_stocks():
ma = {}
for ma_length in ma_list:
ma[ma_length] = stock['close'].rolling(ma_length).mean()
if all(ma[ma_length] == ma[ma_length - 1] for ma_length in ma_list):
stocks.append(stock)
return stocks
def get_stocks_with_60ma_at_top(stocks):
# 获取60日均线在最上方的股票
stocks = []
for stock in stocks:
if stock['close'].rolling(60).mean() > stock['close'].rolling(120).mean():
stocks.append(stock)
return stocks
def get_stocks_with_rsi_less_than_65(stocks):
# 筛选出RSI小于65的股票
stocks = []
for stock in stocks:
rsi = get_rsi(stock['close'])
if rsi < 65:
stocks.append(stock)
return stocks
def sort_stocks(stocks, ascending=True):
# 对股票池中的股票进行排序,选择排名前100的股票作为最终的股票池
stocks = stocks.copy()
stocks['score'] = stocks.apply(get_score, axis=1)
stocks = stocks.sort_values(by='score', ascending=ascending)
return stocks[:100]
def get_score(stock):
# 计算股票的得分
ma_list = [60, 120, 250, 30, 5]
rsi = get_rsi(stock['close'])
score = 0
for ma_length in ma_list:
score += ma_length * (stock['close'].rolling(ma_length).mean() - stock['close'].rolling(ma_length - 1).mean()) ** 2
score += 10 * (rsi -
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
