问财量化选股策略逻辑
选股逻辑:选取RSI小于65、换手率在3%-12%之间、反包的股票作为投资标的。
选股逻辑分析
该选股逻辑综合考虑了技术面和市场调节因素,通过筛选出RSI较低、波动较小、且表现相对低迷的反包股票,以期在市场反转时获取良好收益。
有何风险?
该选股策略可能存在的风险:
- 反包概念含义模糊,不同投资者对其的理解存在较大差异;
- 投资者易因该选股策略而忽视了股票的基本面数据;
- 投资过于依赖技术面指标,市场波动较大时,风险控制难度较大。
如何优化?
- 加强基本面分析:
- 应注重分析股票的行业背景、市场需求、公司财务指标等基本面数据,减轻单一指标的风险;
- 可以在技术指标的基础上,结合基本面数据对股票进行综合评估,更加科学合理地制定投资策略。
- 引入机器学习算法:
- 可以通过对历史数据进行学习,结合市场数据及其他因素,使用机器学习算法构建股票预测模型,提高股票选取的精度和效率;
- 可以建立风险控制模型,在遇到市场异常时,自动停止或调整投资策略,帮助投资者降低风险。
最终的选股逻辑
选取RSI小于65、换手率在3%-12%之间、反包的股票作为投资标的。
同花顺指标公式代码参考
选股策略中使用的通达信公式代码如下:
/* 自定义板块反包 */
INCONCEPT('反包')
/* RSI小于65 */
AND(RSI(C,14)<65)
/* 换手率3%-12% */
AND(VOL/L>=0.03,VOL/L<=0.12)
python代码参考
以下是Python代码示例,仅供参考。
import tushare as ts
import pandas as pd
import numpy as np
import talib
def select_stocks():
res = []
# 反包板块
stk_concepts = ts.get_concept_classified()
stk_concepts = stk_concepts[stk_concepts['concept_name'] == '反包']
concept_stocks = list(stk_concepts['code'])
# 除去停牌、ST、科创板、次新股
stk_basics = ts.get_stock_basics()
stk_basics = stk_basics[stk_basics['name'].str.contains('ST') == False]
stk_basics = stk_basics[stk_basics['name'].str.contains('ST') == False]
stk_basics = stk_basics[stk_basics['name'].str.contains('ST') == False]
stk_basics = stk_basics[~stk_basics.index.isin(concept_stocks)]
stk_basics = stk_basics[stk_basics['launch_date'] <= '2019-09-01']
stk_basics = stk_basics[~stk_basics.index.str.match('^688')]
stk_basics = stk_basics[~stk_basics.index.str.match('^00224')]
stk_basics = stk_basics[~stk_basics.index.str.match('^0025[678]')]
stk_basics = stk_basics[~stk_basics.index.str.match('^30[01]')]
bjest = ['SH', 'SZ']
for idx, row in stk_basics.iterrows():
if row['outstanding'] <= 0 or row['totals'] <= 0:
continue
if row['esp'] < 0:
continue
try:
# 行情数据
hist_data = ts.get_hist_data(idx)
if hist_data is None:
continue
close_data = hist_data['close'].values
high_data = hist_data['high'].values
low_data = hist_data['low'].values
if len(close_data) < 10:
continue
# RSI
rsi_threshold = 65
rsi = talib.RSI(close_data)[-1]
if rsi >= rsi_threshold:
continue
# 量比
vol_threshold = (0.03, 0.12)
turnover_rate = hist_data['volume'][-1] / hist_data['volume'][0]
if turnover_rate < vol_threshold[0] or turnover_rate > vol_threshold[1]:
continue
# 反包
if close_data[-1] < close_data[-2]:
res.append(idx)
except Exception as e:
continue
return res
# 选取符合要求的股票
res = select_stocks()
print(res)
注:在使用该代码时,请遵守国家法律法规和相关规定,严禁私自开展证券投资活动,自行承担相应风险。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
