问财量化选股策略逻辑
选股逻辑:选择RSI小于65、集中度在70%以上和20%以下、换手率在3%到12%范围内的股票。
选股逻辑分析
该选股逻辑同样是基于技术面和基本面的策略,选择RSI小于65的股票,同时集中度在70%以上和20%以下可以有效规避风险,换手率在3%到12%可以控制投资期限,同时考虑了基本面的支持和股票的流动性。
有何风险?
该选股逻辑存在以下风险:
- 集中度范围设置可能存在过窄或过宽的问题;
- 选取的换手率范围可能存在过窄或过宽的问题;
- 技术面指标可能受到市场波动的影响,存在一定的异常波动情况。
如何优化?
可以增加更多的基本面指标的筛选,如市盈率、市净率、股息率等,更全面地考虑股票的投资价值;同时结合宏观经济、政策等因素进行分析和选股。
最终的选股逻辑
选择RSI小于65、集中度在70%以上和20%以下、换手率在3%到12%范围内的股票。
同花顺指标公式代码参考
// RSI小于65
SELECTED_STOCKS = RSI < 65
// 集中度在70%以上和20%以下
ONE_INDUSTRY_RATIO = LAST(CYCLEONE_INDUTRY_RATIO, 0)
SELECTED_STOCKS = SELECTED_STOCKS AND (ONE_INDUSTRY_RATIO > 0.7 OR ONE_INDUSTRY_RATIO < 0.2)
// 换手率在3%到12%范围内
TURNOVER_RATE = LAST(VOLUME / CAPITALIZATION, 1)
SELECTED_STOCKS = SELECTED_STOCKS AND (TURNOVER_RATE > 0.03 AND TURNOVER_RATE < 0.12)
canSelect = SELECTED_STOCKS
python代码参考
from jqdata import *
import talib
# 定义选股条件
def select_condition(context):
# 集中度在70%以上和20%以下,换手率在3%到12%
q = query(
valuation.code,
indicator.trade_ratio,
indicator.turnover_ratio,
).filter(
indicator.trade_ratio >= 0.2, # 集中度在20%以下
indicator.trade_ratio <= 0.7, # 集中度在70%以上
indicator.turnover_ratio >= 0.03,
indicator.turnover_ratio <= 0.12,
)
all_stocks = get_fundamentals(q)
# 筛选符合条件的股票
selected_rsi_stocks = all_stocks.loc[talib.RSI(get_bars(all_stocks['code'].tolist(), context.window, '1d', ['high','low','close'])['close'], timeperiod=14).iloc[-1] < 65]
return selected_rsi_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亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


