(iwencai量化策略)rsi小于65_、换手率_2%且_9%、至少5根均线重合的股票

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

问财量化选股策略逻辑

1. 至少5根均线重合的股票

  • 选取5日、10日、20日、60日、120日均线,要求至少5条均线重合。

2. 换手率>2%且<9%

  • 选取换手率大于2%且小于9%的股票。

3. RSI小于65

  • 选取RSI小于65的股票。

选股逻辑分析

以上三个条件分别从不同方面对股票进行了筛选,要求股票的短期和长期趋势稳定,换手率适中,且当前市场热度适中。这样的股票可能更加适合长期投资。

有何风险?

  • 如果市场整体趋势向下,以上三个条件可能会筛选出一些弱势股票,投资者需要谨慎对待。

如何优化?

  • 可以考虑加入更多均线进行筛选,例如30日、90日均线等,以提高筛选的准确性。

最终的选股逻辑

  • 选取5日、10日、20日、60日、120日、30日、90日均线重合的股票,且换手率大于2%且小于9%,RSI小于65的股票。

python代码参考

import talib
import pandas as pd

def get_5_ma_and_rsi(df):
    ma5 = talib.MA(df['close'], timeperiod=5)
    ma10 = talib.MA(df['close'], timeperiod=10)
    ma20 = talib.MA(df['close'], timeperiod=20)
    ma60 = talib.MA(df['close'], timeperiod=60)
    ma120 = talib.MA(df['close'], timeperiod=120)
    rsi = talib.RSI(df['close'], timeperiod=14)
    
    df['ma5'] = ma5
    df['ma10'] = ma10
    df['ma20'] = ma20
    df['ma60'] = ma60
    df['ma120'] = ma120
    df['rsi'] = rsi
    
    return df

def get_sticky_ma_and_rsi(df):
    ma5 = talib.MA(df['close'], timeperiod=5)
    ma10 = talib.MA(df['close'], timeperiod=10)
    ma20 = talib.MA(df['close'], timeperiod=20)
    ma60 = talib.MA(df['close'], timeperiod=60)
    ma120 = talib.MA(df['close'], timeperiod=120)
    rsi = talib.RSI(df['close'], timeperiod=14)
    
    df['ma5'] = ma5
    df['ma10'] = ma10
    df['ma20'] = ma20
    df['ma60'] = ma60
    df['ma120'] = ma120
    df['rsi'] = rsi
    
    df['5ma'] = df['ma5'].shift(1)
    df['10ma'] = df['ma10'].shift(1)
    df['20ma'] = df['ma20'].shift(1)
    df['60ma'] = df['ma60'].shift(1)
    df['120ma'] = df['ma120'].shift(1)
    
    df['5ma_diff'] = df['5ma'] - df['ma5']
    df['10ma_diff'] = df['10ma'] - df['ma10']
    df['20ma_diff'] = df['20ma'] - df['ma20']
    df['60ma_diff'] = df['60ma'] - df['ma60']
    df['120ma_diff'] = df['120ma'] - df['ma120']
    
    df['stuck_ma5'] = df['5ma_diff'].fillna(0)
    df['stuck_ma10'] = df['10ma_diff'].fillna(0)
    df['stuck_ma20'] = df['20ma_diff'].fillna(0)
    df['stuck_ma60'] = df['60ma_diff'].fillna(0)
    df['stuck_ma120'] = df['120ma_diff'].fillna(0)
    
    df['stuck_rsi'] = talib.RSI(df['stuck_ma5'], timeperiod=14)

## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

模板如何使用?

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


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

评论