(supermind量化策略)a1/rsi小于65、七连阴、三个技术指标同时金叉

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

问财量化选股策略逻辑

选股逻辑为RSI指标小于65、七连阴、三个技术指标同时金叉。

选股逻辑分析

该选股逻辑基于技术面,选取RSI指标小于65、七连阴,并结合三个技术指标金叉的情况来判断是否有逆势反弹的机会。三个技术指标金叉具体是指均线指标、MACD指标、KDJ指标三个指标的金叉同时出现,其中均线指标反映价格的趋势,MACD指标反映价格的长短期走势,KDJ指标反映买卖力量的大小,三个指标同时金叉意味着多重技术因素的支撑和信号的确认。

有何风险?

该选股逻辑同样较少关注股票的基本面因素,可能忽略了公司的业绩、财务状况等重要因素对股票的影响,有可能忽略市场上隐含的风险,如行业政策、不利因素等,导致短期内的利空消息等不利消息的出现会给投资产生很大的影响。

如何优化?

增加其他技术和基本面指标的参考,如RSI变化率、季度业绩变化、盈利增速等指标,从多个角度去筛选股票,并增加对股票基本面的考虑,以此更全面地判断股票的投资价值。同时,加入基本面及财务分析的维度,需要密切关注公司业务、财务状况等信息,并注意市场、行业政策变化,从而更好地掌握股票的投资机会及风险。

最终的选股逻辑

选股逻辑为RSI指标小于65、七连阴、三个技术指标同时金叉,并结合多个基本面指标以保证投资价值和控制风险。

同花顺指标公式代码参考

  1. RSI指标公式:RSI(CLOSE, N),其中N代表RSI的计算天数,默认为14;
  2. 均线指标公式:MA(CLOSE, M) ,其中M为均线的计算天数,默认为5;
  3. MACD指标公式:DIF=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG),DEA=EMA(DIF,M),MACD=(DIF-DEA)*2,其中SHORT、LONG、M分别为MACD指标中的快线、慢线和周期,默认取值分别为12、26、9;
  4. KDJ指标公式:K= SMA(STOCHRSI(HIGH,LOW,CLOSE,9,3),3,1),D=SMA(K,3,1),J=3*K-2*D。

python代码参考

import akshare as ak

def pick_stocks():
    stock_list = ak.stock_zh_a_spot_em()
    picked_stocks = []
    for stock_code in stock_list.index:
        if "SH688" in stock_code or "SZ300" in stock_code:
            continue
        # 判断RSI小于65
        rsi = ak.stock_zh_index_daily_tx(stock_code, start_date="20210101")
        if rsi is None or len(rsi) < 14 or rsi.iloc[-1]["rsi14"] >= 65:
            continue
        # 判断七连阴
        history_quotes = ak.stock_zh_a_hist(stock_code, start_date="20210101")
        if history_quotes is None or len(history_quotes) < 7 or \
                sum(history_quotes[-7:]["close"] <= history_quotes[-7:]["open"]) != 7:
            continue
        # 判断技术指标金叉
        quotes_ma = ak.stock_zh_a_hist(stock_code, start_date="20210101", end_date="20211231")
        macd_diff = ak.stock_zh_index_daily_indicator(stock_code, "macd_diff")
        kdj_k = ak.stock_zh_index_daily_indicator(stock_code, "kdj_k")
        if quotes_ma is None or macd_diff is None or kdj_k is None:
            continue
        ma5 = quotes_ma.iloc[-1]["ma5"]
        ma10 = quotes_ma.iloc[-1]["ma10"]
        ma20 = quotes_ma.iloc[-1]["ma20"]
        if ma5 <= ma10 or ma5 <= ma20 or ma10 <= ma20:
            continue
        if macd_diff.iloc[-1]["macd_diff"] < 0 or macd_diff.iloc[-2]["macd_diff"] > macd_diff.iloc[-1]["macd_diff"]:
            continue
        if kdj_k.iloc[-1]["kdj_k"] < kdj_k.iloc[-2]["kdj_k"]:
            continue        
        # 选取市值在50-100亿的A股股票
        stock_info = ak.stock_info_a_code(stock_code)
        if stock_info is None or stock_info["circulation_market_value"] is None or \
                stock_info["circulation_market_value"] < 5000000000 or \
                stock_info["circulation_market_value"] > 10000000000:
            continue
        if stock_info["exchange"] != "SH":
            continue
        # 输出符合条件的股票代码、名称、RSI、连阴天数、技术指标是否金叉
        picked_stocks.append({"code": stock_code, "name": stock_list.loc[stock_code]["名称"],
                              "rsi14": rsi.iloc[-1]["rsi14"], "连阴天数": 7,
                              "是否技术指标同时金叉": True})
    for stock in picked_stocks:
        print(f"{stock['code']}、{stock['name']}、RSI14: {stock['rsi14']:.2f}、连阴天数: {stock['连阴天数']}、技术指标是否金叉: {stock['是否技术指标同时金叉']}")

该选股逻辑在提出选股逻辑基础上,增加了关于技术指标的筛选条件,采用多重技术指标金叉的方式筛选逆势反弹机会,综合考虑多个因素,以达到更加精细的选股策略。同时,对于技术指标的参考也可以根据需求进行增加和调整,以此更好地掌握股票的投资机会和风险。

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

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

    模板如何使用?

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


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

评论