该策略的逻辑包括以下三个部分:
至少5根均线重合的股票:该条件要求股票的5日、10日、20日、60日和120日均线至少有5条均线重合。这表明该股票的短期和中期趋势较为稳定,且短期内有较强的支撑和阻力。
10天内涨停天数大于2:该条件要求股票在过去的10天内至少出现2次涨停。这表明该股票具有较强的市场关注度和活跃度,且短期内有较强的上涨动力。
500日内至少2次涨停:该条件要求股票在过去500日内至少出现2次涨停。这表明该股票具有较强的市场表现和上涨潜力,且在长期趋势中也具有较好的上涨表现。
选股逻辑分析该策略的逻辑主要是基于股票的短期和中期趋势稳定性和市场关注度来筛选股票。通过均线重合和涨停天数的限制,可以筛选出具有较强支撑和阻力的股票,以及市场关注度较高的股票。同时,通过长期趋势的限制,可以筛选出具有较好上涨潜力的股票。
然而,该策略的逻辑也存在一定的风险。首先,如果市场整体趋势不佳,即使符合该策略条件的股票也可能出现下跌。其次,如果市场关注度不高,即使符合该策略条件的股票也可能表现不佳。此外,如果股票在短期和中期趋势中出现较大的波动,也可能导致该策略失效。
如何优化?为了优化该策略,可以考虑以下几点:
增加均线数量:除了5日、10日、20日、60日和120日均线外,还可以考虑增加其他均线,如30日、90日等,以更好地反映股票的中期趋势。
调整均线重合条件:可以考虑将均线重合的数量调整为4条或5条,以更好地筛选出具有稳定趋势的股票。
调整涨停天数限制:可以考虑将涨停天数限制调整为3次或4次,以更好地筛选出具有较强市场关注度的股票。
最终的选股逻辑最终的选股逻辑如下:
股票的5日、10日、20日、60日和120日均线至少有4条均线重合。
股票在过去10天内至少出现3次涨停。
股票在过去500日内至少出现2次涨停。
python代码参考以下是该策略的python代码参考:
import talibdef get_ma_crossovers(prices, n):"""获取n条均线的交叉点"""ma = talib.MA(prices, timeperiod=n)crossovers = []for i in range(n):if ma[i] > ma[i+1]:crossovers.append(i)return crossoversdef get_streak(prices, n):"""获取n天内的连续涨停次数"""streak = 0for i in range(n, len(prices)):if prices[i] > prices[i-n]:streak += 1else:streak = 0return streakdef get_top_stocks(prices, n):"""获取过去n天内涨幅最大的n只股票"""top_stocks = []ma_crossovers = get_ma_crossovers(prices, 5)for i in range(len(prices)-n+1):if i in ma_crossovers:top_stocks.append(prices[i-n+1:i+1])return top_stocksdef get筛选条件(prices, n):ma_crossovers = get_ma_crossovers(prices, 5)streak = get_streak(prices, 10)top_stocks = get_top_stocks(prices, 500)return ma_crossovers, streak, top_stocksdef get_top_stocks筛选条件(prices, n):ma_crossovers = get_ma_crossovers(prices, 5)streak = get_streak(prices, 10)top_stocks = get_top_stocks(prices, 500)return ma_crossovers, streak, top_stocks如何进行量化策略实盘?请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。