(supermind量化策略)a1/rsi小于65、今日上涨>1主板、15分钟周期MACD

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

问财量化选股策略逻辑

本选股策略为:RSI指标小于65,今日上涨幅度大于1%,选择非科创板主板股票,并且15分钟周期的MACD指标出现绿柱并且绿柱变短;通过选择符合以上条件的股票进行投资,以期望能够在短期内获得盈利。

选股逻辑分析

该选股策略基于短期技术指标选股,相对于基本面选股更加偏重于短期市场走势的波动。该策略的选股逻辑相对简单,包括RSI指标小于65、今日上涨幅度大于1%、非科创板主板股票和15分钟周期的MACD指标出现绿柱并且绿柱变短。这些条件的加入,在一定程度上可以筛选出短期内走势相对稳健、存在一定盈利空间的股票,增加获利的概率。

有何风险?

该选股逻辑过于偏重于短期市场走势和技术指标,忽略了公司的基本面和长期价值,存在追涨杀跌的可能性,增加投资风险。同时,15分钟周期的MACD指标变化较为短暂,可能存在盲目卖出的可能性,需要在实盘操作中谨慎处理。

如何优化?

为了更好地评估股票的实际价值和长期投资潜力,可以引入基本面数据和指标筛选。例如,可以考虑筛选具备稳定现金流和发展潜力的公司,并使用市盈率、市净率和净利润增长率等基本面指标进行筛选。此外,可以使用波动率等风险指标来筛选具备稳健发展潜力的股票,更好地平衡风险和收益。最终应结合市场形势和公司基本面等因素,进行合理的长期投资规划。

最终的选股逻辑

本选股策略为:RSI指标小于65,今日上涨幅度大于1%,选择非科创板主板股票,并且15分钟周期的MACD指标出现绿柱并且绿柱变短。在充分考虑市场情况和基本面数据的基础上,选择符合条件的股票,认真研究其实际情况和市场表现,并进行风险控制管理。在选股过程中,坚持价值投资、长期资产理念,注重全面考虑公司的基本面和规模优势。

同花顺指标公式代码参考

// 建立15分钟周期MACD指标的计算函数
TR:=EMA(CLOSE,SHORT), YD:=EMA(CLOSE,LONG), DIF: TR-YD, DEA: EMA(DIF,M), MACD: DIF-DEA;
SHORT:=12;
LONG:=26;
M:=9;

// 选取RSI小于65,今日上涨幅度大于1%,选择非科创板主板股票,并且15分钟周期的MACD指标出现绿柱并且绿柱变短的股票
select a.symbol as code, a.name as name, a.market_capitalization / 10000 as mkt_cap, bd_turnover_ratio, 
       ((s_mv_large - s_mv_small) / s_mv_total) as score
from stock_twse a
    inner join stock_daily b on a.id = b.stock_id
    left join (
        select a.symbol as symbol, max(trade_date) as date
        from stock_daily
        where length(symbol) < 5 and trade_date > '2022-04-05'
        group by a.symbol
    ) c on a.symbol = c.symbol and b.trade_date = c.date
    left join stock_industry d on a.industry_id = d.industry_id
    left join (
        select a.symbol as symbol, sum(a.mkt_capitalization) as s_mv_large
        from stock_twse a
            inner join (
                select max(symbol) as symbol, (total_assets + total_equity) as mv
                from stock_twse
                where listed_flag == '1' and length(symbol) < 5
                group by yearquarter
            ) b on a.symbol = b.symbol and a.total_assets + a.total_equity = b.mv
        group by a.symbol
    ) e on a.symbol = e.symbol
    left join (
        select a.symbol as symbol, sum(a.mkt_capitalization) as s_mv_small
        from stock_twse a
            inner join (
                select min(symbol) as symbol, (total_assets + total_equity) as mv
                from stock_twse
                where listed_flag == '1' and length(symbol) < 5
                group by yearquarter
            ) b on a.symbol = b.symbol and a.total_assets + a.total_equity = b.mv
        group by a.symbol
    ) f on a.symbol = f.symbol
    left join (
        select sum(total_equity) as s_mv_total from stock_twse
        where listed_flag == '1' and length(symbol) < 5
    ) g
    left join (
        select symbol, (close-open) / open as change, turnover / volume as bd_turnover_ratio
        from stock_minute
        where resolution = 15 and trade_date = '20220405' and volume > 0
        group by symbol
    ) h on a.symbol = h.symbol
where b.trade_date >= '2022-04-05'
    and (close - open) / open > 0.01
    and rsi(close,14) < 65
    and bd_turnover_ratio > 0.26
    and e.s_mv_large > f.s_mv_small
    and g.s_mv_total is not null
    and d.industry_level1 != '科技'
    and MACD > REF(MACD,1) and REF(MACD,1) < REF(MACD,2)
order by score desc
limit 20

python代码参考

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

# 选股函数
def stock_picking(data):
    # 计算RSI指标、涨幅、以及15分钟周期的MACD指标
    rsi = talib.RSI(data['close'], timeperiod=14)
    daily_return = data['close'].pct_change()
    macd, signal, _ = talib.MACD(data['close'], fastperiod=12, slowperiod=26, signalperiod=9)
    macd_histogram = macd - signal
    
    # 筛选符合条件的股票,并剔除ST和停牌股票
    filter_cond = (rsi < 65) & (daily_return > 0.01) & 
                  (data['symbol'].apply(lambda x: x.startswith('688')) == False) &
                  ((data['exchange'] == 'SZSE') | ((data['exchange'] == 'SSE') & (data['market'] == '主板'))) &
                  (macd_histogram > 0) & (macd_histogram.diff() < 0)
    
    # 按市值从大到小排序
    stock_list = data[filter_cond].sort_values('mkt_cap', ascending=False).index.tolist()
    
    return stock_list
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论