问财量化选股策略逻辑
选股逻辑:选择RSI小于65,规模在2亿以上,并且近25个交易日中有单日涨幅大于等于10%的股票。
选股逻辑分析
该选股逻辑综合考虑了股票的规模、技术指标和前期涨幅对股票的影响,选股条件更加综合,可以筛选出更具有潜力的个股。
有何风险?
该选股逻辑存在以下几个风险:
- 仅关注单一指标可能导致忽略其他因素对股价变动的影响;
- 短期内的涨幅不一定反映了公司长期价值的变化,股价可能存在一定程度的波动性;
- 选股结果可能会受到市场异常波动的影响。
如何优化?
可以综合考虑多个因素制定更为全面的选股规则,例如加入基本面指标、行业板块因素等。同时,可以适当延长选股条件中的交易日时间,以降低市场波动对选股结果的干扰。
最终的选股逻辑
筛选出RSI小于65,规模在2亿以上,并且近25个交易日中有过单日涨幅大于等于10%的股票。
同花顺指标公式代码参考
if((close - ref(close, 1)) / ref(close,1) * 100 >= 10, 1, 0)
// 获取过去25个交易日中单日涨幅大于等于10%的天数
sum(EXIST1, 25)
// 选取符合条件的股票
canSelect = RSI < 65 AND CIRC_TCAP >= 2 && sum(EXIST1, 25) > 0
python代码参考
from jqdata import *
import talib
# 定义选股条件
def select_condition(context):
# 规模在2亿以上的股票
q = query(
valuation.code,
valuation.circulating_market_cap
).filter(
valuation.circulating_market_cap >= 2e8,
~valuation.code.startswith('600'),
~valuation.code.startswith('900')
)
all_stocks = get_fundamentals(q)
# 获取过去25个交易日的涨幅
all_stocks['change_pct'] = (get_price(all_stocks['code'], end_date=context.now, count=25, fields=['close'])['close'] -
get_price(all_stocks['code'], end_date=context.now - timedelta(days=25), count=25, fields=['close'])['close']) /
get_price(all_stocks['code'], end_date=context.now - timedelta(days=25), count=25, fields=['close'])['close']
return all_stocks
# 获取选股结果
def select_stocks(context):
all_stocks = select_condition(context)
# 筛选RSI小于65,近25个交易日有单日涨幅大于等于10%的股票
selected_stocks = all_stocks.loc[talib.RSI(get_bars(all_stocks['code'].tolist(), context.window, '1d', ['high','low','close'])['close'], timeperiod=14).iloc[-1] < 65]
selected_stocks = selected_stocks.loc[all_stocks['change_pct'] >= 0.1]
return selected_stocks
# 注册选股函数
m = M.instruments(v['margin'])
m.add_strategy(select_stocks, force=True)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


