问财量化选股策略逻辑
选股逻辑:振幅大于1,周线红柱,连续5年ROE>15%。
选股逻辑分析
该选股策略结合了技术面和基本面的指标,振幅和周线为技术面指标,连续5年ROE作为基本面指标,标的股票隐含了一定的质量属性。该策略选股标的的稳定性较好,从一定程度上减少了市场风险。但是,该选股逻辑忽略了许多其他的因素如估值、财务费用等基本面或市场因素,这些因素也有可能影响股票的选取和后续表现。
有何风险?
该选股策略存在确定性错误的风险,因为连续5年ROE>15%并不能完全衡量公司的质量,同时短期内ROE可能难以保持,从而造成一定误差。另外,如果该策略盲目追求高ROE的股票容易忽略其他因素如质押、控股股东风险等,从而造成不必要的损失。
如何优化?
该选股策略可以加入其他基本面指标、文本指标等进行辅助筛选,防止领域错误的发生。同时可以加入风险控制,如个股股价跟随市场整体上涨时,及时卖出赚取收益,并采用分散化投资的策略降低风险。
最终的选股逻辑
为了减少领域错误的可能性,可以加入其他文本指标或行业板块等筛选条件进行优化,筛选出符合基本面及市场环境的优质股票。最终的选股逻辑如下:
-
振幅大于1;
-
周线为红柱;
-
连续5年ROE > 15%;
-
加入其他文本或基本面指标进行筛选;
-
加入风险控制,采用分散化投资策略降低风险。
同花顺指标公式代码参考
以下是同花顺实现该策略的部分指标公式代码:
C1 = AMP() > 1;
C2 = WEEKLY(COLOR(MACD(12, 26, 9), RED)) > 0;
C3 = (ROA_TTM() > 0.15 OR ROA_TTM()[1]>0.15 OR ROA_TTM()[2]>0.15 OR ROA_TTM()[3]>0.15 OR ROA_TTM()[4]>0.15);
SELECTOR = C1 AND C2 AND C3;
RESULT = REF(SORT(RANK(SELECTOR AND CAPITALIZATION ),1),0) == 0;
Python代码参考
以下是Python实现该策略的部分代码:
def select_stocks():
selected_stocks = []
for stock in get_all_securities(types=['stock']).index:
c1 = get_price(stock, count=1, end_date=datetime.now(), frequency='1d', fields='amplitude')[0] > 0.01
c2 = get_macd(stock, count=1, unit='1w', include_now=True, fillna=True)['macdhist'][-1] > 0
c3 = True if len([roe for roe in [get_fundamentals(query(fundamentals.financial_indicator.roe_ttm).filter(fundamentals.financial_indicator.stockcode==stock), entry_date=datetime.now() - timedelta(days=365 * 5), interval='1y')[0].values.tolist()[-5:]] if roe > 0.15]) == 5 else False
if c1 and c2 and c3:
selected_stocks.append(stock)
return selected_stocks
result = select_stocks()
print(result)
以上Python代码仅供参考,具体实现还需要根据自身需求进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
