# 卡尔曼策略(Kalman Strategy) 本策略文件夹包含基于卡尔曼滤波器技术的交易策略实现,主要包括以下 Python 文件: ## 📌 策略文件概述 ### 1. `KalmanStrategy.py` #### 策略概述 - **核心思想**: 解决动能策略在“回调中吐出利润、震荡中持续亏损”的问题,通过动态识别市场状态,在有利的环境下交易,并使用结构化的方法进行风险管理。 - **主要组成部分**: - **状态过滤**: 使用ATR历史分位数构建“波动率状态机”,在低波动率的“震荡区”主动休眠,只在高波动率的“趋势区”寻找机会。 - **动能催化**: 沿用卡尔曼滤波器估算内在趋势,当价格以ATR标准化的力量“逃逸”出内在趋势时,视为入场信号。 - **结构化持仓**: 使用基于卡尔曼滤波线本身的“结构化止损”,给趋势以充分的“呼吸空间”,旨在持有完整的波段,避免在健康回调中被过早洗出。 #### 关键参数 - `kalman_process_noise`: 卡尔曼滤波器过程噪声。 - `kalman_measurement_noise`: 卡尔曼滤波器测量噪声。 - `atr_period`: ATR计算周期。 - `atr_lookback`: 用于计算ATR分位数的历史窗口。 - `atr_percentile_threshold`: ATR必须高于其历史的哪个百分位才认为是“趋势区”。 - `entry_threshold_atr`: 入场阈值。 - `initial_stop_atr_multiplier`: 初始止损的ATR乘数。 - `structural_stop_atr_multiplier`: 结构化止损的ATR乘数。 - `order_direction`: 交易方向(买入/卖出)。 - `indicators`: 使用的指标列表。 ### 2. `KalmanStrategy2.py` #### 策略概述 - **核心思想**: 通过一个核心参数 `strategy_mode`,在两种市场范式间切换,以适应不同品种的内在“性格”。 - **主要组成部分**: - **人格1: 'TREND' (趋势模式)**: - 哲学: 价格的强力突破会引发自我强化的趋势。 - 入场: 价格向上/下“逃逸”卡尔曼线 -> 做多/做空。 - 出场: 使用结构化卡尔曼止损,让利润奔跑。 - **人格2: 'REVERSION' (均值回归模式)**: - 哲学: 价格的极端偏离是不可持续的,终将回归均值。 - 入场: 价格向上/下极端偏离(超买/超卖) -> 做空/做多。 - 出场: 当价格回归至卡尔曼线时获利了结。 #### 关键参数 - `strategy_mode`: 核心参数,可选 'TREND' 或 'REVERSION'。 - `kalman_process_noise`: 卡尔曼滤波器过程噪声。 - `kalman_measurement_noise`: 卡尔曼滤波器测量噪声。 - `atr_period`: ATR计算周期。 - `atr_lookback`: 用于计算ATR分位数的历史窗口。 - `atr_percentile_threshold`: ATR必须高于其历史的哪个百分位才认为是“趋势区”。 - `entry_threshold_atr`: 入场阈值。 - `initial_stop_atr_multiplier`: 初始止损的ATR乘数。 - `structural_stop_atr_multiplier`: 结构化止损的ATR乘数。 - `order_direction`: 交易方向(买入/卖出)。 - `indicators`: 使用的指标列表。 ## 📌 文件区别 ### `KalmanStrategy.py` - 实现了一个自适应波段策略 (`AdaptiveKalmanStrategy`),主要用于解决动能策略在回调和震荡市场中的问题。 - 使用卡尔曼滤波器来识别市场状态和内在趋势,并结合ATR指标进行风险管理。 ### `KalmanStrategy2.py` - 实现了一个双模式卡尔曼策略 (`DualModeKalmanStrategy`),可以在两种不同的市场模式之间切换:趋势模式和均值回归模式。 - 通过一个核心参数 `strategy_mode` 来决定使用哪种模式,并相应地调整入场和出场逻辑。