问财量化选股策略逻辑
选股逻辑:选择RSI小于65、集中度在70%以上和20%以下、15分钟周期MACD绿柱变短的股票。
选股逻辑分析
该选股逻辑综合考虑了技术面和基本面,选择RSI小于65、集中度在70%以上和20%以下可以有效规避风险,而15分钟周期MACD绿柱变短可以捕捉到一定程度的市场趋势,有利于获得高回报。
有何风险?
该选股逻辑存在以下风险:
- RSI指标可能存在滞后的问题,选出的股票可能已经过了买入时机;
- 集中度和15分钟周期MACD指标都与市场情况有着很大的关联,市场异常波动可能导致选股逻辑的失效或误判。
如何优化?
可以增加更多技术面指标,如KDJ、RSI等,更全面地考虑股票的走势;可以加入其他市场情况变化的指标,如板块热度、资金流向等,提高选股逻辑的准确度。
最终的选股逻辑
选择RSI小于65、集中度在70%以上和20%以下、15分钟周期MACD绿柱变短的股票。
同花顺指标公式代码参考
// 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)
// 15分钟周期MACD绿柱变短
SELECTED_STOCKS = SELECTED_STOCKS AND (LLV(MACD>0, 25) <= LLV(MACD>0, 50))
canSelect = SELECTED_STOCKS
python代码参考
from jqdata import *
import talib
# 定义选股条件
def select_condition(context):
# 集中度在70%以上和20%以下
q = query(
valuation.code,
finance.SW1_CODE,
indicator.trade_ratio,
q112.id,
).filter(
indicator.trade_ratio >= 0.2, # 集中度在20%以下
indicator.trade_ratio <= 0.7, # 集中度在70%以上
finance.SW1_CODE != '751030', # 排除科创板
)
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]
selected_macd_stocks = all_stocks['code'][all_stocks['code'].apply(lambda x: talib.MACD(get_bars(x,context.period,'15m',['high','low','close'])['close'],fastperiod=12, slowperiod=26, signalperiod=9)[2][-1]>0)]
selected_stocks = selected_rsi_stocks[selected_rsi_stocks['code'].isin(selected_macd_stocks)]
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亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


