黑马判势策略详解
策略概述
黑马判势策略是一种基于 EXPMA(指数移动平均线)的趋势跟踪系统,通过多周期均线交叉和 SAR 辅助判断,识别市场趋势转折点,实现趋势跟踪交易。
核心代码位于 E:\钱龙\py\量化策略\ 目录下的多个文件中,主算法为 calculateqldkaligned 函数。
策略原理
EXPMA 指数移动平均线系统
EXPMA(Exponential Moving Average)是一种加权移动平均线,对近期价格赋予更高权重,反应更灵敏于价格变化。
黑马判势策略使用多周期 EXPMA 组合来判断趋势方向:
- 短期周期(period):用于计算短期极值,判断短期趋势
- 加速因子(af):动态调整追踪速度
- 极值追踪:通过 pmax(周期内最高价)和 pmin(周期内最低价)确定趋势边界
核心算法逻辑
def calculate_qldk_aligned(df: pd.DataFrame,
period: int = 4,
af0: float = 0.10,
step: float = 0.10,
max_af: float = 0.20):
算法通过状态机控制趋势转换:
- 状态 0(初始化):设置初始 SAR 和加速因子
- 状态 1(做多):SAR 向上追踪,若跌破则转空
- 状态 2(做空准备):切换至做空状态
- 状态 3(做空):SAR 向下追踪,若突破则转多
SAR 计算逻辑
p_max[i] = max(high[i-period+1...i]) # 周期内最高价
p_min[i] = min(low[i-period+1...i]) # 周期内最低价
# 做多时 SAR 向上推进
sar[i+1] = sar[i] + (p_max[i] - sar[i]) * af
# 做空时 SAR 向下推进
sar[i+1] = sar[i] - (sar[i] - p_min[i]) * af
核心参数
| 参数 | 默认值 | 说明 |
|---|---|---|
period | 4 | 极值计算周期,用于确定价格通道 |
af0 | 0.10 | 初始加速因子 |
step | 0.10 | 加速因子步长 |
max_af | 0.20 | 加速因子最大值 |
状态转换逻辑
策略通过 4 个状态管理趋势转换:
状态 0 (初始化) ──→ 状态 1 (做多初始)
│
│ 收盘价跌破 SAR
▼
状态 2 (反转准备) ──→ 状态 3 (做空初始)
│
│ 收盘价突破 SAR
▼
状态 1 (做多初始)
...
做多状态
if state == 1:
if temp_sar[i] <= c[i]: # 收盘价在 SAR 之上
# 继续做多,AF 递增
if h[i] > h[i-1] and af < max_af:
af += step
temp_sar[i+1] = temp_sar[i] + (p_max[i] - temp_sar[i]) * af
else:
state = 2 # 跌破 SAR,准备反转
做空状态
if state == 3:
if temp_sar[i] >= c[i]: # 收盘价在 SAR 之下
# 继续做空,AF 递增
if l[i] < l[i-1] and af < max_af:
af += step
temp_sar[i+1] = temp_sar[i] - (temp_sar[i] - p_min[i]) * af
else:
state = 0 # 突破 SAR,准备反转
策略特点
- 多周期分析:通过 period 参数控制分析周期,可适应不同时间框架
- 动态加速:加速因子随趋势强化递增,提高跟踪效率
- 极值追踪:基于周期内最高/最低价确定趋势边界
- 双向交易:支持多空双向操作
相关文件清单
Python 实现
| 文件 | 路径 | 说明 |
|---|---|---|
黑马判势终稿统计.py | E:\钱龙\py\量化策略\黑马判势终稿统计.py | 主算法实现(calculateqldkaligned)及统计回测 |
黑马判势终稿收益走势.py | E:\钱龙\py\量化策略\黑马判势终稿收益走势.py | 收益走势分析可视化 |
黑马判势终稿复利统计.py | E:\钱龙\py\量化策略\黑马判势终稿复利统计.py | 复利效果统计 |
黑马判势终稿统计元宝.py | E:\钱龙\py\量化策略\黑马判势终稿统计元宝.py | 元宝大模型生成版统计 |
黑马判势终稿统计gpt.py | E:\钱龙\py\量化策略\黑马判势终稿统计gpt.py | GPT 生成版统计 |
黑马判势终稿统计kimi.py | E:\钱龙\py\量化策略\黑马判势终稿统计kimi.py | Kimi 生成版统计 |
黑马判势终稿风险统计.py | E:\钱龙\py\量化策略\黑马判势终稿风险统计.py | 风险指标统计 |
黑马判势终稿 copy.py | E:\钱龙\py\量化策略\黑马判势终稿 copy.py | 备份版本 |
C++ 实现
| 文件 | 路径 | 说明 |
|---|---|---|
黑马判势绩效统计.c++ | E:\钱龙\py\量化策略\黑马判势绩效统计.c++ | C++ 绩效统计实现 |
黑马战略家.c++ | E:\钱龙\py\量化策略\黑马战略家.c++ | C++ 战略实现 |
Dart 手机版
| 文件 | 路径 | 说明 |
|---|---|---|
手机黑马判势expma_utils.dart | E:\钱龙\py\量化策略\手机黑马判势expma_utils.dart | 手机端 Dart 实现 |
依赖工具
| 文件 | 路径 | 说明 |
|---|---|---|
method_all.py | E:\钱龙\py\量化策略\method_all.py | 策略目录下的工具库 |
tool.py | E:\钱龙\py\量化策略\tool.py | 基础工具函数 |
method_all.py | E:\钱龙\py\method_all.py | 根目录核心工具库 |