(supermind量化投资)task13/a/元宇宙、昨日股价大于250日均线、大单净量

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

问财量化选股策略逻辑

该选股策略包括三个条件:元宇宙、昨日股价大于250日均线、大单净量排行。通过筛选出符合条件的股票进行投资。

选股逻辑分析

该选股策略主要通过以下三个条件进行选股:

  1. 元宇宙:选择热门板块中的个股。
  2. 昨日股价大于250日均线:判断个股目前的价格是否较稳定且接近长期均线。
  3. 大单净量排行:筛选出大单净量排行前20的股票,通过监测资金流入流出情况来判断股票走势。

综合以上三个条件,选择符合要求的个股进行投资。

有何风险?

  1. 过度依赖历史数据,未能及时反映股票的最新变化,对投资收益造成影响。
  2. 股票的市值相对较小,流通性可能较差,容易受到市场情绪和资金流动的波动影响。
  3. 大单交易量可能受到一些大机构或私募基金的驱动,存在一定的不确定性。同时,过于追求大单交易量排名也可能忽略企业本身的财务和业绩表现。

如何优化?

  1. 除了考虑股票价格、市值等因素外,也需要结合其他财务和业绩指标进行选股,以更加全面地评估股票价值。
  2. 提高对股票流通性和资金性质的评估,结合市场情况和投资回报率进行综合分析,确保投资回报稳定。
  3. 应该结合资金流入和流出量的变化情况,而非仅仅追求大单净量排名高低,以更准确地判断股票走势。

最终的选股逻辑

该选股策略选择元宇宙板块中,股票均价站在250日均线之上,并且大单净量排名前20名的股票进行投资。

同花顺指标公式代码参考

元宇宙:GNBK("gnxq")

昨日股价大于250日均线:C >= MA(250)

大单净量排名前20名:大单净量 / 1000000 >= Ref(SortIDsRank(LI, 1), 19)

Python代码参考

import pandas as pd
import tushare as ts

def stock_selector():
    ts.set_token('your_token')
    pro = ts.pro_api()

    # 获取所有元宇宙板块中的个股
    gnxq = pro.index_basic(
        fields='category',
        identifying_code='9650',
        market='SSE'
    )
    gnxq_stocks = gnxq.loc[gnxq['category'] == 'GN023']

    data_selected = pd.DataFrame()
    for code in gnxq_stocks['con_code']:
        df = pro.query('daily', ts_code=code, fields='trade_date, close, high, low, open, vol, amount, pct_chg')
        if len(df) < 2:
            continue
        if (df.iloc[-2]['close'] >= df['close'].rolling(250).mean()[249]):
            _basic = pro.query(
                'stock_basic',
                ts_code=code,
                fields=['name', 'industry', 'exchange', 'list_date', 'market_cap']
            )
            _moneyflow = pro.query(
                'moneyflow',
                ts_code=code,
                fields=['buy_sm_vol', 'sell_sm_vol', 'buy_md_vol', 'sell_md_vol', 'buy_lg_vol', 'sell_lg_vol']
            )
            if ('ST' not in _basic['name'].values[0]) and (_basic['exchange'].values[0] != 'SZSE') and \
                    (_basic['list_date'].values[0] <= '20220101') and (_basic['market_cap'].values[0] < 5000000000):
                if (_moneyflow.empty == False):
                    df_selected = pd.concat(
                        [df.tail(1), _moneyflow],
                        axis=1,
                        join='outer'
                    )
                    df_selected['big_money_net_vol'] = df_selected['buy_lg_vol'] - df_selected['sell_lg_vol']
                    df_selected['big_money_net_yuan'] = df_selected['big_money_net_vol'] * df_selected['close'] * 100
                    if (df_selected['big_money_net_vol'] / 10000 >= df_selected['big_money_net_vol'].rolling(5).mean()[0]) and \
                            (df_selected['big_money_net_yuan'] / 1000000 >= df_selected['big_money_net_yuan'].rolling(5).mean()[0]):
                        data_selected = data_selected.append(
                            df_selected.assign(
                                name=_basic['name'].values[0],
                                industry=_basic['industry'].values[0],
                                market_cap=_basic['market_cap'].values[0],
                                net_vol=df_selected['buy_lg_vol'].values[0] - df_selected['sell_lg_vol'].values[0]
                            )
                        )

    data_selected = data_selected.sort_values(by=['big_money_net_yuan'], ascending=False)
    return data_selected[['name', 'industry', 'market_cap']]
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论