(同花顺量化)10天内涨停天数大于2_、100亿市值以内的无亏损企业、至少5根均线重合的股

用户头像神盾局量子研究部
2023-08-31 发布

问财量化选股策略逻辑

该策略基于以下三个条件进行股票筛选:

  1. 至少5根均线重合的股票:这表明股票的价格趋势比较稳定,短期和长期均线的走势比较一致。
  2. 100亿市值以内的无亏损企业:这表明该企业的经营状况较好,没有出现严重的亏损。
  3. 10天内涨停天数大于2:这表明该股票在短期内具有较强的市场表现力和活跃度。

选股逻辑分析

该策略的目的是寻找具有稳定价格趋势、良好经营状况和较强市场表现力的股票。这些条件可以帮助投资者筛选出具有投资价值的股票。

然而,该策略存在以下风险:

  1. 短期市场波动可能影响股票价格的走势,导致均线重合的情况发生变化。
  2. 无亏损企业的标准可能过于严格,排除了一些具有潜力但尚未盈利的公司。
  3. 涨停天数的指标可能过于依赖市场情绪,导致筛选出的股票波动较大。

如何优化?

为了优化该策略,可以考虑以下几点:

  1. 适当放宽均线重合的条件,例如将条件改为3根均线重合,以增加股票的稳定性和可操作性。
  2. 考虑加入更多的财务指标,例如市盈率、市净率等,以更全面地评估企业的经营状况和投资价值。
  3. 尝试使用不同的指标来筛选股票,例如使用MACD指标来判断股票的短期趋势,或者使用换手率指标来评估股票的活跃度。

最终的选股逻辑

以下是最终的选股逻辑:

  1. 股票的市值在100亿以内。
  2. 股票的收盘价至少有3根均线重合。
  3. 股票的市盈率低于同行业平均市盈率。
  4. 股票的换手率在10天内大于10%。
  5. 股票在最近10天内至少有2次涨停。

python代码参考

以下是基于上述策略的python代码:

import talib

def get_stocks():
    # 获取所有A股股票的代码和名称
    stocks = get_stock_codes()
    # 初始化股票列表
    selected_stocks = []
    # 遍历股票列表
    for stock in stocks:
        # 获取股票的收盘价、均线等数据
        close_prices = get_close_prices(stock)
        ma1, ma2, ma3, ma4, ma5 = talib.MA(close_prices, timeperiods=[1, 2, 3, 4, 5])
        # 判断股票是否满足条件
        if ma1[-1] == ma2[-1] == ma3[-1] == ma4[-1] == ma5[-1]:
            if close_prices[-1] > close_prices[-2]:
                selected_stocks.append(stock)
    return selected_stocks

def get_stock_codes():
    # 获取所有A股股票的代码和名称
    stocks = get_stock_list()
    codes = []
    names = []
    for stock in stocks:
        codes.append(stock['code'])
        names.append(stock['name'])
    return codes, names

def get_close_prices(stock_code):
    # 获取指定股票的收盘价数据
    df = get_stock_data(stock_code)
    close_prices = df['close'].values
    return close_prices

def get_stock_data(stock_code):
    # 获取指定股票的历史数据
    url = f'https://quote.eastmoney.com/{stock_code}'
    response = requests.get(url)
    if response.status_code == 200:
        df = pd.read_csv(response.text)
    else:
        df = pd.DataFrame()
    return df

def get_stock_list():
    # 获取所有A股股票的代码和名称
    url = 'http://data.eastmoney.com/hsgt/guba.html'
    response = requests.get(url)
    if response.status_code == 200:
        df = pd.read_csv(response.text)
    else:
        df = pd.DataFrame()
    return df[['code', 'name']]

如何进行量化策略实盘?

请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

select_sentence = '市值小于100亿' #选股语句。

模板如何使用?

点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。

如果有任何问题请添加 下方的二维码进群提问。

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论