(supermind)振幅大于1、周线红柱、(昨日换手率_(今日竞价成交量除昨日成交量))

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,周线红柱,(昨日换手率*(今日竞价成交量/昨日成交量))>0.5<2。

选股逻辑分析

该选股逻辑主要考虑了技术面指标和市场情绪因素,选取了振幅大于1、周线为红柱,以及昨日换手率与今日竞价成交量的关系作为选股策略的主要条件。振幅大于1选出具有较大波动的股票,周线红柱表示中短期股价有上涨动能,昨日换手率与今日竞价成交量的关系则用于衡量市场情绪,进而选出表现较好的股票。

有何风险?

该选股逻辑加入了情绪因素来选择股票,但是此类指标相对来说相对不稳定,容易受到市场的波动影响,因此会有一定风险。此外,选股逻辑缺乏对基本面的考量,其结果可能与实际价值不符。

如何优化?

可以优化该选股逻辑:首先,在技术面指标中加入更多指标,如RSI、KDJ、BOLL等技术指标,以更全面的方式综合评价股票。其次,在情绪因素方面,可以加入更多的与均量线相关的指标,以更好的反映市场情绪波动。最后,综合考虑技术面和基本面,对于指标权重进行合理分配,更全面地考量选出的股票。

最终的选股逻辑

综合考虑技术面和市场情绪,最终确定该选股逻辑:

1.振幅大于1;

2.周线为红柱;

3.(昨日换手率*(今日竞价成交量/昨日成交量))>0.5<2;

4.市盈率低于20倍;

5.净利润增长率大于20%。

同花顺指标公式代码参考

以下是同花顺实现该选股策略的指标公式代码:

C1 = AMP() > 1;
C2 = WEEKLY(COLOR(MACD(12, 26, 9), RED)) > 0;
C3 = (REF(VOL,1)*REF((IBID1/CLOSE),1)) > 0.5 AND (REF(VOL,1)*REF((IBID1/CLOSE),1)) < 2;
C4 = PE() < 20;
C5 = NPParentCompanyGrowRate_year_on_year() > 20;
SELECTOR = C1 AND C2 AND C3 AND C4 AND C5;
RESULT = SELECTOR;

以上代码中,REF(VOL,1)与REF(IBID1/CLOSE,1)表示昨日成交量与今日竞价成交量的关系,其余指标的含义同上。

Python代码参考

以下是Python实现该选股策略的部分代码:

# 筛选符合条件的股票
def select_stocks():
    selected_stocks = []
    for stock in get_all_securities(['stock']).index:
        # 获取最近一天的技术面数据
        macd_df = get_macd(stock, count=1, unit='1d', include_now=True, fillna=True)
        # 计算换手率与竞价成交量关系
        prev_turnover_rate = get_price(stock, count=2, end_date=datetime.now(), frequency='1d', fields='turnover_rate')[0]
        prev_volume = get_price(stock, count=2, end_date=datetime.now(), frequency='1d', fields='volume')[0][0]
        curr_volume = get_price(stock, count=1, end_date=datetime.now(), frequency='1m', fields='volume')[0][0]
        curr_turnover_rate = curr_volume / get_fundamentals(query(valuation, indicator).filter(valuation.code==stock).limit(1), date=datetime.now())['total_share'][0] * 100
        c3 = prev_turnover_rate[-1] * (curr_turnover_rate / prev_volume[-1]) > 0.5 and prev_turnover_rate[-1] * (curr_turnover_rate / prev_volume[-1]) < 2
        # 判断是否符合选股条件
        c1 = get_price(stock, count=1, end_date=datetime.now(), frequency='1d', fields='amplitude')[0] > 0.01
        c2 = macd_df['macd'][-1] > 0 and macd_df['diff'][-1] > 0
        s_df = get_fundamentals(query(valuation, indicator).filter(valuation.code==stock).limit(1), date=datetime.now())
        if s_df.empty:
            continue
        c4 = s_df['pe_ratio'][0] < 20
        c5 = s_df['npparentcompanyprofits_year_on_year'][0] > 20
        # 判断是否符合选股逻辑
        if c1 and c2 and c3 and c4 and c5:
            selected_stocks.append(stock)
    return selected_stocks

result = select_stocks()
print(result)

以上代码仅供参考,具体实现还需要根据自身需求进行调整。

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

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

    模板如何使用?

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


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

评论

需要帮助?

试试AI小助手吧