首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >针对不同策略的股票池打架如何处理

针对不同策略的股票池打架如何处理

作者头像
子晓聊技术
发布2026-04-23 16:27:47
发布2026-04-23 16:27:47
1050
举报
文章被收录于专栏:子晓AI量化子晓AI量化

有同学问我, 自己有多套短线策略,比如一些是看资金流向的,一些是看个股热度的,一些是看板块RPS强度的, 怎么能快速把不同策略的股票个股数据快速筛选处理, 而不是一个一个策略池看过去,竞价5分钟时间太短。 这里提供一个例子。仅供参考

先说下技术思路,其实就是对pandas基础的快速应用, 把多个策略的个股统计出现次数,至少从明面上来看 策略出现的次数越多,说明共振的几率越大。

毕竟不同策略都能出某支票,说明这只票不管是从某种维度就符合大众审美。 因为大家的策略都有类似之处,相信的人多了, 资金跟随的多了,那么股价就上涨了。

这里贴一下完整代码,参考下思路, 具体根据自己的实际情况改造。 备注:如果发现格式有多余的特殊字符,用普通浏览器打开复制应该没问题。 希望我的分享对大家有所帮助

代码语言:javascript
复制
import pandas as pd
def analyze_strategy_overlap(strategy_dfs):
    """
    综合分析多个策略的选股重叠情况
    参数:
    strategy_dfs: 包含多个策略选股DataFrame的列表
    返回:
    包含个股出现次数和详细策略信息的DataFrame
    """
    # 收集所有股票的代码和名称
    all_stocks = pd.DataFrame()
    for i, df in enumerate(strategy_dfs):
        temp_df = df[['股票代码', '股票名称']].copy()
        temp_df['策略来源'] = f'策略{i + 1}'
        all_stocks = pd.concat([all_stocks, temp_df], ignore_index=True)
    # 统计每只股票的出现次数
    count_summary = all_stocks['股票代码'].value_counts().reset_index()
    count_summary.columns = ['股票代码', '出现次数']
    # 添加股票名称
    stock_name_map = all_stocks[['股票代码', '股票名称']].drop_duplicates()
    stock_name_map = stock_name_map.set_index('股票代码')['股票名称'].to_dict()
    count_summary['股票名称'] = count_summary['股票代码'].map(stock_name_map)
    # 收集每个股票出现在哪些策略中
    strategy_occurrence = {}
    for stock in count_summary['股票代码']:
        strategies = all_stocks[all_stocks['股票代码'] == stock]['策略来源'].unique()
        strategy_occurrence[stock] = ', '.join(strategies)
    count_summary['出现策略'] = count_summary['股票代码'].map(strategy_occurrence)
    # 按出现次数降序排序
    count_summary = count_summary.sort_values('出现次数', ascending=False)
    return count_summary
# 使用示例
# 假设我们有三个策略的选股结果
strategy1 = pd.DataFrame({
    '股票代码': ['000001.SZ', '000002.SZ', '600036.SH', '601318.SH', '000858.SZ'],
    '股票名称': ['平安银行', '万科A', '招商银行', '中国平安', '五粮液']
})
strategy2 = pd.DataFrame({
    '股票代码': ['000001.SZ', '600036.SH', '601318.SH', '600519.SH', '000651.SZ'],
    '股票名称': ['平安银行', '招商银行', '中国平安', '贵州茅台', '格力电器']
})
strategy3 = pd.DataFrame({
    '股票代码': ['000001.SZ', '601318.SH', '600519.SH', '000333.SZ', '002415.SZ'],
    '股票名称': ['平安银行', '中国平安', '贵州茅台', '美的集团', '海康威视']
})
# 分析策略重叠
result = analyze_strategy_overlap([strategy1, strategy2, strategy3])
print("多策略综合分析结果:")
print(result)

题外话:

周末汇总整理一些资料, 本来想把自己的一些东西做下完善汇总。网上搜了下资料,发现网上一些人原封不动照搬我之前写的文章 , 还被明目张胆的标成原创。 我只想说,你转载归转载, 原文链接保留一下啊 ,也尊重下 原创者的劳动成果啊。

不吐槽了,见的次数多了,还是眼不见心不烦。 有同学问我为啥不投诉,网络维权需要各种截图证据,浪费时间,花这个时间还不如思考怎么写更好更有深度的文章,思考更好的策略。

我一直坚信一句话,抄袭者永远只是跟随者, 跟不上创新者的脚步。

用股票思维来解释, 中国高科技被美国封锁,大都是因为知识版权。 如果因为知识版权搞各种封锁,而不是想着去创新。那么这个国家也不会有更好的前途了。 开盘观察下国产模拟芯片的竞价情况,国产当自强,自主可控,自主创新。

如果我的分享对你投资有所帮助,不吝啬给个点赞关注呗。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 子晓聊技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档