(supermind量化-)振幅大于1、机构动向大于0、竞价时涨跌幅买入大单

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

问财量化选股策略逻辑

选取振幅大于1、机构资金动向大于0、竞价时涨跌幅买入大单和特大单共计买入量大于0.7千万的股票进行买入。

选股逻辑分析

该选股逻辑对股票的运作和市场热度的把握采用了同时考虑技术分析和资金流量的方法。其中振幅和机构资金动向是代表技术面的指标,可以作为股票价格强弱的参考;竞价时涨跌幅买入大单和特大单共计买入量代表的则是市场的需求和资金流动,同时也可以反映市场情绪和热度。

有何风险?

该选股逻辑可能会选出个别股票出现滞涨或是极度波动的情况,同时可能存在市场信息不对称导致选股结果与实际情况的偏离。

如何优化?

可以增加其他市场指标的参考,比如市场流通市值、撤单率等,同时考虑增加对于K线形态的分析,以更好的预测市场走势和股票的涨跌情况,减少可能的风险。

最终的选股逻辑

选取振幅大于1、机构资金动向大于0、竞价时涨跌幅买入大单和特大单共计买入量大于0.7千万的股票进行买入,同时增加流通市值、撤单率和K线形态等因素作为补充指标,以提高选股效果和风险控制能力。

同花顺指标公式代码参考

// 筛选振幅大于1的股票
amplitude = (HIGH - LOW) / OPEN
amplitude_bool = amplitude > 1

// 筛选机构资金动向大于0的股票
FUND_NET_AMOUNT = IF(NETFAMOUNT>0,NETFAMOUNT,0)
sum_fund_net_amount = SUM(FUND_NET_AMOUNT, 5)
fund_trend_bool = sum_fund_net_amount > 0

// 筛选竞价时涨跌幅买入大单和特大单共计买入量大于0.7千万的股票
bid_change = (OPEN - PRECLOSE) / PRECLOSE
bid_volume = VOLUME * (bid_change > 0)
big_volume = IF((bid_volume > 100000) AND (bid_volume < 1000000),bid_volume,0)
huge_volume = IF(bid_volume > 1000000,bid_volume,0)
sum_big_huge_volume = SUM(big_volume + huge_volume, 1)
big_huge_volume_bool = sum_big_huge_volume > 7000000

// 筛选符合条件的股票
result = amplitude_bool & fund_trend_bool & big_huge_volume_bool

// 输出筛选结果
result

Python代码参考

import tushare as ts

# 筛选条件1:振幅大于1
today_data = ts.get_today_all()
amplitude = (today_data['high'] - today_data['low']) / today_data['open']
amplitude_bool = amplitude > 1

# 筛选条件2:机构资金动向大于0
fund_data = ts.fund_holdings(2020, 3)
sum_fund_net_amount = fund_data.groupby('code')['net_amount'].sum().fillna(0)
fund_trend_bool = sum_fund_net_amount > 0

# 筛选条件3:竞价时涨跌幅买入大单和特大单共计买入量大于0.7千万
tick = ts.get_today_ticks('000001')
tick['bid_change'] = (tick['price'] - tick['pre_close']) / tick['pre_close']
tick['bid_volume'] = tick['volume'] * (tick['bid_change'] > 0)
tick['big_volume'] = tick['bid_volume'].where((tick['bid_volume'] > 100000) & (tick['bid_volume'] < 1000000), 0)
tick['huge_volume'] = tick['bid_volume'].where(tick['bid_volume'] > 1000000, 0)
tick['big_huge_volume'] = tick['big_volume'] + tick['huge_volume']
sum_big_huge_volume = tick['big_huge_volume'].rolling(window=5).sum()
big_huge_volume_bool = sum_big_huge_volume > 7000000

# 筛选符合条件的股票
result = amplitude_bool & fund_trend_bool & big_huge_volume_bool

# 输出筛选结果
final_result = today_data.loc[result].sort_values(by=["turnoverratio"],ascending=False)
print(final_result)

注:以上为示例代码,请根据实际情况进行调整。

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

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

    模板如何使用?

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


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

评论