(i问财选股策略)换手率3%-12%_、上市大于、rsi小于65

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

问财量化选股策略逻辑

选股逻辑:rsi小于65,上市大于1年,换手率选取3%-12%之间的股票。

选股逻辑分析

该选股逻辑主要注重技术面和市场表现,通过RSI指标判断股票的超卖状态,通过股票上市时间判断其是否处于成长期,并选择换手率处于合理范围内的股票,该方法可以排除异常的高换手率和低换手率的股票,并具有较高的活力和成长潜力。

有何风险?

该选股逻辑存在一定的投机性质,过于依赖短期市场表现和技术面指标,忽略了一些长期稳定性和基本面影响,容易受市场情绪影响而出现较大的波动性和风险。同时,换手率的高低和范围的选择也存在较大的主观性和不确定性,具有一定的局限性和缺陷。

如何优化?

可结合基本面和经济数据,如股票财务数据、行业发展趋势等信息,综合分析股票价值和潜在成长性,选择具备长期投资价值和成长潜力的股票。同时,可尝试引入其他技术指标和量价分析指标,如KDJ、OBV等,综合判断股票的买卖时机。

优化后的选股逻辑:rsi小于65,上市大于1年,换手率小于20%,并选择市盈率低于当前科技股市盈率均值的股票。

最终的选股逻辑

选股逻辑:rsi小于65,上市大于1年,换手率小于20%,市盈率小于当年科技股市盈率的5分之4。

同花顺指标公式代码参考

XG1: RSI(14) < 65
XG2: TRADEDATE - LISTDATE > 365
XG3: ((TURNOVER)/100) < 20
XG4: PE < STOQ("TECH_PE_MEAN",FUNC("SUM",0,TRADINGDAY(-1)),0.8)
...
SELECT IF(XG1 AND XG2 AND XG3 AND XG4, 1, 0)

Python代码参考

import pandas as pd
import tushare as ts

def get_stock_list():
    pro = ts.pro_api()
    
    # 获取股票基本信息
    df_basic = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,market,area,industry,list_date,pe')
    df_basic['list_date'] = pd.to_datetime(df_basic['list_date'])
    
    # 获取股票价格信息和换手率信息
    df_price = pro.daily_basic(ts_code='', start_date='20220106', end_date='20220110',
                               fields='ts_code,trade_date,turnover_rate')
    df_price = pd.merge(df_price, df_basic[['ts_code']], on='ts_code')
    
    # 计算RSI指标
    df_rsi = pro.index_daily(ts_code='000001.SH', start_date='20220106', end_date='20220110', 
                              fields='trade_date,close')
    df_rsi['rsi'] = talib.RSI(df_rsi['close'].values, timeperiod=14)
    
    # 计算市盈率均值
    df_pe_mean = pro.index_dailybasic(index_code='399975.SZ', start_date='20220106', end_date='20220110', 
                                       fields='trade_date,pe')
    mean_pe = df_pe_mean['pe'].mean()
    
    # 筛选股票
    df_result = pd.merge(df_price[(df_price['turnover_rate'] >= 3) & (df_price['turnover_rate'] <= 12)],
                          df_basic, on='ts_code')
    df_result = pd.merge(df_result, df_rsi[['trade_date', 'rsi']], on='trade_date')
    df_result = df_result[df_result['list_date'] < pd.Timestamp.today() - pd.Timedelta(days=365)]
    df_result = df_result[df_result['pe'] < mean_pe*0.8]
    
    # 返回结果
    return df_result[['ts_code', 'symbol', 'market', 'area', 'industry', 'list_date']]

Python依赖库

  • pandas

  • tushare

  • ta-lib

      ## 如何进行量化策略实盘?
      请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
    
      select_sentence = '市值小于100亿' #选股语句。
    
      模板如何使用?
    
      点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
    
    
      ## 如果有任何问题请添加 下方的二维码进群提问。
      ![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
    
收益&风险
源码

评论

需要帮助?

试试AI小助手吧