问财量化选股策略逻辑
选股逻辑为:振幅大于1、剔除昨日涨停、RSI小于65的股票。该选股策略主要考虑了技术面和市场情绪方面的因素。
选股逻辑分析
该选股策略主要考虑了技术面和市场情绪方面的因素。剔除过去一天的涨停股票,可以避免由于情绪导致的暂时性炒作;RSI是一种常用的超买超卖指标,小于65说明该股票处于相对低位。
有何风险?
该选股策略可能存在以下风险:
-
RSI指标作为技术指标不可避免存在一定的滞后性,因此在选股时可能会错过某些股票的买入时机。
-
剔除昨日涨停股票在选股方面有一定的局限性,有可能错过一些较为优秀的品种。
-
选股策略缺乏基本面分析,此外,过于关注技术面可能会忽略掉长期收益等重要的指标。
如何优化?
以下是对该选股逻辑的优化建议:
-
RSI指标后面嵌入“金叉”、“死叉”,可以一定程度上解决RSI指标滞后的问题。
-
剔除过去一天的涨停股票可以避免情绪炒作,但也可能错过一些较为优秀的走势。可以结合其他技术指标或基本面分析,综合考虑选股。
-
选股策略绩效评估和回测是不可少的,可以通过回测和绩效评估,筛选出更优质的选股逻辑。
最终权益选股逻辑
选股策略为:振幅大于1、剔除昨日涨停股票、RSI小于65的股票。
同花顺指标公式代码参考
以下是该选股策略的通达信指标公式代码:
振幅指标:AMO=(HIGH-LOW)/REF(CLOSE,1);
剔除涨停股票:NOT LIMIT;
RSI指标:RSI(CLOSE,14);
选股条件:AMO>1 AND NOT LIMIT AND RSI(CLOSE,14)<65;
python代码参考
from gm.api import *
set_token('your_token_here')
# 设置回测起点和终点
start_date = '2020-01-01'
end_date = '2022-01-01'
# 获取所有股票
symbols_all = get_symbols(exchanges=['SHSE', 'SZSE'], sec_types=['STOCK'], fields=['symbol'])
# 设置选股条件
amplitude_cond = {'$gt': 1}
limit_up_cond = {'limit_status': {'$ne': 1}}
rsi_cond = {'$lt': 65}
cond = {
'$and': [
amplitude_cond,
limit_up_cond,
rsi_cond
]
}
# 构建排序条件
sort_cond = [(Bar("close_price"), SortType.DESC)]
# 获取符合条件的股票历史信息
data = history(symbol=symbols_all,
start_time=start_date,
end_time=end_date,
fields=["symbol", "limit_status", "open_price", "high_price", "low_price", "close_price"],
bar_count=14,
freq="1D",
filter=cond,
sort=sort_cond)
# 筛选出符合条件的股票
symbols_selected = [s["symbol"] for s in data]
print(symbols_selected)
上述代码中,选股的逻辑为振幅大于1、剔除昨日涨停、RSI小于65的条件。通过获取符合条件的股票历史信息,筛选出符合选股逻辑的股票。需要注意的是,由于RSI指标是以14个周期的数据为基础计算的,因此在获取历史信息时需要设置bar_count为14。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
