(supermind量化策略)a1/rsi小于65、今日上涨>1主板、机构动向大于0

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

问财量化选股策略逻辑

本选股策略为:RSI指标小于65,今日上涨幅度大于1%,选取主板股票,且机构动向值大于0的股票。通过综合考虑股票的技术面和市场资金流向等因素,筛选符合条件的股票进行投资,期望获得稳健的收益。

选股逻辑分析

该选股策略主要依据RSI指标、股票涨跌幅度、股价是否高于250日均线等因素,以及机构资金的流入情况,筛选出近期表现优良,受到投资机构青睐的股票。RSI指标能够反映出股票当前的市场情绪,涨跌幅度能反映出股票的技术面和趋势情况,机构资金流向可以反映出市场投资者对于该股票未来的预期。该选股策略中选取主板股票意味着该股票具有一定的市值和流动性,投资性较为稳健。

有何风险?

与之前的策略相比,该选股逻辑加入了机构资金的因素,但同样忽略了公司基本面数据等其他相关因素对股票价值的影响,同时未考虑到后期市场的变化,因此在市场趋势变化时,选股逻辑可能不再适用。此外,选股逻辑中的机构动向值容易受到市场投机行为的影响,有可能出现一时的异常波动。因此,风险控制和分散投资组合仍需重视。

如何优化?

同样可引入更多的技术指标和基本面指标,如波动率、市净率、分红率、PEG等基本面数据,综合考虑各项数据,以得到更加准确的股票筛选结果。在机构资金的选择依据上,关注机构资金的持仓周期、股票占比等因素,以得到更为合理的选股依据。在执行选股策略时,注重风险控制和分散投资组合,避免过度集中投资造成的风险。

最终的选股逻辑

本选股策略为:RSI指标小于65,今日上涨幅度大于1%,选取主板股票,且机构动向值大于0的股票作为选股依据,在综合考虑市场情绪、技术面以及其他因素的基础上,选择符合条件的股票进行投资,注重风险控制和分散投资组合。

同花顺指标公式代码参考

// 建立选股语句
SELECT *
FROM STOCK_EXCHANGE_BOARD
WHERE RSI(14) < 65 AND INCREASE_TODAY_RA > 0.01 AND EXCHANGE_BOARD IN (1, 2) AND FI_INFOTYPE IN (2, 3) AND FI_PER > 0
ORDER BY VOLUME DESC;

注意:FI_INFOTYPE代表机构资金的信息类型,2代表大单净流入,3代表超大单净流入。FI_PER代表机构持股占比。

python代码参考

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

# 选股函数
def stock_picking():
    # 获取满足要求的股票信息并筛选出机构动向值大于0的股票
    today = ts.get_today_all()
    filter_data = today[(today['open'] < today['settlement']) & (today['changepercent'] > 1) & 
                        ((today['exchange'] == 'SZSE') | ((today['exchange'] == 'SSE') & (today['code'].str.startswith('6'))))]
    fi_data = ts.get_moneyflow_data(date=today.iloc[0]['date'])
    fi_data = fi_data[fi_data['mt_net_mamount'] > 0]
    filter_data = filter_data[filter_data['code'].isin(fi_data['ts_code'])]
    
    # 计算RSI指标,并筛选RSI指标小于65的股票
    history_data = ts.pro_bar(ts_code=filter_data['ts_code'].tolist(), adj='qfq', freq='D', start_date='20100101', end_date='')
    rsi_14 = ta.RSI(history_data['close'], timeperiod=14)
    filter_data = filter_data[rsi_14 < 65]
    
    # 计算涨跌幅度和选股依据
    daily_return = filter_data['close'] / filter_data['open'] - 1
    filter_data['daily_return'] = daily_return
    
    fi_data = fi_data[fi_data['ts_code'].isin(filter_data['code'])]
    fi_data = fi_data.set_index('ts_code')
    filter_data['fi_pct'] = fi_data['fi_pct']
    
    # 返回前10只股票
    stock_list = filter_data.sort_values(by='fi_pct', ascending=False).head(10)['ts_code'].tolist()
    
    return stock_list
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论