(supermind)振幅大于1、今日控盘>21、(昨日换手率_(今日竞价成交量除昨日成交

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

问财量化选股策略逻辑

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

选股逻辑分析

该选股策略主要考虑了市场资金面和股票的交易情况。振幅大于1考虑了股票的波动性,今日控盘大于21反映了市场资金流入,而昨日换手率和竞价成交量则是反映出当前交易情况的指标,可以用来筛选出短线趋势较好的股票。该选股逻辑选股标准较为灵活,考虑到了市场情况和成交情况,可以帮助投资者捕捉到市场的较好机会。

有何风险?

该选股策略可能面临以下风险:

  1. 选股指标的局限性:该策略可能因选股指标的限制,对市场各种因素的反映存在偏差;
  2. 策略的时效性:该选股策略重视短期交易情况,可能难以获取更长期、更全面的市场信息,具有时效性;
  3. 选择样本容易受到市场噪音的影响:样本选择不当可能受到市场噪音的影响,导致策略的低准确度。

如何优化?

为了降低风险和提高策略的精度,我们可以通过以下措施进行优化:

  1. 扩大选股指标:可以加入更多基本面和技术面的指标,如市值、股息率、净资产收益率等对股票的评价指标;
  2. 优化选股标准:我们可以选取更有代表性的指标,并根据其效果调整其权重,以提高选股精度;
  3. 使用机器学习方法分析股票走势和选股:通过采用机器学习、神经网络等方法,可以自主学习和分析股票的走势,找出有效的选股方法。

最终的选股逻辑

基于以上分析和优化需求,我们最终选择以下选股逻辑:

  1. 振幅大于1;
  2. 今日控盘大于21;
  3. (昨日换手率*(今日竞价成交量/昨日成交量))>0.5<2;
  4. 市值在20亿以上;
  5. 市盈率小于20,市净率小于3,ROE大于10%。

同花顺指标公式代码参考

以下是同花顺实现此策略的部分指标公式代码:

C1 = AMP() > 1;
C2 = ABS(CONTROLLING_SHARES_DAY_CHG()) > 21;
C3 = REF(TURNOVER_RATE(), 1) * (TRANSITION_PRICE_LAST()/REF(TRANSACTION_SUM_VOL(),1)) > 0.5 AND REF(TURNOVER_RATE(), 1) * (TRANSITION_PRICE_LAST()/REF(TRANSACTION_SUM_VOL(),1)) < 2;
C4 = CAP() > 2000000000;
C5 = PE() < 20 AND PB() < 3 AND ROE() > 10;
SELECTOR = C1 AND C2 AND C3 AND C4 AND C5;
RESULT = REF(SORT(RANK(SELECTOR), 1), 0) == 0;

python代码参考

以下是Python实现此策略的部分代码:

def select_stocks():
    selected_stocks = []
    all_trading_days = get_all_trade_days()
    all_trading_days = sorted(all_trading_days, reverse=True)
    for stock in get_all_stocks():
        c1 = get_price(stock, end_date=datetime.now(), frequency='1d', fields='amplitude')[-1] > 0.01
        c2 = abs(get_controlling_shareholders(stock, end_date=datetime.now(), frequency='1d')['controlling_shareholders_day_pct_change'][-1]) > 0.21
        turnover_rate = get_price(stock, start_date=all_trading_days[-10], end_date=all_trading_days[-1], frequency='1d', fields='turnover_rate')
        transaction_sum_vol = get_price(stock, start_date=all_trading_days[-10], end_date=all_trading_days[-1], frequency='1d', fields='transaction_sum_volume')
        yesterday_turnover_rate = turnover_rate[-2]
        today_transition_price_last = get_price(stock, end_date=datetime.now(), frequency='1m', fields='close')[0]
        yesterday_transaction_sum_vol = transaction_sum_vol[-2]
        if yesterday_turnover_rate*(today_transition_price_last/yesterday_transaction_sum_vol) > 0.5 and yesterday_turnover_rate*(today_transition_price_last/yesterday_transaction_sum_vol) < 2:
            c3 = True
        else:
            c3 = False
        c4 = get_market_cap(stock, date=datetime.now()) > 2000000000
        data = get_fundamentals(query(valuation, indicator).filter(valuation.code == stock), date=datetime.now())
        if not data.empty:
            c5 = data['valuation_pe'][0] < 20 and data['valuation_pb'][0] < 3 and data['indicator_roe'][0] > 0.1
        if c1 and c2 and c3 and c4 and c5:
            selected_stocks.append(stock)
    selected_stocks = sorted(selected_stocks, key=lambda x: get_price_change(x, 1, datetime.now(), frequency='1d'), reverse=True)
    return selected_stocks[:5]

result = select_stocks()
print(result)

以上Python代码仅供参考,具体实现还需要根据自己的需求调整。

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

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

    模板如何使用?

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


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

评论

需要帮助?

试试AI小助手吧