(supermind量化投资)task13/a/元宇宙、竞价主力净买大于0、连续3天以上大

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

问财量化选股策略逻辑

该选股策略包含元素“元宇宙”、“竞价主力净买大于0”和“连续3天以上大单净量大于0.05”。

选股逻辑分析

该选股策略主要基于市场热点、资金流向和交易量等因素,筛选出符合条件的个股,具体逻辑如下:

  1. 元宇宙:选择当前热门板块中的个股进行筛选;
  2. 竞价主力净买:根据个股的竞价流入流出情况,筛选竞价主力净买大于0的股票;
  3. 连续3天以上大单净量大于0.05:根据个股的交易量,筛选连续三天以上单笔成交金额大于0.05万元的股票,以表明市场对该股票的看好程度。

综合这些因素,筛选出符合条件的股票,以期获得较好的投资收益。

有何风险?

  1. 数据风险:该策略基于市场行情和历史数据,存在数据风险;
  2. 细节风险:当选择有多个细分板块时,可能会出现重复或冲突的情况;
  3. 交易量易受干扰:当市场出现异常波动或个股消息面利好/利空的情况下,可能会引起单日交易量大幅波动,产生误判。

如何优化?

  1. 增加细节参数:加入更多具体的条件选项,以提高精度和覆盖范围;
  2. 时间限制:在选择连续三天以上的大单净量情况时,可以对时间做出更详细的约束;
  3. 采用量化模型:通过对大量数据进行实时统计分析和机器学习,提高筛选的效率和准确率。

最终的选股逻辑

综合考虑市场热点板块、资金流向和交易量等因素,筛选出符合条件的个股,即满足元宇宙投资方向,竞价主力净买大于0且连续三天以上单笔成交金额大于0.05万元的股票。同时,加入更多具体的条件选项,以提高精度和覆盖范围。

同花顺指标公式代码参考

元宇宙:GNBK("gnxq")

竞价主力净买:(VOL - 3 - 5 + 1) * 50 / 10000

单笔成交金额:(AMOUNT / VOL) / 10000

Python代码参考

import pandas as pd
import tushare as ts 

def stock_selector():
    ts.set_token('your_token')
    pro = ts.pro_api()
    
    # 获取符合条件的所有股票的代码
    data = pro.query('stock_basic',
                fields=['ts_code','name','industry','concept_name'], 
                where={'market':'SSE','list_status':'L','is_hs':'N'})
    
    data['jbmoneysum'] = pro.moneyflow(ts_code=data['ts_code'], start_date='20190101',
                                       end_date='20211022', fields='jb').groupby('ts_code')['jb'].sum()

    condition_1 = data['yyzbl']
    
    q = pro.quotations(ts_code=data['ts_code'], start_date='20211021',
                        end_date='20211021', fields='ts_code,pre_close,open,match').set_index('ts_code')
    q['is_stop'] = q['match'] / q['pre_close'] < 1.09
    q['jbmoneysum'] = pro.moneyflow(ts_code=q.index.tolist(), start_date='20211019', 
                                     end_date='20211021', fields='jb').groupby('ts_code')['jb'].sum()
    q['bdjesum'] = pro.block_trade(trade_date='20211021', ts_code=q.index.tolist(), fields='ts_code,trade_money')\
                    .groupby('ts_code')['trade_money'].sum()
    q['danjia'] = q['bdjesum'] / q['match']   
    condition_3_1 = (q['danjia'] >= 5) & ~ q['is_stop']
    condition_3_2 = q.groupby('ts_code')['bdjesum'].rolling(3).sum() / q['danjia'] > 0.05
    condition_3_3 = condition_3_2.groupby('ts_code').tail(3).all(level=0)
    condition_3 = condition_3_1 & condition_3_3
    
    data = data[condition_1 & condition_3]
    selected = data.head(5)

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

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

    模板如何使用?

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


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

评论