(supermind量化策略)a1/rsi小于65、今日上涨>1主板、500日内至少2次涨

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

问财量化选股策略逻辑

本选股策略为:RSI指标小于65,今日上涨幅度大于1%,选择主板股票,在500日内至少2次涨停。期望获得超额收益。

选股逻辑分析

该选股策略结合了技术面和市场因素。RSI小于65代表股票处于超卖区间,可以预期股票将会反弹;今日上涨幅度大于1%则意味着股票动能较强,预期未来将继续上涨;选择主板股票可以降低市场波动风险;在500日内至少2次涨停意味着股票市场受到关注,有望获得超额收益。该策略相对科学,有望获取超额收益。

有何风险?

该策略主要存在的问题是过于依赖市场情绪和消息面,投资者过度追高。容易出现偏差,同时在市场走势不利的情况下,可能会获得亏损。需要注意风险控制。

如何优化?

应该将该选股策略继续完善,通过加入更多的因素,比如资金流向、大宗交易等因素。同时,需要通过量化方式对模型进行优化,通过机器学习等算法优化调参,提高策略适应性和灵活性,同时设置一定的止盈止损规则。

最终的选股逻辑

本选股策略为:RSI指标小于65,今日上涨幅度大于1%,选择主板股票,在500日内至少2次涨停。关注风险控制,长期投资获得稳定超额收益。

同花顺指标公式代码参考

// 建立选股语句
SELECT
    a.*
FROM
    (
        stock_market_data a
        JOIN stock_basic_data b ON a. stock_code = b.stock_code
    )
    JOIN (
        SELECT
            stock_code
        FROM
            stock_basic_data
        WHERE
            rsi < 65
            AND today_increase_rate > 1
            AND is_main = 1
            AND (
                SELECT COUNT(*)
                FROM (
                    SELECT
                        today_increase_rate
                    FROM
                        stock_market_data
                    WHERE
                        stock_code = b. stock_code
                    ORDER BY
                        trade_date DESC
                    LIMIT 2
                ) AS c
                WHERE
                    today_increase_rate >= 9.8
            ) >= 2
    ) c ON a. stock_code = c.stock_code;

注意:is_main代表是否为主板股票。

python代码参考

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

# 选股函数
def stock_picking():
    # 获取RSI指标小于65、今日上涨幅度大于1%、主板股票且至少2次涨停的信息
    all_data = ts.get_stock_basics()
    all_data = all_data[all_data['totalAssets'] > 0.1 * 10**10]
    all_data = all_data[all_data['pb'] < 3]
    all_data = all_data[all_data['pe'] > 0]
    all_data = all_data[all_data['pe'] < 100]
    all_data['is_main'] = all_data.index.map(lambda x: 1 if x[:2] in ['60', '00', '30'] else 0)
    filter_data = all_data[(all_data['today_increase_rate'] > 1) & (all_data['is_main'] == 1) & (all_data['rsi'] < 65)]

    stock_list = []
    for code in filter_data.index.tolist():
        data = ts.get_hist_data(code)

        # 判断是否存在两次以上的满足涨停条件的情况
        if (data['pct_chg'] >= 9.8).rolling(window=2).sum().iloc[-1] >= 2:
            stock_list.append(code)

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

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

    模板如何使用?

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


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

评论