(同花顺量化)2019分红比例>25%_、昨日股价大于250日均线、今日增仓占比_5%

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

问财量化选股策略逻辑

  • 今日增仓占比>5%
  • 昨日股价大于250日均线
  • 2019分红比例>25%

选股逻辑分析

以上三个条件分别代表了市场资金的流入、股票价格趋势和公司分红情况。如果一个股票同时满足这三个条件,说明市场资金对该股票的未来表现有信心,公司经营状况良好,分红比例高,有利于投资者获得长期收益。

有何风险?

虽然以上三个条件可以作为选股的参考,但仍然存在一定的风险。首先,市场资金的流入和股票价格趋势受到市场情绪和政策因素的影响,可能存在较大的不确定性。其次,公司分红比例高并不一定代表公司经营状况良好,可能存在财务造假等问题。因此,在使用以上策略进行选股时,需要综合考虑多个因素,避免盲目跟风。

如何优化?

为了降低以上策略的不确定性,可以考虑加入更多的条件进行筛选。例如,可以加入公司的市盈率、市净率等财务指标,以及公司的盈利能力、成长性等基本面指标。此外,可以加入技术分析指标,如均线、MACD等,以更好地判断股票价格趋势。同时,可以结合投资者的风险承受能力和投资期限,对以上策略进行适当的调整。

最终的选股逻辑

以下是结合以上策略和优化后的最终选股逻辑:

  • 今日增仓占比>5%
  • 昨日股价大于250日均线
  • 市盈率小于25倍
  • 市净率大于1.5倍
  • 增长率大于20%
  • 成长性好
  • 动态市盈率小于20倍

python代码参考

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

import talib
import pandas as pd

def get_stock_data(stock_code):
    # 获取股票的历史数据
    df = pd.read_csv(f'https://query1.finance.yahoo.com/v7/finance/download/{stock_code}', index_col='Date')
    df = df[['Adj Close']]
    df = df.rename(columns={'Adj Close': stock_code})
    df.index = pd.to_datetime(df.index)
    df = df.resample('D').last()
    df = df.dropna()
    return df

def get_top_gainers():
    # 获取今日增仓占比前50的股票代码
    df = get_stock_data('000300.XSHG')
    df['今日增仓占比'] = df['Volume'] / df['Total']
    df = df.sort_values(by='今日增仓占比', ascending=False)
    top_gainers = df.iloc[:50]['Stock Code'].tolist()
    return top_gainers

def get_top_stayers():
    # 获取昨日股价大于250日均线的股票代码
    df = get_stock_data('000300.XSHG')
    df['昨日收盘价'] = df['Adj Close'].shift(1)
    df = df[df['昨日收盘价'] > df['Close'].rolling(250).mean()]
    top_stayers = df.iloc[:50]['Stock Code'].tolist()
    return top_stayers

def get_dividend_payout_ratio():
    # 获取2019年分红比例大于25%的股票代码
    df = get_stock_data('000300.XSHG')
    df['2019年分红比例'] = df['Dividend'] / df['EPS']
    df = df[df['2019年分红比例'] > 0.25]
    dividend_payout_ratio = df.iloc[:50]['Stock Code'].tolist()
    return dividend_payout_ratio

def get_stock_scores():
    # 获取综合评分最高的50个股票代码
    df = pd.read_csv('stock_scores.csv')
    df = df.sort_values(by='score', ascending=False)
    top_stocks = df.iloc[:50]['Stock Code'].tolist()
    return top_stocks

def get筛选条件():
    # 获取所有筛选条件的组合
    top_gainers = get_top_gainers()
    top_stayers = get_top_stayers()
    dividend_payout_ratio = get_dividend_payout_ratio()
    stock_scores = get_stock_scores()
    conditions = []
    for condition in [top_gainers, top_stayers, dividend_payout_ratio, stock_scores]:
        conditions.append(condition)
    return conditions

def get_filtered_data(conditions):
    # 获取满足所有筛选条件的股票数据
    df = get_stock_data('000300.XSHG')
    df = df[df['Stock Code'].isin(conditions)]
    return df

def get_top_gainers_dividend_payout_ratio():
    # 获取今日增仓占比前50的股票代码,且2019年分红比例大于25

## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

模板如何使用?

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


## 如果有任何问题请添加 下方的二维码进群提问。
![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论