(supermind)振幅大于1、今日控盘>21、下午大单净流入_

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,今日控盘>21,下午大单净流入。

选股逻辑分析

该选股逻辑主要依据了三个指标,振幅的大涨或大跌表明了市场资金的波动,控盘的变化情况反映了盘面情绪的变化,下午大单净流入则说明多空力量的对比情况。通过以上指标的联合判断,能够筛选出价格波动性高、市场人气高、趋势较为明朗的优质股票。

有何风险?

该选股逻辑可能存在以下风险:

  1. 下午大单净流入判断不准确:仅通过下午市场的大单交易情况,可能无法准确反映市场情况,从而使选股策略缺乏一定的可靠性;
  2. 过度关注短期行情:该选股逻辑强调大资金的交易行为,过度关注短期行情容易让投资者忽视公司基本面等重要因素的影响;
  3. 选择判断指标有限:只依赖市场社会人气、资金流向等指标选股,可能存在选股依据单一的情况,导致选股结果偏差较大。

如何优化?

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

  1. 引入更多的指标:在选股指标上引入更多的基本面、技术面的指标,比如市净率、股息率、板块走势等;
  2. 考虑其他市场因素:除了大单净流入之外,还应该关注市场场外资金的流入情况、公司业绩等其他指标对于选股的影响,更加全面地考虑市场情况和公司的实际情况;
  3. 四分位数排名:在策略优化之后,采用四分位数排名进行筛选,避免盲目跟从市场大趋势。

最终的选股逻辑

综上所述,我们最终选择以下选股逻辑:

  1. 振幅大于1;
  2. 今日控盘大于21;
  3. 下午大单净流入;
  4. 股票的市净率位于市场第一四分位数以下,股息率处于市场第一四分位数以上。

同花顺指标公式代码参考

SET dib='a';
SET t=10;
C1 = AMP()>1;
C2 = CONTROLLING_SHARES_DAY_CHG()>21 AND dib>=(-0.15);
C3 = DAILY_BIG_NET_FLOW_VOL()>0;
C4 = PB()<first_quartile(PB()) AND DIVIDEND_YIELD()>first_quartile(DIVIDEND_YIELD());
SELECTOR = C1 AND C2 AND C3 AND C4;
RESULT = SORT(RANK(SELECTOR), 1)==1;

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
        c3 = get_money_flow(stock, end_date=datetime.now(), frequency='1d')['big_inflow'][-1] > 0
        data = get_fundamentals(query(valuation, valuation, income).filter(valuation.code == stock), date=datetime.now())
        if not data.empty:
            c4 = data['valuation_pb'][0] < np.percentile(get_fundamentals(query(valuation).filter(valuation.code == stock), date=datetime.now(), count=120)['valuation_pb'], 25) and \
            data['valuation_dividend_yield'][0] > np.percentile(get_fundamentals(query(valuation).filter(valuation.code == stock), date=datetime.now(), count=120)['valuation_dividend_yield'], 75)
        if c1 and c2 and c3 and c4:
            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)
收益&风险
源码

评论