(同花顺量化)10天内涨停天数大于2_、今日均线向上发散、rsi小于65

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

问财量化选股策略逻辑

选股逻辑:选取RSI小于65、今日均线向上发散、10天内涨停天数大于2的股票。

选股逻辑分析

该选股策略加入了近期涨停板的判断,可以筛选出市场热点股票,挖掘出其中的机会股票。同时,该选股策略仍然考虑了技术面指标,涵盖了RSI和均线,可以较准确地判断股票价格趋势。

有何风险?

选股策略过于依赖近期涨停板情况,可能会错过一些潜力较大的股票。同时,涨停板天数也不一定是准确的买入时间点,需要进一步观察价格走势,判断买入时机。

如何优化?

可以加入更多的基本面指标,如每股收益、净资产收益率等,考虑公司的盈利情况、资产质量等方面,从而更全面地评估股票的价值。同时,可以尝试加入市场因素指标,如PE、PB等,辅助判断股票的估值水平,有助于选股更为精准。

最终的选股逻辑

选取RSI小于65、今日均线向上发散、10天内涨停天数大于2的股票。

同花顺指标公式代码参考

  • RSI: RSI(14)
  • 均线: MA(CLOSE,1), MA(CLOSE,20)

Python代码参考

import pandas as pd
import tushare as ts
import talib

def sort_by_volume(stock_df):
    volumes = ts.get_today_all()['volume']
    stock_df['volume'] = volumes[stock_df['股票代码'].apply(lambda x: x[2:])]
    stock_df.sort_values(by='volume', ascending=False, inplace=True)
    return stock_df

def get_stock_list(rsi_threshold=65, ma_today_length=1, ma_short_length=20, rise_limit_days=10, top_n=5):
    limit_data = ts.limit_list()
    stock_list = pd.DataFrame(columns=['股票代码', '名称'])
    for i in range(len(limit_data)):
        symbol = limit_data.iloc[i]['code']
        if symbol[0] == '6':
            symbol = 'sh' + symbol
        else:
            symbol = 'sz' + symbol
        kline_today = ts.get_k_data(symbol=symbol, start='2022-05-05', end='2022-05-05')
        if len(kline_today) == 0:
            continue
        close_price = kline_today['close']
        rsi = talib.RSI(close_price, timeperiod=14)[-1]
        if rsi > rsi_threshold:
            continue
        close_ma_today = talib.MA(close_price, timeperiod=ma_today_length)
        if close_price.iloc[-1] <= close_ma_today.iloc[-1]:
            continue
        rise_limit_data = ts.get_today_ticks(code=symbol, retry_count=5)
        rise_limit_data = rise_limit_data[rise_limit_data['change']>=9.7]
        if len(rise_limit_data[rise_limit_data['change']>=9.7]['change']) < rise_limit_days:
            continue
        name = limit_data.iloc[i]['name']
        stock_list = stock_list.append({'股票代码': symbol, '名称': name}, ignore_index=True)
    stock_list = sort_by_volume(stock_list)
    return stock_list[:top_n]
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论