问财量化选股策略逻辑
选股逻辑:在RSI小于65、非科创板、15分钟周期MACD出现绿柱并变短的个股中进行选股。
选股逻辑分析
该选股策略综合了技术面指标在选股中的应用,先通过RSI指标进行筛选,选取技术面上表现相对较好的个股。然后排除科创板股票,关注非科创板市场中的潜力股。最后通过15分钟MACD绿柱变短的条件进行选股,判断股价下跌的动能是否在减缓,有望反转。
有何风险?
该选股策略同样存在着主观性和不确定性,选股策略过于依赖技术面因素,可能忽略了基本面的影响。同时,选股策略中的15分钟MACD绿柱变短的条件,需要与其他技术面指标进行综合考虑,以提高选股的进一步有效性。
如何优化?
-
完善选股逻辑:除了RSI指标和15分钟MACD绿柱变短的条件外,可以考虑增加其他技术面指标和基本面因素进行筛选,以减少主观性。
-
综合考虑多维度的指标:除了MACD指标外,可以综合考虑其他技术面指标,如KDJ、布林线等,用多维度的指标进行分析,提高选股质量。
最终的选股逻辑
选股标准为 RSI小于65、非科创板、15分钟周期MACD绿柱变短的个股。
同花顺指标公式代码参考
// RSI小于65
COND1 = RSI(CLOSE, 14) < 65;
// 不是科创板股票
COND2 = MARKETTYPE != 7;
// 15分钟MACD绿柱变短
COND3 = MACD(CLOSE, 15, 26, 9) < 0 AND REF(MACD(CLOSE, 15, 26, 9), 1) > 0 AND MACD(CLOSE, 15, 26, 9) > REF(MACD(CLOSE, 15, 26, 9), 1);
// 选取符合条件的股票
SELECT((COND1 AND COND2) AND COND3);
Python代码参考
import tushare as ts
import talib as ta
def select_stocks(stocks):
res = []
for stock in stocks:
try:
if stock.startswith('300'): # 排除科创板
continue
price_data = ts.get_hist_data(stock, start='2021-01-01')
if price_data is None:
continue
rsi_data = ta.RSI(price_data['close'].values, timeperiod=14)
if rsi_data[-1] > 65: # 筛选RSI的值
continue
macd_data = ta.MACD(price_data['close'].values, fastperiod=12, slowperiod=26, signalperiod=9)
if macd_data[2][-1] > 0 or macd_data[2][-2] < macd_data[2][-1] or macd_data[2][-1] - macd_data[2][-2] >= macd_data[2][-2] - macd_data[2][-3]: # 筛选MACD条件
continue
res.append((float(price_data.loc[0, 'high'] - price_data.loc[0, 'low']) / price_data.loc[0, 'low'] * 100, stock))
except Exception as e:
print(e)
continue
res.sort(reverse=True)
return [i[1] for i in res]
stocks = ts.get_stock_basics().index
res = select_stocks(stocks)
print(res)
注意:同样需要对数据类型和异常进行判断处理,而选股策略的有效性和实际可行性需要在实践中进一步检验。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


