(同花顺量化)100亿市值以内的无亏损企业_、未清偿可转债简称不可为空、至少5根均线重合的

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

问财量化选股策略逻辑

  1. 至少5根均线重合的股票
  2. 未清偿可转债简称不可为空
  3. 100亿市值以内的无亏损企业

选股逻辑分析

这个策略基于以下三个假设:

  1. 股票的价格趋势受到均线的支撑和阻力。
  2. 可转债的发行和偿还对股票价格有影响。
  3. 企业的市值和盈利能力是影响股票价格的重要因素。

根据这些假设,我们可以筛选出符合条件的股票。首先,我们需要找到至少5根均线,这些均线可以是不同周期的均线,例如5日均线、10日均线、20日均线等。然后,我们需要检查这些均线是否重合,如果重合,则说明股票的价格趋势可能比较稳定。接下来,我们需要检查股票的可转债简称是否为空,因为可转债的发行和偿还会对股票价格产生影响。最后,我们需要筛选出市值在100亿以内的无亏损企业,因为企业的盈利能力也是影响股票价格的重要因素。

有何风险?

这个策略存在以下风险:

  1. 均线的选取可能不够准确,导致筛选出的股票不符合预期。
  2. 可转债的发行和偿还可能会对股票价格产生不利影响。
  3. 企业的市值和盈利能力可能会受到宏观经济因素的影响,导致股票价格波动。

如何优化?

为了优化这个策略,我们可以考虑以下几点:

  1. 增加均线的数量,以提高筛选出的股票的准确性。
  2. 使用更多的技术指标来分析股票价格趋势,例如MACD、RSI等。
  3. 考虑更多的宏观经济因素,例如利率、通货膨胀等,以更好地预测股票价格。

最终的选股逻辑

最终的选股逻辑如下:

  1. 选取至少5根均线,包括5日均线、10日均线、20日均线、50日均线和200日均线。
  2. 检查股票的可转债简称是否为空。
  3. 筛选出市值在100亿以内的无亏损企业。
  4. 对于符合以上条件的股票,计算其价格趋势的强度,可以使用移动平均线的金叉和死叉来判断。
  5. 将符合以上条件的股票按照价格趋势强度排序,选择排名前N的股票作为最终的股票池。

python代码参考

以下是一个简单的Python代码参考,用于实现上述策略:

import talib

def get_rolling_average(data, n):
    """
    获取n周期的滚动平均值
    """
    result = []
    for i in range(len(data) - n + 1):
        result.append(data[i:(i + n)].mean())
    return result

def check_5_ma_cross(data, short_ma, long_ma):
    """
    检查短期移动平均线是否上穿长期移动平均线
    """
    if short_ma[-1] > long_ma[-1]:
        return True
    else:
        return False

def check_bond_short_name(data):
    """
    检查股票的可转债简称是否为空
    """
    return not data.empty

def check_balance_sheet(data):
    """
    检查企业的市值和盈利能力是否符合条件
    """
    # TODO: Implement balance sheet check
    return True

def get_top_n_stocks(data, n):
    """
    获取价格趋势强度排名前n的股票
    """
    # TODO: Implement stock ranking
    return []

# Example usage
data = talib.get_data_yahoo('AAPL')
short_ma = get_rolling_average(data['Close'], 5)
long_ma = get_rolling_average(data['Close'], 200)
if check_5_ma_cross(short_ma, long_ma):
    print('5-day MA cross detected!')
else:
    print('No 5-day MA cross detected.')

if check_bond_short_name(data):
    print('No bond short name missing.')
else:
    print('Bond short name missing.')

if check_balance_sheet(data):
    print('Balance sheet check passed.')
else:
    print('Balance sheet check failed.')

top_n_stocks = get_top_n_stocks(data, 10)
print(top_n_stocks)

如何进行量化策略实盘?

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

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

模板如何使用?

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

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

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论