Files
sanguo_quant_live/zhaoyun-data/strategies/pure-breakout-20260327

纯突破量化策略方案

策略名称: 纯突破量化策略
策略类型: 技术突破策略
数据频率: 日频/分钟频
目标市场: A股全市场
开发状态: 方案设计完成,待回测验证
创建时间: 2026-03-27 14:00:00
创建人: 赵云(数据工程将军)
归档目录: /strategies/pure-breakout-20260327/


📁 目录结构

pure-breakout-20260327/
├── README.md                              # 本说明文件
├── config/                                # 配置目录(待创建)
├── data/                                  # 策略数据目录(待创建)
├── backtest/                              # 回测代码目录(待创建)
├── rules/                                 # 买卖规则目录(待创建)
└── reports/                               # 回测报告目录(待创建)

🎯 策略核心思想

1. 突破定义

突破: 价格突破特定阻力位或支撑位,形成新的价格趋势

2. 策略逻辑

  • 突破买入: 价格突破阻力位,预期继续上涨
  • 规则卖出: 按照预设规则卖出,锁定利润或控制亏损
  • 简化规则: 避免复杂的择时和择股逻辑,专注于价格突破

3. 策略特点

  • 纯粹性: 只关注价格突破,不涉及基本面
  • 简单性: 规则明确,易于理解和实现
  • 纪律性: 严格执行买卖规则,避免情绪干扰
  • 可扩展性: 可扩展到多个时间框架和市场

📊 策略逻辑框架

1. 突破信号定义

1.1 价格突破类型

A. 新高突破 (New High Breakout)
   - 价格突破N日最高价
   - 动量强劲,趋势明显

B. 震荡突破 (Consolidation Breakout)
   - 价格突破震荡区间
   - 蓄势后突破,持续性较好

C. 颈线突破 (Neckline Breakout)
   - 价格突破技术形态颈线
   - 形态突破,信号可靠

1.2 成交量确认

  • 突破时成交量 > 平均成交量 × 1.5
  • 避免假突破: 成交量配合验证

2. 买入规则

2.1 突破条件

# 突破信号条件
def breakout_signal(stock_data: pd.DataFrame) -> bool:
    """判断是否出现突破信号"""
    
    # 1. 价格突破N日最高价
    price_breakout = (
        stock_data['close'].iloc[-1] > 
        stock_data['high'].rolling(window=N).max().iloc[-2]
    )
    
    # 2. 成交量确认
    volume_confirmation = (
        stock_data['volume'].iloc[-1] > 
        stock_data['volume'].rolling(window=20).mean().iloc[-1] * 1.5
    )
    
    # 3. 波动率确认(避免窄幅震荡)
    volatility_ok = (
        stock_data['close'].pct_change().rolling(window=10).std().iloc[-1] > 0.02
    )
    
    return price_breakout and volume_confirmation and volatility_ok

2.2 买入时机

  • 突破当日收盘价买入
  • 突破次日开盘价买入(确认突破有效性)

3. 卖出规则

3.1 止盈规则

# 止盈规则
def take_profit(stock_data: pd.DataFrame, buy_price: float) -> bool:
    """判断是否满足止盈条件"""
    
    # 1. 固定百分比止盈
    profit_target = buy_price * (1 + profit_percentage)
    current_price = stock_data['close'].iloc[-1]
    
    # 2. 动态止盈(移动止损)
    if dynamic_stop_loss_enabled:
        highest_price_since_buy = stock_data.loc[buy_date:]['close'].max()
        dynamic_stop_price = highest_price_since_buy * (1 - trailing_stop_pct)
        
        if current_price <= dynamic_stop_price:
            return True  # 动态止盈
    
    # 3. 时间止盈(最大持仓时间)
    if max_holding_days is not None:
        days_held = (current_date - buy_date).days
        if days_held >= max_holding_days:
            return True  # 时间止盈
    
    return current_price >= profit_target

3.2 止损规则

# 止损规则
def stop_loss(stock_data: pd.DataFrame, buy_price: float) -> bool:
    """判断是否满足止损条件"""
    
    current_price = stock_data['close'].iloc[-1]
    
    # 1. 固定百分比止损
    if current_price <= buy_price * (1 - stop_loss_percentage):
        return True  # 固定止损
    
    # 2. 移动止损
    if moving_stop_loss_enabled:
        highest_price_since_buy = stock_data.loc[buy_date:]['close'].max()
        moving_stop_price = highest_price_since_buy * (1 - moving_stop_pct)
        
        if current_price <= moving_stop_price:
            return True  # 移动止损
    
    return False

3.3 强制卖出规则

  • 最大持仓天数: 超过设定天数强制卖出
  • 跌破重要均线: 价格跌破关键均线(如20日线)
  • 成交量异常萎缩: 突破后成交量持续低于平均

4. 仓位管理

4.1 初始仓位

  • 单笔买入金额: 固定金额或总资金比例
  • 最大持仓股票数: 控制组合分散度

4.2 加仓规则

  • 突破确认加仓: 突破后回踩不破前高,加仓
  • 金字塔加仓: 每上涨一定幅度,加仓一定比例

4.3 减仓规则

  • 部分止盈: 达到一定涨幅,减仓部分
  • 风险控制: 市场环境恶化,主动减仓

🔧 参数配置

1. 突破参数

# configs/breakout_config.yaml
breakout:
  # 突破周期参数
  breakout_periods:
    short_term: 20    # 20日突破
    medium_term: 55   # 55日突破
    long_term: 120    # 120日突破
  
  # 价格突破参数
  price_breakout:
    # 突破幅度要求
    breakout_percentage: 0.02  # 2%突破幅度
    
    # 突破确认
    confirmation_days: 1       # 1日确认
    confirmation_percentage: 0.01  # 1%确认幅度
  
  # 成交量确认参数
  volume_confirmation:
    min_volume_ratio: 1.5     # 突破日成交量 > 平均成交量 × 1.5
    volume_period: 20          # 20日均量作为基准
    
  # 波动率过滤
  volatility_filter:
    min_volatility: 0.02       # 最小波动率2%
    volatility_period: 10       # 10日波动率

2. 买卖规则参数

# configs/trading_rules_config.yaml
trading_rules:
  # 买入规则
  buy_rules:
    # 买入时机
    buy_timing: "close"  # close:突破日收盘价买入 | open:突破次日开盘价买入
    
    # 买入确认
    confirmation_required: true
    confirmation_days: 1
    confirmation_percentage: 0.01
  
  # 卖出规则
  sell_rules:
    # 止盈规则
    take_profit:
      fixed_percentage: 0.20  # 固定止盈20%
      dynamic_enabled: true   # 启用动态止盈
      trailing_stop_percentage: 0.10  # 10%移动止损
    
    # 止损规则
    stop_loss:
      fixed_percentage: 0.10  # 固定止损10%
      moving_enabled: true    # 启用移动止损
      moving_percentage: 0.08  # 8%移动止损
    
    # 强制卖出规则
    force_sell:
      max_holding_days: 60    # 最大持仓60天
      ma_break_period: 20     # 20日均线跌破卖出
      volume_drop_ratio: 0.5  # 成交量低于均量50%卖出
  
  # 仓位管理
  position_management:
    # 初始仓位
    initial_position:
      percentage: 0.02  # 单只股票初始仓位2%
      max_position: 0.10  # 单只股票最大仓位10%
    
    # 加仓规则
    add_position:
      enabled: true
      add_price_increase: 0.10  # 上涨10%加仓
      add_amount_percentage: 0.01  # 每次加仓1%
    
    # 减仓规则
    reduce_position:
      partial_take_profit: true
      partial_percentage: 0.50  # 部分止盈时减仓50%

3. 风险控制参数

# configs/risk_config.yaml
risk_control:
  # 市场风险
  market_risk:
    stop_all_if_market_down: true
    market_down_threshold: -0.05  # 市场下跌5%暂停买入
    max_exposure_in_down_market: 0.50  # 下跌市场中最大暴露50%
  
  # 个股风险
  stock_risk:
    max_position_per_stock: 0.10  # 单只股票最大持仓10%
    max_industry_exposure: 0.30   # 单个行业最大暴露30%
    
  # 组合风险
  portfolio_risk:
    max_correlation: 0.70         # 最大相关性70%
    diversification_score: 0.50   # 最小分散度得分0.50

🏗️ 技术实现框架

1. 策略引擎设计

1.1 突破检测器

class BreakoutDetector:
    """突破信号检测器"""
    
    def __init__(self, config: Dict):
        self.config = config
        
    def detect_breakout(self, stock_data: pd.DataFrame) -> Optional[BreakoutSignal]:
        """检测突破信号"""
        # 检测各类突破信号
        pass
    
    def confirm_breakout(self, breakout_signal: BreakoutSignal) -> bool:
        """确认突破有效性"""
        pass

1.2 信号生成器

class SignalGenerator:
    """交易信号生成器"""
    
    def __init__(self, breakout_detector: BreakoutDetector):
        self.breakout_detector = breakout_detector
        
    def generate_buy_signals(self, market_data: Dict) -> List[BuySignal]:
        """生成买入信号"""
        pass
    
    def generate_sell_signals(self, portfolio: Portfolio) -> List[SellSignal]:
        """生成卖出信号"""
        pass

1.3 交易执行器

class TradeExecutor:
    """交易执行器"""
    
    def __init__(self, position_manager: PositionManager):
        self.position_manager = position_manager
        
    def execute_buy(self, buy_signal: BuySignal) -> TradeRecord:
        """执行买入交易"""
        pass
    
    def execute_sell(self, sell_signal: SellSignal) -> TradeRecord:
        """执行卖出交易"""
        pass

2. 数据处理模块

2.1 价格数据处理

  • 复权价格计算
  • 技术指标计算(均线、布林带等)
  • 价格模式识别

2.2 成交量分析

  • 成交量均线计算
  • 成交量比率分析
  • 量价关系验证

2.3 突破信号识别

  • 价格突破识别
  • 成交量确认
  • 模式匹配

3. 回测系统设计

3.1 数据模块

  • 历史价格数据获取
  • 交易成本模拟
  • 市场环境模拟

3.2 策略模块

  • 突破信号检测
  • 买卖规则执行
  • 仓位管理

3.3 绩效模块

  • 收益风险计算
  • 回撤分析
  • 交易统计

3.4 报告模块

  • 绩效报告生成
  • 图表可视化
  • 结果分析

📈 回测设计

1. 回测周期

  • 训练期: 2015-01-01 至 2017-12-31 (3年)
  • 验证期: 2018-01-01 至 2020-12-31 (3年)
  • 测试期: 2021-01-01 至 2024-12-31 (4年)
  • 实盘模拟: 2025-01-01 至今

2. 回测参数

  • 初始资金: 1000万元
  • 交易成本: 双边0.15% (印花税+佣金)
  • 滑点: 0.1%
  • 调仓频率: 日频(信号触发时交易)
  • 股票池: A股全市场(流动性筛选)

3. 绩效指标

  • 收益指标: 年化收益率、累计收益率、超额收益

  • 风险指标: 年化波动率、最大回撤、夏普比率

  • 交易指标: 胜率、盈亏比、平均持仓时间

  • 组合指标: 信息比率、跟踪误差、Beta系数


🎯 策略优势与风险

策略优势

1. 逻辑简单清晰

  • 只关注价格突破,容易理解和实现

  • 规则明确,易于执行和监控

2. 执行纪律性强

  • 明确的买卖规则,避免情绪干扰

  • 严格的风险控制,限制亏损

3. 适应性强

  • 可应用于不同市场和品种

  • 可扩展到不同时间框架

4. 可解释性好

  • 突破信号直观,易于解释

  • 交易决策透明,便于优化

⚠️ 策略风险

1. 假突破风险

  • 价格突破后迅速回落,造成亏损

  • 需要结合成交量和其他确认信号

2. 市场环境风险

  • 震荡市易产生假突破

  • 趋势转换期信号失效

3. 交易成本影响

  • 频繁交易积累交易成本

  • 滑点影响实际收益率

4. 流动性风险

  • 小市值股票流动性不足

  • 突破时成交量不足影响执行

🔧 风险控制措施

1. 假突破过滤

  • 成交量确认(突破日成交量 > 平均成交量 × 1.5)

  • 波动率过滤(避免窄幅震荡突破)

  • 等待确认(突破后等待1-2日确认)

2. 仓位控制

  • 单只股票最大仓位控制(通常5-10%

  • 行业集中度限制

  • 市场风险暴露管理

3. 交易执行优化

  • 分批执行,减少市场冲击

  • 价格滑点控制

  • 交易时机优化


🚀 开发计划

阶段1: 数据准备 (1周)

  • A股日线数据准备(已完成)
  • 🔄 分钟数据采集(赵云负责,进行中)
  • 突破信号数据计算

阶段2: 策略实现 (2周)

  • 突破信号检测器开发
  • 买卖规则引擎实现
  • 仓位管理系统开发

阶段3: 回测验证 (2周)

  • 回测框架搭建
  • 参数优化测试
  • 绩效分析验证

阶段4: 实盘准备 (1周)

  • 交易接口对接
  • 监控系统开发
  • 风险管理系统实现

📋 实施建议

1. 开发优先级

  1. 突破信号检测器 - 核心模块,优先开发
  2. 买卖规则引擎 - 策略执行,优先级高
  3. 仓位管理系统 - 风险控制,优先级中
  4. 绩效分析模块 - 回测验证,优先级中

2. 测试策略

  1. 单元测试 - 各模块单独测试
  2. 集成测试 - 模块间联合测试
  3. 回测验证 - 历史数据回测验证
  4. 实盘模拟 - 模拟实盘环境测试

3. 优化建议

  1. 参数优化 - 基于历史数据进行参数优化
  2. 规则完善 - 根据回测结果优化买卖规则
  3. 风控加强 - 强化风险控制和仓位管理
  4. 绩效改进 - 持续优化策略绩效

👥 团队分工建议

角色 负责人 主要任务
策略设计 待定 突破规则设计、买卖规则优化
技术实现 赵云 数据准备、信号检测、回测框架
回测验证 待定 参数优化、绩效分析、风险测试
实盘对接 待定 交易接口、监控系统、风险管理

📝 存档说明

存档完成时间: 2026-03-27 14:15:00
创建人: 赵云(数据工程将军)
存档类型: 纯技术突破策略方案

当前状态:

  • 策略逻辑设计完成
  • 参数配置框架建立
  • 技术架构设计完成
  • 🔄 数据准备进行中
  • 开发实现待开始

常山赵子龙,纯突破策略方案存档完成! 🐎⚔️🚀

策略核心: 简单、纯粹、纪律的突破交易系统
开发状态: 方案设计完成,等待回测验证和开发实现