(supermind量化策略)a1/rsi小于65、三连阴、周线红柱

用户头像神盾局量子研究部
2023-08-30 发布

问财量化选股策略逻辑

选股逻辑为:RSI指标小于65、三连阴信号、周线出现红柱。综合考虑技术面,选取近期技术面表现较弱但具有反弹趋势的个股。

选股逻辑分析

该选股策略仍然综合考虑了技术面,通过RSI指标和三连阴信号筛选出近期技术面表现较弱的股票,同时加入周线出现红柱信号,则突出了技术面短线反弹的特征。通过选取具有反弹趋势的个股,具有一定的投资价值。

有何风险?

该选股策略仍然可能忽略了其他市场情绪等因素对股票走势的影响,同时忽略了其他重要的技术指标如移动平均线等,可能存在漏选优质股票的风险。此外,周线红柱的选取条件也可能需要进一步优化,不一定适合所有类型的股票。

如何优化?

可以适当引入其他市场情绪指标、财务数据等进行综合筛选,并且结合其他技术指标如移动平均线等更全面地分析市场行情。同时可以优化选取条件,如选取其他指标表示股票短期反弹的信号来筛选符合条件的个股。此外,可以综合运用其他技术指标来选取具有投资价值的个股,降低漏选的可能性。

最终的选股逻辑

选股逻辑为:RSI指标小于65、三连阴信号、周线出现红柱。通过综合考虑技术面选取具有反弹趋势的个股。

同花顺指标公式代码参考

// 计算RSI指标
RSI(C, 14)

// 计算三连阴信号
C1 = (C<OPEN)
C2 = (REF(C,1)<REF(OPEN,1))
C3 = (REF(C,2)<REF(OPEN,2))
C_L = (C1 & C2 & C3)

// 计算周线红柱
WS_HH = HHV(HIGH,21)
WS_LL = LLV(LOW,21)
WS_EF = REF(CLOSE,1)
WS_GL = VALUEWHEN(CROSS(CLOSE,WS_HH),WS_LL)
WS_FX = VALUEWHEN(CROSS(WS_EF,WS_HH),WS_LL)
Z_HZ = IF(CROSS(WS_GL,WS_FX),1,IF(CROSS(WS_FX,WS_GL),2,0))

// 选取符合条件的股票
SELECT A.SECUCODE 
FROM ASHOAREQU A 
WHERE RSI(A.CLOSE, 14) < 65 AND C_L AND Z_HZ > 0 AND Z_HZ < 9999

Python代码参考

# 导入需要用到的库
import pandas as pd
import tushare as ts
import talib

# 选股函数
def stock_picking(data):
    # 计算RSI指标
    rsi = talib.RSI(data['close'], timeperiod=14)

    # 计算三连阴信号
    c1 = (data['close'] < data['open'])
    c2 = (data['close'].shift(1) < data['open'].shift(1))
    c3 = (data['close'].shift(2) < data['open'].shift(2))
    c_l = (c1 & c2 & c3)

    # 计算周线红柱
    hh = data['high'].rolling(21).max()
    ll = data['low'].rolling(21).min()
    ef = data['close'].shift(1)
    gl = pd.Series(index=data.index, dtype=float)
    fx = pd.Series(index=data.index, dtype=float)
    for i in range(21, len(data)):
        ws_hh = hh.iloc[i-21:i]
        ws_ll = ll.iloc[i-21:i]
        ws_ef = ef.iloc[i]
        ws_gl = ws_ll[ws_hh.idxmax()]
        ws_fx = ws_gl
        for j in range(ws_gl, i):
            if ws_ef >= ws_hh[j]:
                ws_fx = ws_ll[j]
                break
        gl.iloc[i] = ws_gl
        fx.iloc[i] = ws_fx
    z_hz = pd.Series(0, index=data.index)
    z_hz[(gl < fx) & (gl.shift(1) > fx.shift(1))] = 1
    z_hz[(gl > fx) & (gl.shift(1) < fx.shift(1))] = 2

    # 筛选符合条件的股票
    filter_cond = (rsi < 65) & (c_l) & (z_hz > 0) & (z_hz < 9999)
    stock_list = data[filter_cond].index.tolist()
    return stock_list
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

    select_sentence = '市值小于100亿' #选股语句。

    模板如何使用?

    点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。


    ## 如果有任何问题请添加 下方的二维码进群提问。
    ![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论