(supermind量化投资)task13/a/元宇宙、机构动向大于0、竞价时涨跌幅买入大

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

问财量化选股策略逻辑

该选股策略选取元宇宙行业中,机构动向大于0,并在竞价时根据大单和特大单的共计买入量选择涨跌幅超过一定比例的个股进行投资。

选股逻辑分析

该选股策略主要围绕以下条件进行选股:

  1. 选取元宇宙行业中的个股,因为元宇宙领域具有较高的成长性和隐含收益;
  2. 选择机构买入股票可以获得较好的资本回报;
  3. 根据大单和特大单的共计买入量来筛选涨跌幅超过一定比例的个股。因为大单和特大单往往代表着机构的意愿,当买入量较大时可能是机构策略的一部分,而涨跌幅则代表着市场对于个股的买入意愿。

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

有何风险?

  1. 受市场情况影响较大,涨跌幅选股方法具有一定风险;
  2. 涨跌幅过大可能存在短期波动风险;
  3. 选取目标股票时,大单和特大单的买入量可能存在突发情况和误判情况。

如何优化?

  1. 增加选择股票的技术指标和基本面因素,综合判断股票的投资价值;
  2. 优化大单和特大单的筛选标准,同时控制选取股票的比例;
  3. 增加动态止损策略,控制投资风险。

最终的选股逻辑

该选股策略选取元宇宙行业中,机构动向大于0,并在竞价时根据大单和特大单的共计买入量选择涨跌幅超过一定比例的个股进行投资。

同花顺指标公式代码参考

元宇宙行情:GNBK("gnxq");

机构动向:DRS_M("zlltgtzb");

大单买入量:BD_ML("buyvol", 1, 1)

特大单买入量:SD_ML("buyvol", 1, 1)

竞价时涨跌幅:REF(CLOSE, 1) / OPEN - 1

选股公式:GNBK("gnxq") AND DRS_M("zlltgtzb") AND (BD_ML("buyvol", 1, 1) + SD_ML("buyvol",1,1))/10000 > 0.7 AND REF(CLOSE,1)/OPEN > 0.03

Python代码参考

import pandas as pd
import tushare as ts

def stock_selector():
    ts.set_token('your_token')
    pro = ts.pro_api()
    data1 = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,name,industry')
    data1 = data1[data1['name'].str.contains('元宇宙')]
    data2 = pro.query('fii_lgt_list', start_date='20220308', end_date='20220308', fields='ts_code, buy_value, sell_value, net_value')
    data2 = data2.groupby(by='ts_code').sum()
    data2['net'] = data2['net_value'] / 1e8
    data2 = data2.sort_values(by='net', ascending=False)
    data2 = data2.iloc[0:100, :]
    data2['rank'] = range(1, 101)
    data2 = data2.loc[:, ['rank']]
    data3 = pd.concat([data1, data2], axis=1)
    data3 = data3.dropna()
    data3.reset_index(drop=True, inplace=True)
    data4 = pro.query('daily_basic', ts_code='600519.SH', start_date='2022-03-04', end_date='2022-03-08', fields='ts_code,trade_date,open,close')
    data4 = data4.pivot_table(index='trade_date', values=['open', 'close'], columns='ts_code')
    data4.columns = ['_'.join(col).strip() for col in data4.columns.values]
    data4 = data4.iloc[-1, :]
    data4 = pd.DataFrame({'ts_code': data4.index.values, 'open_price': data4.values})
    data5 = pd.concat([data3, data4], axis=1)
    data5.dropna(inplace=True)
    data6 = pro.moneyflow(ts_code='000001.SH', start_date='2022-03-04', end_date='2022-03-08', fields='ts_code,trade_date,buy_sm_vol,buy_md_vol,buy_lg_vol')
    data6 = data6.pivot_table(index='trade_date', columns='ts_code', values=['buy_sm_vol', 'buy_md_vol', 'buy_lg_vol'])
    data6.columns = ['_'.join(col).strip() for col in data6.columns.values]
    data6 = data6.iloc[-1, :]
    data6 = pd.DataFrame({'ts_code': data6.index.values, 'buy_sm_vol': data6.values})
    data7 = ts.get_today_ticks('002236')
    data7 = data7[data7['type'] == '买盘']
    data7 = data7.groupby(by='price').sum()
    data7['rank'] = range(1, len(data7) + 1)
    data7['buy_sum'] = data7['vol'].cumsum()

    data8 = pd.merge(data5, data6, on='ts_code', how='inner')
    data8.drop(['name', 'industry', 'rank'], axis=1, inplace=True)
    data8.set_index(['ts_code'], inplace=True)
    data8['big_buy_sum'] = data8.apply(lambda x:int(data7[data7['buy_sum'] > 700]['rank'].min()), axis=1)
    data8 = pd.merge(data8, data4, on='ts_code', how='inner')
    data8['rise_fall'] = (data8['close'] - data8['open_price']) / data8['open_price']
    data8 = data8[data8['big_buy_sum'] >= 1]
    data8 = data8[data8['rise_fall'] >= 0.03]
    return data8
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论