问财量化选股策略逻辑
选股逻辑:选取RSI小于65、今日均线向上发散、2019分红比例大于25%的股票。
选股逻辑分析
该选股策略在技术面的基础上,加入了基本面因素,选取分红比例大于25%的股票,同时选择RSI小于65、今日均线向上发散的股票。该选股策略对于技术面和基本面的因素综合考虑,可以筛选出相对稳健的股票。
有何风险?
该选股策略可能会忽略一些基本面变化较大的风险,例如公司财务数据的虚假宣告、不良资产等,只考虑单一的2019年分红比例可能有较大的盲区。另外,选择分红比例较高的股票,也有可能为了维持分红比例而牺牲了公司的发展。
如何优化?
可以增加更全面、更长期的基本面因素的考虑,例如公司的市盈率、市净率、净利润增长率等,全面维度给出公司的质量评估。同时可以适当地加入风险控制的机制。
最终的选股逻辑
选取RSI小于65、今日均线向上发散、2019年分红比例大于25%的股票。
同花顺指标公式代码参考
- RSI: RSI(14)
- 均线: MA(CLOSE, 1)
- 分红比例: (昨年分红总额+公积金转增数)/总股本*10
Python代码参考
import pandas as pd
import akshare as ak
import talib
def get_stock_list(rsi_threshold=65, ma_today_length=1, dividend_threshold=0.25, top_n=5):
all_stock = ak.stock_info_a_code_name(indicator="沪深A股")
stock_list = pd.DataFrame(columns=['股票代码', '名称', '涨幅', '分红比例'])
for i in range(len(all_stock)):
symbol = all_stock.iloc[i]['symbol']
kline = ak.stock_zh_a_daily(symbol=symbol, adjust='qfq')
if len(kline) < 30:
continue
close_price = kline['close']
close_ma_today = talib.MA(close_price, timeperiod=ma_today_length)
if close_price.iloc[-1] <= close_ma_today.iloc[-1]:
continue
dividend = ak.stock_dividend(stock=symbol)
if not dividend.empty:
dividend_rate = dividend.iloc[0]['dividend_rate']
if dividend_rate < dividend_threshold:
continue
else:
continue
increase_rate = round((close_price.iloc[-1] - close_price.iloc[-2]) / close_price.iloc[-2] * 100, 2)
stock_list = stock_list.append({'股票代码': symbol, '名称': all_stock.iloc[i]['name'], '涨幅': increase_rate, '分红比例': dividend_rate}, ignore_index=True)
stock_list.sort_values(by=['涨幅', '分红比例'], ascending=[False, False], inplace=True)
stock_list = stock_list[:top_n]
return stock_list
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


