(同花顺量化)2019分红比例>25%_、北京A股除外、至少5根均线重合的股票

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

问财量化选股策略逻辑

首先,我们定义了一个包含至少5根均线的股票池。接下来,我们筛选出北京A股之外的股票。最后,我们筛选出2019年分红比例大于25%的股票。

选股逻辑分析

这个策略的逻辑是基于技术分析和财务分析的。首先,我们筛选出至少5根均线重合的股票,这表明这些股票的走势比较稳定,同时也说明这些股票的价格比较接近。接下来,我们筛选出北京A股之外的股票,因为北京A股的股票可能会受到政策因素的影响,因此在分析这些股票时需要特别注意。最后,我们筛选出2019年分红比例大于25%的股票,因为这些股票的分红比例较高,说明这些公司对股东比较慷慨。

有何风险?

这个策略的潜在风险包括市场风险、技术分析的局限性以及财务分析的局限性。首先,市场风险是指股票价格的波动性,由于股票价格受到市场因素的影响,因此投资者可能会蒙受损失。其次,技术分析的局限性是指技术分析可能会忽略一些重要的因素,例如公司的财务状况和管理团队的能力。最后,财务分析的局限性是指财务分析可能会忽略一些重要的因素,例如公司的经营环境和行业趋势。

如何优化?

为了优化这个策略,我们可以考虑增加一些其他的筛选条件,例如公司的盈利能力、成长潜力和估值水平等。我们还可以考虑使用更多的技术分析指标,例如移动平均线、布林线和MACD等,以更好地判断股票的价格走势。此外,我们还可以考虑使用更多的财务分析指标,例如市盈率、市净率和股息率等,以更好地判断股票的财务状况。

最终的选股逻辑

我们的最终策略是基于以下条件筛选股票:

  1. 股票池包含至少5根均线重合的股票。
  2. 股票不在北京A股范围内。
  3. 股票在2019年的分红比例大于25%。

我们可以使用以下python代码来实现这个策略:

import talib

def get_stock_pool():
    # 获取所有A股股票的代码
    codes = get_a_shares()
    # 获取所有股票的收盘价
    prices = get_prices(codes)
    # 计算股票的收盘价的移动平均线
    ma = talib.MA(prices, timeperiod=5)
    # 获取至少5根均线重合的股票
    stock_pool = []
    for i in range(len(prices)):
        if ma[i] == ma[i+1] == ma[i+2] == ma[i+3] == ma[i+4]:
            stock_pool.append(codes[i])
    return stock_pool

def get_a_shares():
    # 获取所有A股股票的代码
    codes = []
    with open('a_shares.csv', 'r', encoding='utf-8') as f:
        reader = csv.reader(f)
        for row in reader:
            codes.append(row[0])
    return codes

def get_prices(codes):
    # 获取所有股票的收盘价
    prices = []
    with open('prices.csv', 'r', encoding='utf-8') as f:
        reader = csv.reader(f)
        for row in reader:
            prices.append(float(row[1]))
    return prices

def get_dividend(codes):
    # 获取所有股票的分红比例
    dividends = []
    with open('dividends.csv', 'r', encoding='utf-8') as f:
        reader = csv.reader(f)
        for row in reader:
            dividends.append(float(row[1]))
    return dividends

def select_stocks(stock_pool, dividend):
    # 根据分红比例筛选股票
    selected_stocks = []
    for code in stock_pool:
        if dividend[code] > 25:
            selected_stocks.append(code)
    return selected_stocks

def get_final_pool(selected_stocks):
    # 获取最终股票池
    final_pool = []
    for code in selected_stocks:
        if code not in final_pool:
            final_pool.append(code)
    return final_pool

如何进行量化策略实盘?

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

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

模板如何使用?

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

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

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论