(supermind量化策略)a1/rsi小于65、七连阴、周K线上穿30周线

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

问财量化选股策略逻辑

选股逻辑为RSI指标小于65、七连阴、周K线上穿30周线。

选股逻辑分析

该选股逻辑从技术面出发,选取RSI指标小于65、七连阴、并结合周K线上穿30周线的股票。这种选股方式着眼于技术面,从技术面寻找近期表现相对较好但仍未发现明显上涨的股票。此外,选股逻辑还结合股票的业绩、市值等基本面因素进行筛选,以确定最佳的投资机会。

有何风险?

该选股逻辑的技术面因素较多,而其他基本面因素考虑较少,容易忽略市场上的潜在风险,如宏观经济形势和行业发展趋势等。此外,选股逻辑过于依赖技术指标,可能会短期投资周期较短且风险较大。

如何优化?

可以增加其他技术和基本面指标,如MACD指标、均线、季度业绩等,不只仅从技术面进行筛选,以更全面地判断股票的投资价值。另外,应该结合宏观经济形势、行业方向等因素,以更好地考虑市场风险并确定更合理、更稳定的投资机会。

最终的选股逻辑

选股逻辑为RSI指标小于65、七连阴、周K线上穿30周线,并考虑股票的基本面因素。

同花顺指标公式代码参考

  1. RSI指标公式:RSI(CLOSE, N),其中N代表RSI的计算天数,默认为14.
  2. K线指标(K线由KDJ指标计算得出):KDJ(K线),其中KDJ计算公式为:RSV=N日内收盘价或最高价最低价的最高平均值
    K值=2/3×前一日K值+1/3×当日RSV
    D值=2/3×前一日D值+1/3×当日K值
    J值=3*当日K值-2*当日D值
  3. 移动平均线(30周线)的通达信计算公式:MA(CLOSE,305),其中CLOSE为收盘价,305是时间周期,即30周。

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指标
        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:
            continue
        if (history_quotes[-7:]["close"] <= history_quotes[-7:]["open"]).all():
            continue
        # 周K线上穿30周线
        kline = ak.stock_zh_a_daily(stock_code, start_date="20210101")
        if kline is None or len(kline) < 30*5:
            continue
        ma30 = kline[-30*5:]["close"].mean()
        if kline.iloc[-1]["close"] < ma30 or kline.iloc[-2]["close"] > ma30:
            continue
        # 选取主板股票
        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
        # 输出符合条件的股票代码、名称
        picked_stocks.append({"code": stock_code, "name": stock_list.loc[stock_code]["名称"]})
    for stock in picked_stocks:
        print(f"{stock['code']}、{stock['name']}")

该选股逻辑主要依据技术指标进行筛选,该段代码在提出选股逻辑的基础上,加入了周K线上穿30周线的检测以及考虑股票的基本面因素。为保证筛选出的股票为主板股票,对市值进行了限制。此外,也可以根据需要在代码中加入其他技术指标,如MACD指标、均线等,从多个角度去筛选符合要求的股票,以达到更好的筛选效果。

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

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

    模板如何使用?

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


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

评论