查看全课大纲(第 10 / 59 节)
- 1.量化投资必备基础知识
- 2.趋势型策略及模型原理
- 3.均值回复型策略及模型原理
- 4.配对交易策略及模型原理
- 5.量化策略研发流程与基本技能
- 6.常用的量化平台概述及如何选择
- 7.如何量化一个主观策略思路
- 8.常用技术指标及指标计算过程
- 9.如何编写指标代码
- 10.指标的物理意义
- 11.技术指标的应用技巧
- 12.更多的交易决策
- 13.编写程序去量化一个趋势型技术指标
- 14.编写趋势型技术指标的性能评价
- 15.策略对交易成本和持仓周期的影响
- 16.股票池策略的原理及基本框架
- 17.基于多因子分析的股票池设计与实现
- 18.股票池的性能评估
- 19.使用定制化财务因子构建股票池
- 20.趋势型策略原理及股票池机制的设计
- 21.趋势型择时信号的设计方法与编程实现
- 22.趋势型策略的回测与性能评估
- 23.优化趋势型策略的思路及方法
- 24.量化体系中的风险控制思想
- 25.风险的度量-波动率
- 26.常用的风险控制方法
- 27.实现止盈止损模块以提高策略性能
- 28.策略性能的评估与优化
- 29.探讨波动率与风险的关系
- 30.量化策略中的经典资金管理模型
- 31.用python编程实现资金管理模块
- 32.构建一个完善的量化交易策略
- 33.趋势型量化策略必备的期货知识
- 34.期货量化工具介绍
- 35.商品期货趋势型策略原理
- 36.用TB编写商品期货趋势型策略(上)
- 37.用TB编写商品期货趋势型策略(下)
- 38.分析优化商品期货趋势型策略的方法思路
- 39.期货交易策略的注意事项
- 40.均值回复型策略的原理
- 41.A股市场有没有稳定的均值回复效应?
- 42.编写一个均值回复型股票量化策略
- 43.编写多空组合策略进行策略改进
- 44.在策略中实现头寸管理进行策略优化
- 45.套利策略原理及常见套利类型
- 46.用MC开发一个跨品种套利交易策略(上)
- 47.用MC开发一个跨品种套利交易策略(下)
- 48.统计套利之股票配对交易策略
- 49.实盘中的细节问题:加减仓
- 50.关于高频交易
- 51.如何评价实盘量化策略的性能
- 52.量化系统的工作过程及研发流程
- 53.运气or实力
- 54.量化实盘交易需要满足什么条件
- 55.未来函数的坑
- 56.实盘数据接口异常的自动报警
- 57.交易系统的压力测试
- 58.自动运行的交易策略,什么时候需要人工干预
- 59.预案准备和实盘心理建设
指标的物理意义
约 10 分钟
📺 正在播放小象学院官方高清录播(支持倍速与清晰度调节)
小象实战讲义 · 进阶量化交易实战:迭代式的量化策略研发 本讲义仅用于编程与量化方法教学,不构成任何投资建议。
技术指标并非凭空捏造的神秘曲线,每一个经典指标在物理学与信号处理理论中都有明确的对应实体。理解指标背后的位移、速度、加速度与能量衰减模型,是避免陷入机械调参和指标过拟合的根本之道。
💡 核心导读
- 技术指标的物理学对应关系:
- 价格序列(Price) 质点空间位置(Position / Displacement);
- 移动平均线(MA) 质心与低通滤波器(Low-pass Filter),滤除高频白噪声;
- 动量指标(Momentum / ROC) 瞬时速度(Velocity );
- MACD 柱状图(Histogram) 价格加速度与做功能量(Acceleration );
- 波动率与布林带(Bollinger Bands) 粒子热运动扩散区间与势能包络。
┌─────────────────────────────────────────────────────────────┐
│ 技术指标物理动力学映射拓扑图 │
└──────────────────────────────┬──────────────────────────────┘
│
┌───────────────┬─────────────┼─────────────┬───────────────┐
▼ ▼ ▼ ▼ ▼
┌─────────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌─────────────┐
│ 空间位移 │ │ 质心滤波 │ │ 运动速度 │ │ 动力加速度│ │ 热力学势能 │
├─────────────┤ ├───────────┤ ├───────────┤ ├───────────┤ ├─────────────┤
│ • 价格序列 │ │ • 均线 SMA│ │ • 动量 ROC│ │ • MACD 柱 │ │ • 布林带/ATR│
│ • 收盘价 P │ │ • 滤除噪点│ │ • 速度变化│ │ • 拐点研判│ │ • 能量边界 │
└─────────────┘ └───────────┘ └───────────┘ └───────────┘ └─────────────┘一、速度、加速度与能量守恒的量化映射
在经典力学中,物体的运动状态变化遵循牛顿第二定律 。在量化金融中,当价格向上快速拉升但成交量和 MACD 柱开始缩短时,物理实质是”加速度变为负值()“,虽然速度仍大于 0,但质点即将到达抛物线最高顶点。这就是顶背离的物理本质。
通过将物理学动力学方程引入技术分析,我们可以摆脱对形态学的主观臆测。
import pandas as pd
import numpy as np
def compute_kinematics_indicators(df: pd.DataFrame, window: int = 14) -> pd.DataFrame:
"""
计算价格速度 (Velocity) 与加速度 (Acceleration)
"""
res = df.copy()
# 1. 速度:单位时间内的位移变化率
res['Velocity'] = res['close'].diff(window) / float(window)
# 2. 加速度:速度的一阶导数
res['Acceleration'] = res['Velocity'].diff(1)
# 3. 动力势能:动能与波动率的结合
res['Kinetic_Energy'] = 0.5 * (res['Velocity'] ** 2)
return res
# 合成价格数据(教学样例,不代表真实市场)
rng = np.random.default_rng(42)
dates = pd.date_range(start='2024-01-01', periods=30, freq='D')
base_price = 100.0
trend = np.linspace(0, 5, 30)
noise = rng.normal(0, 1.5, 30)
prices = base_price + trend + noise
df_demo = pd.DataFrame({'close': prices}, index=dates)
# 计算物理指标
window_demo = 5
df_with_indicators = compute_kinematics_indicators(df_demo, window=window_demo)
print("===== 价格物理指标计算演示 =====")
print(f"数据周期: {len(df_demo)} 天,速度计算窗口: {window_demo}")
print(f"最后一日收盘价: {df_demo['close'].iloc[-1]:.2f}")
print(f"最后一日价格速度: {df_with_indicators['Velocity'].iloc[-1]:.4f}")
print(f"最后一日价格加速度: {df_with_indicators['Acceleration'].iloc[-1]:.4f}")
print(f"最后一日动力势能: {df_with_indicators['Kinetic_Energy'].iloc[-1]:.4f}")===== 价格物理指标计算演示 =====
数据周期: 30 天,速度计算窗口: 5
最后一日收盘价: 105.65
最后一日价格速度: 0.4302
最后一日价格加速度: 0.0876
最后一日动力势能: 0.0925二、低通滤波与相位延迟(Phase Lag)的权衡
移动平均线本质上是一个 FIR(有限冲激响应)线性低通滤波器。滤波窗口越大,噪声抑制能力越强,但带来的相位滞后(Phase Lag) 也越严重。
量化研发的核心权衡就在于:在平滑度(信噪比)与敏捷度(时滞)之间寻找最优帕累托边界。
import pandas as pd
import numpy as np
def analyze_filter_delay(df: pd.DataFrame, n_fast: int = 10, n_slow: int = 30) -> pd.DataFrame:
"""
分析不同周期均线的相位延迟与平滑效果
"""
res = df.copy()
res['SMA_Fast'] = res['close'].rolling(n_fast).mean()
res['SMA_Slow'] = res['close'].rolling(n_slow).mean()
# 估计滞后导致的偏离距离
res['Lag_Distance'] = res['close'] - res['SMA_Slow']
return res
# 构造合成价格序列(教学样例,历史模式不代表未来)
rng = np.random.default_rng(123)
t = np.arange(50)
base = 50.0
trend = 0.1 * t
cycle = 3.0 * np.sin(2 * np.pi * t / 20)
noise = rng.normal(0, 1.0, 50)
prices = base + trend + cycle + noise
df_demo = pd.DataFrame({'close': prices})
# 分析均线延迟
n_fast_demo = 5
n_slow_demo = 15
df_analysis = analyze_filter_delay(df_demo, n_fast=n_fast_demo, n_slow=n_slow_demo)
print("===== 均线滤波器延迟分析 =====")
print(f"快线周期 SMA({n_fast_demo}),慢线周期 SMA({n_slow_demo})")
print(f"序列末点价格: {df_demo['close'].iloc[-1]:.2f}")
print(f"序列末点慢均线: {df_analysis['SMA_Slow'].iloc[-1]:.2f}")
print(f"序列末点滞后距离: {df_analysis['Lag_Distance'].iloc[-1]:.2f}")
print(f"滞后距离均值: {df_analysis['Lag_Distance'].mean():.2f}")
print(f"滞后距离标准差: {df_analysis['Lag_Distance'].std():.2f}")===== 均线滤波器延迟分析 =====
快线周期 SMA(5),慢线周期 SMA(15)
序列末点价格: 55.11
序列末点慢均线: 55.00
序列末点滞后距离: 0.11
滞后距离均值: 0.97
滞后距离标准差: 2.87📝 动手练一练
编写 Python 仿真程序,测算价格运动过程中的速度、加速度突变点,并验证背离检测算法:
import pandas as pd
import numpy as np
def compute_kinematics_indicators(df: pd.DataFrame, window: int = 14) -> pd.DataFrame:
"""
计算价格速度 (Velocity) 与加速度 (Acceleration)
"""
res = df.copy()
res['Velocity'] = res['close'].diff(window) / float(window)
res['Acceleration'] = res['Velocity'].diff(1)
res['Kinetic_Energy'] = 0.5 * (res['Velocity'] ** 2)
return res
# 构造先加速上升后减速见顶的正弦波价格序列(合成教学样例)
rng = np.random.default_rng(42)
t = np.linspace(0, 4 * np.pi, 120)
prices = 100.0 + 10.0 * np.sin(t) + rng.normal(0, 0.2, 120)
df = pd.DataFrame({'close': prices})
res = compute_kinematics_indicators(df, window=5)
# 检验顶背离:价格创新高但加速度为负
peak_idx = np.argmax(prices[:40])
accel_at_peak = res['Acceleration'].iloc[peak_idx]
print("================ 指标物理意义仿真验证 ================")
print(f"前40期最高价点位: {prices[peak_idx]:.2f} (索引 {peak_idx})")
print(f"见顶时瞬时加速度: {accel_at_peak:.4f}")
if accel_at_peak < 0:
print("✅ 物理加速度预警见顶信号有效(合成样例验证)")
else:
print("⚠️ 加速度未显示见顶信号(本例中未触发)")
print("==================================================")运行结果输出:
================ 指标物理意义仿真验证 ================
前40期最高价点位: 110.05 (索引 14)
见顶时瞬时加速度: -0.0940
✅ 物理加速度预警见顶信号有效(合成样例验证)
==================================================👉 点击查看解析
本练习通过实际计算或代码演示,帮助理解指标取值与对应物理量之间的关系;关键结论是指标的数值大小和变化趋势必须结合其定义与物理背景解释,而不能只看数字本身。
本章小结
- 指标的物理学内核:深刻理解均线(滤波质心)、动量(瞬时速度)与 MACD(动力加速度)的动力学本质。
- 警惕相位滞后代价:所有平滑算法都以时间滞后为代价,参数过大将导致出场信号严重推迟。
- 建立多物理量联立机制:结合位移、速度与加速度三维特征,构建抗噪能力更强的复合量化信号。
📋 行动清单 (Action Checklist)
- 运行本讲动力学测试脚本,绘制价格位移与瞬时加速度的时序曲线图;
- 尝试用卡尔曼滤波(Kalman Filter)对比传统 SMA 的降噪与时滞表现;
- 预习下一节,掌握技术指标在多周期共振中的实战应用技巧。
—— 小象教研组
配套资料 · 直接下载
课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。
- 下载第2章课件:从技术的角度重新认识技术指标PDF · 1.8MB