问财量化选股策略逻辑
选股逻辑:在RSI小于65、今日增仓占比大于5%、2019分红比例大于25%的条件下,选择股票进行投资。
选股逻辑分析
该选股逻辑综合考虑了技术面指标RSI和今日增仓占比,以及基本面指标2019年分红比例,从技术面和基本面综合考虑,选择分红比例较高且表现较为突出的股票进行投资。
有何风险?
该选股逻辑可能存在以下风险:
- 过于看重单一基本面指标的作用,在综合考虑其他因素时,容易忽略该指标的重要性;
- 在选股结果中未加入风险控制考虑,例如PE、行业集中度等指标;
- 没有对股票的财务情况及其他基本面指标进行足够的分析,例如负债率、ROE、利润增长等指标未得到足够重视。
如何优化?
- 在选股结果中加入其他基本面指标的考虑,例如负债率、ROE、利润增长等指标;
- 并结合其他市场面和技术面指标,例如MACD、KDJ、成交量等,从多个方面综合考量股票的表现;
- 结合风控措施加入前述技术面和基本面指标,例如PE、行业集中度等指标,确保选股结果风险可控。
最终的选股逻辑
在RSI小于65、今日增仓占比大于5%、2019年分红比例大于25%的条件下,选择表现较为优异、且基本面指标符合要求的股票进行投资。
同花顺指标公式代码参考
选股策略中使用的同花顺指标公式代码如下:
AND(
RSI(C, 14) < 65,
C / O > 1.01,
FUDIV(Y1, 1) / LC > 0.25
)
其中MA表示股票的均线指标。
Python代码参考
以下是Python代码示例,仅供参考。
import tushare as ts
import talib
def select_stocks():
res = []
# 自选股
stk_concepts = ['601398']
# 除去停牌、ST、科创板、次新股
stk_basics = ts.get_stock_basics()
stk_basics = stk_basics[stk_basics.index.isin(stk_concepts)]
stk_basics = stk_basics[~stk_basics.index.str.startswith('688')]
stk_basics = stk_basics[~stk_basics.index.str.match('^ST')]
stk_basics = stk_basics[stk_basics['launch_date'] <= '2019-09-01']
stk_basics = stk_basics[~stk_basics.index.str.match('^0023')]
for idx, row in stk_basics.iterrows():
if row['outstanding'] <= 0 or row['totals'] <= 0:
continue
try:
# 获取分红数据
profit_data = ts.profit_data(year=2019, top=1000)
profit_data = profit_data[profit_data.index == idx]
if profit_data.empty or profit_data['Divi'].values[0] / row['price'] < 0.25:
continue
# 行情数据和人气数据
hist_data = ts.get_k_data(idx, start='2021-01-01')
inst_data = ts.inst_detail(str(idx))
if hist_data is None or len(hist_data) < 60 or inst_data is None:
continue
close_data = hist_data['close'].values
open_data = hist_data['open'].values
high_data = hist_data['high'].values
low_data = hist_data['low'].values
vol_data = hist_data['volume'].values
# RSI
rsi_threshold = 65
rsi = talib.RSI(close_data)[-1]
if rsi >= rsi_threshold:
continue
# 今日增仓占比
vol_ratio_threshold = 1.05
vol_ratio = vol_data[-1] / vol_data[-2]
if vol_ratio <= vol_ratio_threshold:
continue
# 选股结果加入到列表中
res.append({'code': idx, 'rsi': rsi, 'vol_ratio': vol_ratio})
except Exception as e:
continue
res.sort(key=lambda x: pankou_data_raw[pankou_data_raw['code'] == x['code']]['amount'], reverse=True)
return [x['code'] for x in res[:5]]
res = select_stocks()
print(res)
注:在使用该代码时,请遵守国家法律法规和相关规定,严禁私自开展证券投资活动,自行承担相应风险。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


