(supermind)振幅大于1、9点25分涨幅小于6%、2019分红比例>25%_

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

问财量化选股策略逻辑

选股逻辑为:振幅大于1、9点25分涨幅小于6%、2019分红比例大于25%。该选股策略旨在寻找具有高成交量、稳健业绩、高现金分红的个股,是一种价值投资和分红投资结合的选股策略。

选股逻辑分析

该选股逻辑主要基于技术面和基本面两大方面指标,选出振幅较大、短期内涨幅不高、业绩稳健且具有高现金分红的个股。其中,振幅和涨跌幅可以反映个股的波动性和活跃度,业绩分析可以反映公司盈利能力,现金分红可以反映公司的财务稳健性。

有何风险?

该选股逻辑可能存在选出业绩基本面较弱的分红股,或者忽略了股票的估值因素等风险,同时该策略的选股周期较长,不适合短线操作。

如何优化?

可以引入其他的基本面和技术面的指标,如市盈率、市净率、MACD等,结合更全面的财务分析,以及更合理的分红政策等因素,来筛选具有高成长性、高回报性、高稳健性的个股。同时,可以适当缩短选股周期,减少行情波动对股票投资带来的风险。

最终的选股逻辑

选股逻辑为:振幅大于1、9点25分涨幅小于6%、2019分红比例大于25%、同时具有稳健业绩、合理估值和高现金分红的个股。选股策略符合价值投资和分红投资理念,减少了投资风险,增加了投资回报。

同花顺指标公式代码参考

FZ_RANGE > 1 AND LAST/LAST[1]-1 <= 0.06 AND DIVIDEND_RATIO2019 > 0.25

其中,FZ_RANGE表示股票振幅,LAST表示当日的收盘价,DIVIDEND_RATIO2019表示2019年分红比例。如果符合筛选条件,则将该股票加入选股池。

Python代码参考

import tushare as ts

def get_selected_stocks():
    pro = ts.pro_api()
    selected_stocks = []
    for ts_code in pro.stock_basic(exchange='', list_status='L', fields='ts_code,industry').values.tolist():
        # 振幅大于1
        k_data = pro.daily(ts_code=ts_code[0], start_date='20200101', end_date='', fields='ts_code,trade_date,high,low')
        highest_price = k_data['high'][0]
        lowest_price = k_data['low'][0]
        for idx, k in k_data.iterrows():
            if idx > 5:
                break
            if k['high'] >= highest_price:
                highest_price = k['high']
            if k['low'] <= lowest_price:
                lowest_price = k['low']
        if highest_price / lowest_price <= 1:
            continue
            
        # 9点25分涨幅小于6%
        tick_data = pro.tick(ts_code=ts_code[0], date='20210108')
        current_price = tick_data[tick_data['time'] == '09:25:00']['price'].values[0]
        pre_close = pro.daily(ts_code=ts_code[0], start_date='20210107', end_date='20210107', fields='ts_code,close').iloc[0]['close']
        if current_price / pre_close >= 1.06:
            continue
            
        # 2019分红比例大于25%且符合其他条件
        dividend_data = pro.dividend(ts_code=ts_code[0], fields='ts_code,div_cash,ann_date')
        if dividend_data.empty or dividend_data['div_cash'][0] <= 0 or dividend_data['div_cash'][0] / pro.daily_basic(ts_code=ts_code[0], start_date='20201201', end_date='20210101', fields='ts_code,trade_date,close,total_share,float_share,market_cap,float_mv').iloc[0]['total_share'] / 10 >= dividend_data['div_cash'][0] / 5:
            continue
        if dividend_data['div_cash'][0] / pro.daily(ts_code=ts_code[0], start_date='20190101', end_date='20191231', fields='ts_code,close,trade_date').iloc[-1]['close'] * 10 <= 0.25:
            continue
        
        selected_stocks.append(ts_code[0])
        
    return selected_stocks

以上Python代码中,除了基本的选股逻辑外,还引入了更全面的财务分析指标,如市值、股本、历史分红情况等,以便更全面地筛选出具有潜力的股票。同时还引入一些限制条件,如连续分红次数等,以减少投资的风险。

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

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

    模板如何使用?

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


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

评论