问财量化选股策略逻辑
选股逻辑:选择RSI小于65、集中度70%以上和20%以下以及竞价涨幅在-2%到5%之间的股票。
选股逻辑分析
该选股逻辑综合考虑了技术面和基本面,RSI小于65和集中度70%以上和20%以下降低了风险,竞价涨幅在-2%到5%之间可以反映出股票的近期走势。
有何风险?
该选股逻辑存在以下风险:
- 在竞价阶段进行选股,可能会忽略股票在盘后交易中的表现;
- 只以RSI和集中度作为选股条件,可能会忽略其他技术指标和形态的影响;
- 竞价涨幅本身并不能说明股票长期上涨趋势,易有追高风险。
如何优化?
- 除了竞价涨幅,加入其他技术指标和形态进行筛选,降低风险;
- 定期调整选股条件,以追踪市场的变化;
- 加入其他因素,例如基本面、市场情绪等等,综合考虑股票的选股。
最终的选股逻辑
选择RSI小于65、集中度70%以上和20%以下以及竞价涨幅在-2%到5%之间的股票。
同花顺指标公式代码参考
SELECTED_STOCKS = RSI < 65 AND ((CYCLEONE_INDUTRY_RATIO > 0.7) OR (CYCLEONE_INDUTRY_RATIO < 0.2)) AND ((OPEN - YESTCLOSE) / YESTCLOSE > -0.02) AND ((OPEN - YESTCLOSE) / YESTCLOSE < 0.05)
CAN_SELECT = SELECTED_STOCKS
python代码参考
from jqdata import *
import talib
# 定义选股条件
def select_condition(context):
# 获取所有主板股票
q = query(
valuation.code,
valuation.circulating_market_cap,
finance.SW1_CODE,
).filter(
finance.SW1_CODE != '751030', # 排除科创板
indicator.status == 1, # 当前股票不停牌
indicator.board_type == '主板', # 当前股票在主板
)
all_stocks = get_fundamentals(q)
# 获取选股结果
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[(CYCLEONE_INDUTRY_RATIO > 0.7) | (CYCLEONE_INDUTRY_RATIO < 0.2)]
selected_stocks = selected_stocks.loc[(((all_stocks['open'] - all_stocks['pre_close']) / all_stocks['pre_close']) > -0.02)]
selected_stocks = selected_stocks.loc[(((all_stocks['open'] - all_stocks['pre_close']) / all_stocks['pre_close']) < 0.05)]
return selected_stocks
# 获取选股结果
def select_stocks(context):
selected_stocks = select_condition(context)
return selected_stocks
# 注册选股函数
m = M.instruments(v['margin'])
m.add_strategy(select_stocks, force=True)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


