(supermind策略)task16/a/macd零轴以上、价格<12、连续5年ROE>

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

问财量化选股策略逻辑

选取MACD强势、价格低于12元、连续5年ROE大于15%的股票作为投资标的。该策略主要关注公司的盈利能力,结合技术面指标,可以减少投资风险,同时可以提高选股的精准度。

选股逻辑分析

选股逻辑主要关注公司的盈利能力和技术面指标。其中,连续5年ROE大于15%是选股的主要条件,可以直接反映公司盈利水平,可以较为精准地筛选出优质的标的股票。MACD作为较为常用的技术面指标,可以筛选出较为强势的标的,价格低于12元可以减少风险。

有何风险?

该选股策略仍然可能会忽略了一些其他的重要因素,如行业因素、资产负债比率等。同时,ROE只是一种盈利能力的指标,缺乏全面性,需要进一步谨慎考虑。

如何优化?

可以增加行业因素、资产负债比率等因素进行综合判断,以更加全面地筛选出标的股票。同时,考虑增加其他的技术面指标和市场情绪指标进行筛选,以提高精准度。在选股时引入风险控制策略,以减少风险。

最终的选股逻辑

选取MACD强势、价格低于12元、连续5年ROE大于15%的股票作为投资标的。

同花顺指标公式代码参考

// 连续5年ROE大于15%
ROE := (ROE1 >= 15) AND (ROE2 >= 15) AND (ROE3 >= 15) AND (ROE4 >= 15) AND (ROE5 >= 15);
// MACD强势、价格低于12元
MACD(12,26,9) > 0 AND CLOSE < 12 AND ROE;
// 以上代码表示MACD强势、价格低于12元、连续5年ROE大于15%的股票符合选股要求

Python代码参考

from datetime import datetime, timedelta

end_date = datetime.now().strftime("%Y-%m-%d")
start_date = (datetime.now() - timedelta(days=1825)).strftime("%Y-%m-%d")
df = get_history_data(stock_code, start_date=start_date, end_date=end_date, ktype='D')

df['DIFF'], df['DEA'], df['MACD'] = ta.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
df['ROE_1'] = get_fundamentals(query(valuation, indicator.roe).filter(valuation.code==stock_code, indicator.date==datetime.now().date() - timedelta(days=365)))
df['ROE_2'] = get_fundamentals(query(valuation, indicator.roe).filter(valuation.code==stock_code, indicator.date==datetime.now().date() - timedelta(days=365*2)))
df['ROE_3'] =  get_fundamentals(query(valuation, indicator.roe).filter(valuation.code==stock_code, indicator.date==datetime.now().date() - timedelta(days=365*3)))
df['ROE_4'] =  get_fundamentals(query(valuation, indicator.roe).filter(valuation.code==stock_code, indicator.date==datetime.now().date() - timedelta(days=365*4)))
df['ROE_5'] =  get_fundamentals(query(valuation, indicator.roe).filter(valuation.code==stock_code, indicator.date==datetime.now().date() - timedelta(days=365*5)))
df = df[(df['close'] < 12) & (df['MACD'] > 0) & (df['ROE_1'] >= 15) & (df['ROE_2'] >= 15) & (df['ROE_3'] >= 15) & (df['ROE_4'] >= 15) & (df['ROE_5'] >= 15)]
df = df.sort_values(by='hot', ascending=False)
print("Selected:", list(df['name']))

选股所需的MACD和价格可以参考上文公式中的设定,ROE可以通过获取公司基本面数据进行计算。在Python代码中,选出的标的股票按个股热度从大到小排序,并使用list输出选出的股票名称。

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

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

    模板如何使用?

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


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

评论