(iwencai选股策略)近25个交易日有单日涨幅大于等于百分之10_、上市大于、rsi小

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

问财量化选股策略逻辑

选股逻辑:rsi小于65,股票上市时间大于1年,近25个交易日内有单日涨幅大于等于10%。

选股逻辑分析

该选股逻辑同样采用了RSI指标作为技术面的指标,要求股票上市时间大于1年,以筛选出相对成熟的企业。同时,要求近25个交易日内有单日涨幅大于等于10%,即挖掘近期涨势较好的股票。

有何风险?

该选股逻辑同样存在主观性,特别是对于近25个交易日内的单日涨幅的判断,可能会存在判断错误的风险。同时,由于该逻辑只考虑技术面,没有考虑基本面等因素,可能会导致选出的股票存在较高的风险。

如何优化?

可以增加其他指标,如均线、MACD指标等,综合考虑股票的技术面和基本面,提升策略的效果和稳定性。同时,可以采用机器学习等方法来优化选股逻辑,提高选股的准确率和稳定性。

最终的选股逻辑

选股逻辑:rsi小于65,股票上市时间大于1年,近25个交易日内有单日涨幅大于等于10%,市值在100亿以内。

同花顺指标公式代码参考

C1: MAINBORADINFO(1) == 1 AND ZuiXinJia >=5 AND BJSFLAG == 0 AND ZSZ >= 1 AND ZSZ <=100
C2: BARSLAST(C1) >= 240
C3: RSI(CLOSE,14) < 65
C4: SUM(MAX((CLOSE/REF(CLOSE, 1)-1), 0), 25) > 10
SELECT IF(C1 AND C2 AND C3 AND C4, 1, 0)

Python代码参考

import pandas as pd
import akshare as ak
import talib

def get_stock_list():
    result_df = pd.DataFrame()
    stock_pool = ak.stock_zh_a_spot().astype({'证券代码':'str', '总市值':'float', '流通市值':'float', 'CiPanGaiNian':'str'})['证券代码', '名称', '最新价', '总市值', '流通市值', '市盈率', '市净率', 'CiPanGaiNian'].copy()
    stock_pool = stock_pool[(stock_pool['市值'] > 100000000) & (stock_pool['市值'] < 10000000000)]
    stock_pool.rename(columns={"名称": "name", "市盈率": "pe", "市净率": "pb", "CiPanGaiNian": "concept"}, inplace=True)
    for code in stock_pool['证券代码'].tolist():
        # 获取股票K线数据
        stock_k_data = ak.stock_zh_a_daily(code)
        if len(stock_k_data) == 0:
            continue
        if stock_k_data['是否上市'].iloc[0] <= 1:
            continue
        # 判断近25个交易日单日涨幅大于等于10%
        if stock_k_data['收盘价'].iloc[-25:].pct_change().max() < 0.1:
            continue
        # 计算RSI指标
        rsi = talib.RSI(stock_k_data['收盘价'], timeperiod=14)
        if rsi[-1] > 65:
            continue
        recent_price = ak.stock_zh_a_spot_em(code)['最新价'][0]
        if recent_price >= 5:
            if (recent_price - stock_k_data['收盘价'].iloc[-1]) / recent_price < -0.05:
                continue
        result_df = result_df.append(stock_k_data, ignore_index=True)
    result_df['rsi'] = talib.RSI(result_df['收盘价'], timeperiod=14)
    result_df = result_df[result_df['rsi'] < 65]
    result_df = result_df[result_df['市值'] < 10000000000]
    return result_df
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论