用DeepSeek结合首板,分时图,换手爆量,编写连板程序

B站影视 港台电影 2025-05-23 18:48 2

摘要:以下是一个基于量化思路的"一进二"连板策略程序框架,结合了首板、分手时图和换手爆量特征。该策略需要配合股票数据接口使用(如聚宽、掘金等平台):

以下是一个基于量化思路的"一进二"连板策略程序框架,结合了首板、分手时图和换手爆量特征。该策略需要配合股票数据接口使用(如聚宽、掘金等平台):

```python

import pandas as pd

import numpy as np

from talib import abstract

class SecondBoardStrategy:

def __init__(self):

self.capital = 1000000 # 初始资金

self.positions = {} # 持仓记录

self.trade_log = # 交易记录

def get_conditions(self, ticker, df):

"""

核心策略逻辑判断

"""

# 基础数据准备

close = df['close'].values

vol = df['volume'].values

amount = df['amount'].values

high = df['high'].values

# 1. 首板判断(当日涨停)

last_close = close[-1]

last_high = high[-1]

is_zt = (last_high / close[-2] - 1) >= 0.095 # 涨停判断

# 2. 换手爆量(动态阈值)

avg_turn5 = df['turnover_rate'].rolling(5).mean.values[-2]

current_turn = df['turnover_rate'].values[-1]

turnover_boom = current_turn > avg_turn5 * 1.8

# 3. 分时结构特征

# 获取当日分时数据(15分钟粒度)

min_data = get_min_data(ticker) # 需要对接分时数据接口

morning_avg = min_data['09:45':'11:30']['amount'].mean

afternoon_avg = min_data['13:00':'14:45']['amount'].mean

time_structure = afternoon_avg > morning_avg * 0.8 # 午后量能维持

# 4. 封单质量

last_order = df['bid1_volume'].values[-1] # 买一量

order_ratio = last_order / (vol[-1]/240) # 封单量与分钟均量比值

order_quality = order_ratio > 3

# 5. 排除条件

market_cap = df['circulating_market_cap'].values[-1]

exclude = (market_cap > 200e8) | (df['is_st'].values[-1]) # 剔除ST和超大市值

return is_zt & turnover_boom & time_structure & order_quality & (~exclude)

def execute_strategy(self, data):

"""

策略执行主函数

"""

candidates =

for ticker in all_stocks:

df = get_recent_data(ticker) # 获取近期数据

if self.get_conditions(ticker, df):

candidates.append(ticker)

# 仓位管理(示例)

position_size = self.capital * 0.2 / len(candidates) if len(candidates)>0 else 0

for ticker in candidates:

if ticker not in self.positions:

self.open_position(ticker, position_size)

# 止盈止损逻辑

for ticker in self.positions.copy:

current_price = get_current_price(ticker)

cost = self.positions[ticker]['cost']

if current_price/cost > 1.07: # 7%止盈

self.close_position(ticker)

elif current_price/cost

self.close_position(ticker)

# 其他辅助函数(需要对接交易接口)

def open_position(self, ticker, amount):

pass

def close_position(self, ticker):

pass

```

核心逻辑解析:

1. 首板识别模块:

- 精确涨停判断:使用`(high/prev_close -1) >=0.095`,结合是否封死涨停

- 排除新股(上市

- 市值过滤(通常选择20-100亿流通市值)

2. 换手爆量系统:

- 动态换手率计算:当日换手率超过5日均值的1.5-2倍

- 量比指标:当日量比>3(需计算分钟级量比)

- 成交分布:首封与回封时的成交量分布

3. 分时图质量判断:

- 涨停时间:优先选择10:30前封板

- 开板次数:最好不超过2次

- 回封力度:开板后30分钟内能强势回封

- 黄白线关系:分时均价线稳定上行

4. 资金维度:

- 封单质量:收盘时封单金额>5000万

- 主力资金:当日大单净流入占比>20%

- 市场热度:所属板块有3只以上涨停

5. 风险控制:

- 集合竞价过滤:次日开盘涨幅5%则放弃

- 最大回撤控制:单票最大亏损3%

- 板块联动止损:当板块出现跌停个股时触发止损

优化方向:

1. 加入机器学习模型:

```python

from sklearn.ensemble import GradientBoostingClassifier

def train_model:

# 使用历史数据训练二分类模型

features = ['turnover_ratio', 'seal_amount', 'board_strength', 'hot_index']

model = GradientBoostingClassifier

model.fit(X_train[features], y_train)

return model

```

2. 盘口数据集成:

- 买一卖一挂单变化

- 逐笔委托分析

- 大单冲击频率

3. 市场环境因子:

```python

def get_market_env:

# 计算市场情绪指标

rise_ratio = len(up_boards)/len(all_boards)

hot_industry = get_industry_hot

return {

'market_temperature': rise_ratio,

'industry_concentration': hot_industry

}

```

注意事项:

1. 数据频率:

- 需要TICK级数据验证分时形态

- 需要Level2数据判断真实封单量

2. 回测陷阱:

- 排除一字板(无法买入)

- 考虑次日开盘的流动性

- 精确计算涨停价(考虑四舍五入)

3. 实盘适配:

- 需要对接交易接口的订单簿分析

- 考虑滑点冲击(至少设置0.3%的默认滑点)

- 增加反脆弱机制(如黑名单制度)

建议在聚宽/掘金等量化平台实装时,需结合具体数据接口调整数据获取方式,并建议先进行2018-2023年的历史回测验证策略有效性。参数优化建议使用遗传算法进行多目标优化,重点优化换手阈值、仓位系数等关键参数。

来源:向阳随笔

相关推荐