问财量化选股策略逻辑
选股逻辑:选用RSI小于65、2021年营收/2018年营收大于1.1、20日均线大于120日均线的股票进行投资。
选股逻辑分析
该选股逻辑在已有选股逻辑的基础上新增了“20日均线大于120日均线”的要求,用于过滤出均线向上的股票,并与RSI指标和营收比例综合考虑。
有何风险?
- 均线的短期和长期设置可能过于主观,不同的均线设置可能会导致选股结果不同;
- 只考虑了技术面指标和营收比例,忽略了其他重要的财务指标和行业前景等因素。
如何优化?
- 在选股时,除了技术面指标和营收比例外,应考虑股票的估值、成长性等因素;
- 可以动态地调整均线的设置,根据股票的历史数据来寻找最优的均线设置,比如使用机器学习等方法;
- 结合公司的历史表现、行业趋势等多重因素综合考虑,综合运用多种技术和基本面指标。
最终的选股逻辑
选用RSI小于65、2021年营收/2018年营收大于1.1、20日均线大于120日均线的股票进行投资,选取前N个股票进行投资,投资期限为一年。
同花顺指标公式代码参考
通达信公式:
CATEG('深圳本市主板') AND CAPITAL<=2000 AND (C/REF(C,1)>1.1)
AND (MA(CLOSE,20)>MA(CLOSE,120)) AND (RSI(CLOSE,14)<65)
该公式在原有选股策略的基础上加入了均线的限制。
Python代码参考
以下是基于该选股策略编写的Python代码示例,仅供参考。
import tushare as ts
import talib
def select_stocks(n):
res = []
basic_info = ts.get_stock_basics()
for code in basic_info.index:
try:
rsi_threshold = 65
revenue_ratio_threshold = 1.1
# 过滤条件:上市时间超过一年
if basic_info.loc[code]['timeToMarket'] > int(time.strftime("%Y%m%d")) - 365:
continue
# 主板条件筛选
if basic_info.loc[code]['exchange'] != 'SZSE' or '主板' not in basic_info.loc[code]['area']:
continue
# 规模筛选条件
capital = basic_info.loc[code]['totals'] * basic_info.loc[code]['price'] * 10000
if capital < capital_threshold:
continue
# 营收筛选条件
revenue_ratio = ts.get_hist_data(code)['revenue'][-1] / ts.get_hist_data(code)['revenue'][0]
if revenue_ratio < revenue_ratio_threshold:
continue
# 均线筛选条件
ma20 = talib.MA(ts.get_hist_data(code)['close'], timeperiod=20)
ma120 = talib.MA(ts.get_hist_data(code)['close'], timeperiod=120)
if ma20[-1] > ma120[-1]:
continue
# RSI指标
rsi_data = talib.RSI(ts.get_hist_data(code)['close'].values, timeperiod=14)
if rsi_data[-1] > rsi_threshold:
continue
res.append(code)
except Exception as e:
continue
return res[:n]
# 选取前10个股票
res = select_stocks(10)
print(res)
注:在使用该代码时,请遵守国家法律法规和相关规定,严禁擅自开展证券投资活动,自行承担相应风险。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


