请到后台主题设置添加
首页 / 基金

用DeepSeek结合板块资金编写捕捉涨幅大的龙头股程序

以下是一个基于板块效应和资金流向捕捉龙头股的Python程序框架,结合了实时数据分析和策略筛选:

“`python

import akshare as ak

import pandas as pd

import numpy as np

from datetime import datetime

# 参数设置

TRADE_DATE = datetime.now().strftime(“%Y%m%d”)

MIN_SECTOR_RISE = 2.0 # 板块最小涨幅(%)

MIN_INDIVIDUAL_RISE = 5.0 # 个股最小涨幅(%)

VOLUME_RATIO_THRESHOLD = 1.5 # 量比阈值

CAPITAL_FLOW_THRESHOLD = 5000000 # 资金流入阈值(万)

def get_real_time_data():

“””获取实时市场数据”””

stock_zh_a_spot_df = ak.stock_zh_a_spot()

return stock_zh_a_spot_df

def get_sector_data():

“””获取板块分类数据”””

sector_df = ak.stock_board_industry_name_em()

return sector_df

def get_capital_flow_data():

“””获取资金流向数据”””

capital_flow_df =
ak.stock_fund_flow_individual(symbol=”即时”)

return capital_flow_df

def analyze_sectors(stock_data, sector_data):

“””分析板块效应”””

merged_df = pd.merge(stock_data, sector_data, on=’代码’)

sector_analysis = merged_df.groupby(‘板块’).agg(

avg_rise=(‘涨幅’, ‘mean’),

total_volume=(‘成交量’, ‘sum’),

stock_count=(‘代码’, ‘count’)

).reset_index()

strong_sectors = sector_analysis[

(sector_analysis[‘avg_rise’] > MIN_SECTOR_RISE) &

(sector_analysis[‘stock_count’] >= 5)

].sort_values(‘avg_rise’, ascending=False)

return strong_sectors

def find_leading_stocks(stock_data, sector_data, capital_flow_data, strong_sectors):

“””筛选龙头股”””

merged_df = pd.merge(stock_data, sector_data, on=’代码’)

merged_df = pd.merge(merged_df, capital_flow_data, on=’代码’)

# 计算量比

merged_df[‘量比’] = merged_df[‘成交量’] / merged_df[‘过去五日平均成交量’]

# 筛选条件

candidates = merged_df[

(merged_df[‘板块’].isin(strong_sectors[‘板块’])) &

(merged_df[‘涨幅’] > MIN_INDIVIDUAL_RISE) &

(merged_df[‘量比’] > VOLUME_RATIO_THRESHOLD) &

(merged_df[‘主力净流入’] > CAPITAL_FLOW_THRESHOLD)

]

# 排序指标

candidates[‘综合评分’] = (

candidates[‘涨幅’] * 0.4 +

candidates[‘量比’] * 0.2 +

candidates[‘主力净流入’] * 0.4

)

return candidates.sort_values(‘综合评分’, ascending=False)

def main():

# 获取数据

print(“正在获取实时数据…”)

stock_data = get_real_time_data()

sector_data = get_sector_data()

capital_flow_data = get_capital_flow_data()

# 分析板块

print(“分析板块效应…”)

strong_sectors = analyze_sectors(stock_data, sector_data)

if strong_sectors.empty:

print(“当前无符合要求的强势板块”)

return

# 筛选龙头股

print(“筛选龙头股…”)

leading_stocks = find_leading_stocks(stock_data, sector_data, capital_flow_data, strong_sectors)

# 输出结果

print(“\n=== 潜在龙头股列表 ===”)

print(leading_stocks[[‘代码’, ‘名称’, ‘板块’, ‘涨幅’, ‘量比’, ‘主力净流入’, ‘综合评分’]].head(10))

if __name__ == “__main__”:

main()

“`

### 策略逻辑说明:

1. **数据获取层**:

– 实时行情数据(股价、成交量、涨跌幅)

– 板块分类数据

– 资金流向数据(主力净流入、大单统计)

2. **板块分析层**:

– 计算各板块平均涨幅

– 筛选当日涨幅超过阈值的强势板块

– 排除成分股过少的板块(至少5只个股)

3. **个股筛选层**:

– 量比指标筛选(成交量放大)

– 资金流入筛选(主力净流入达标)

– 涨幅筛选(个股涨幅超过阈值)

– 综合评分系统(结合涨幅、量比、资金流入)

4. **输出排序**:

– 按综合评分降序排列

– 展示TOP10候选标的

### 增强功能建议:

1. **动态阈值调整**:

“`python

# 根据市场波动率动态调整阈值

def dynamic_threshold(market_volatility):

base_rise = 5.0

return base_rise * (1 + market_volatility/10)

current_volatility = get_market_volatility()

MIN_INDIVIDUAL_RISE = dynamic_threshold(current_volatility)

“`

2. **资金流持续性分析**:

“`python

# 添加3日资金流连续流入判断

def check_capital_continuity(code):

hist_flow =
ak.stock_fund_flow_individual(symbol=”3日”)

return hist_flow[code].diff().gt(0).all()

“`

3. **板块强度验证**:

“`python

# 加入板块RPS指标(相对强度)

def calculate_rps(sector_df):

sector_df[‘涨幅排名’] = sector_df[‘avg_rise’].rank(pct=True)

sector_df[‘RPS’] = sector_df[‘涨幅排名’].rolling(5).mean()*100

return sector_df

“`

4. **风险控制模块**:

“`python

def risk_control(stock):

# 排除高价股和ST股

if stock[‘价格’] > 100 or stock[‘名称’].startswith(‘ST’):

return False

# 排除换手率异常

if stock[‘换手率’] > 30:

return False

return True

“`

该程序需要配合以下数据源使用:

1. AKShare金融数据接口(需定期维护)

2. 最新的板块分类数据

3. 实时更新的资金流向数据

实际使用中需要注意:

– 需要处理接口限速和数据质量问题

– 建议结合分钟级数据更新(15分钟/30分钟)

– 需要定期回测优化参数

– 建议结合人工研判使用

可以通过添加以下模块增强实用性:

– 企业微信/钉钉通知功能

– 可视化看板(使用Plotly/Dash)

– 历史回测框架

– 风险收益分析模块

建议在实盘使用前进行至少3个月的历史回测,并根据不同市场环境(牛市/熊市/震荡市)调整参数。

版权说明:
1.版权归本网站或原作者所有;
2.未经本网或原作者允许不得转载本文内容,否则将视为侵权;
3.转载或者引用本文内容请注明来源及原作者;
4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。
搜索
最新留言
关注我们
关注我们
微信
关注我们
微博
请到后台主题设置添加

Powered ByZ-Blog.