用DeepSeek结合收盘价成交量资金板块编写捕获金股的程序

以下是一个结合收盘价、成交量、资金流向和板块效应的Python策略框架,使用Tushare数据接口实现。该程序通过多维度筛选潜力股,建议在实盘前进行历史回测验证。

“`python

import tushare as ts

import pandas as pd

import numpy as np

from datetime import datetime, timedelta

# 初始化Tushare(需自行获取token)

pro = ts.pro_api(‘your_tushare_token’)

# 参数设置

TRADE_DATE = datetime.now().strftime(‘%Y%m%d’) # 当前交易日

SELECT_NUM = 10 # 选股数量

VOL_MA_DAYS = 5 # 成交量均线天数

PRICE_MA_DAYS = 20 # 价格均线天数

def get_base_data():

“””获取基础数据”””

# 获取全A股列表

stock_list = pro.stock_basic(exchange=”, list_status=’L’,

fields=’ts_code,name,industry,list_date’)

# 获取交易日历

trade_cal = pro.trade_cal(exchange=’SSE’, start_date=’20240101′,

end_date=TRADE_DATE)

last_5_days = trade_cal[trade_cal.is_open==1].tail(5)[‘pretrade_date’].tolist()

# 获取行情数据

df = pro.daily(trade_date=TRADE_DATE)

df = df.merge(stock_list, on=’ts_code’)

# 获取资金数据

money_flow = pro.moneyflow(trade_date=TRADE_DATE)

df = df.merge(money_flow[[‘ts_code’,’buy_lg_amount’,’buy_elg_amount’]], on=’ts_code’)

return df, last_5_days

def calculate_technical(df, last_days):

“””计算技术指标”””

# 计算量价关系

df[‘vol_ma’] = df[‘vol’].rolling(VOL_MA_DAYS).mean()

df[‘price_ma’] = df[‘close’].rolling(PRICE_MA_DAYS).mean()

# 资金强度计算

df[‘big_money’] = df[‘buy_lg_amount’] + df[‘buy_elg_amount’]

df[‘money_ratio’] = df[‘big_money’] / df[‘vol’] / df[‘close’]

# 近期涨幅计算

hist_data = pro.daily(ts_code=’,’.join(df[‘ts_code’]),

start_date=last_days[0],

end_date=TRADE_DATE)

hist_pivot = hist_data.pivot(index=’ts_code’, columns=’trade_date’, values=’pct_chg’)

df[‘5d_pct’] = hist_pivot.mean(axis=1)

return df

def sector_analysis(df):

“””板块强度分析”””

sector_strength = df.groupby(‘industry’).agg({

‘pct_chg’:’mean’,

‘big_money’:’sum’,

‘vol’:’sum’

}).reset_index()

sector_strength[‘sector_score’] = (

sector_strength[‘pct_chg’]*0.4 +

sector_strength[‘big_money’]*0.3 +

sector_strength[‘vol’]*0.3

)

top_sectors = sector_strength.nlargest(3, ‘sector_score’)[‘industry’].tolist()

return df[df[‘industry’].isin(top_sectors)]

def strategy_filter(df):

“””执行多因子筛选”””

filtered = df[

# 价格突破均线

(df[‘close’] > df[‘price_ma’]) &

# 放量上涨

(df[‘vol’] > 1.5*df[‘vol_ma’]) &

# 资金强度筛选

(df[‘money_ratio’] > 0.2) &

# 排除新股

(df[‘list_date’] < ‘20200101’) &

# 波动性筛选

(df[‘5d_pct’].between(5, 20))

]

# 综合评分排序

filtered[‘score’] = (

filtered[‘pct_chg’]*0.3 +

filtered[‘money_ratio’]*0.4 +

filtered[‘5d_pct’]*0.3

)

return filtered.nlargest(SELECT_NUM, ‘score’)

def main():

# 数据准备

raw_data, hist_dates = get_base_data()

# 指标计算

tech_data = calculate_technical(raw_data, hist_dates)

# 板块筛选

sector_data = sector_analysis(tech_data)

# 策略执行

final_picks = strategy_filter(sector_data)

# 结果展示

print(“今日精选个股:”)

print(final_picks[[‘ts_code’,’name’,’industry’,’close’,’pct_chg’,’score’]])

# 生成买入信号

final_picks[‘position’] = np.where(final_picks[‘score’] > 0.7,

‘重仓’, ‘标准仓’)

return final_picks

if __name__ == ‘__main__’:

result = main()

“`

策略逻辑说明:

1. 多维度数据整合:

– 行情数据(收盘价、成交量)

– 资金数据(大单买入金额)

– 板块信息(行业分类)

– 历史表现(5日涨幅)

2. 核心筛选条件:

– 量价配合:成交量突破5日均量1.5倍

– 趋势判断:收盘价站上20日均线

– 资金强度:大单资金占比超过20%

– 板块效应:选择当日最强的3个板块

– 波动要求:5日累计涨幅在5%-20%之间

3. 风险控制:

– 排除上市未满2年的新股

– 设置仓位分级(根据评分)

4. 排序机制:

– 综合评分=当日涨幅×30% + 资金强度×40% + 近期动量×30%

注意事项:

1. 需申请Tushare权限并替换token

2. 建议在收盘后半小时运行(确保数据更新)

3. 实际使用需添加异常处理机制

4. 应结合大盘环境使用(弱势行情需提高筛选标准)

5. 建议配合止损策略使用(如跌破5日线止损)

进阶优化方向:

1. 加入基本面指标(PE、PEG)

2. 引入机器学习模型进行特征工程

3. 添加盘中实时监控模块

4. 结合市场情绪指标(如涨停板数量)

5. 加入北向资金持仓变化因子

建议回测时重点验证:

1. 不同市场环境下的胜率变化

2. 板块轮动效应的持续性

3. 资金因子的有效性

4. 参数敏感性测试(均线周期、权重分配)

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/1227409
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 10分钟前
下一篇 5分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注