第 16 章:Rust 指标全景与工程化使用¶
本章目标:让你能够把 AKQuant 的 Rust 指标体系当作“可教学、可迁移、可工程化复用”的指标库来使用。
1. 为什么要学习 Rust 指标体系¶
- 同一套函数签名可切换
backend="python"与backend="rust",便于迁移与性能升级。 - Rust 实现覆盖了完整的趋势、动量、波动率、量能与数学变换指标。
- 对策略开发而言,最关键的是理解三件事:输入结构、输出结构、warmup 行为。
2. 全量覆盖范围(当前 103 个)¶
- Momentum:8 个
- Moving Average & Transforms:59 个
- Trend:20 个
- Volatility:11 个
- Volume:5 个
完整逐项解释请使用课程配套词典页: - Rust 指标全量说明(103 个)
3. 学会“读指标”的统一方法¶
每个指标都用同一模板理解:
- 输入是什么(
close还是high, low, close) - 输出是什么(单序列、双序列还是三序列)
- warmup 需要几根 K 线
- 指标在策略里承担哪一种角色(主信号、过滤器、风控、确认)
4. 五大类指标怎么教、怎么用¶
4.1 趋势类(方向与强度)¶
- 方向判别:
EMA/SMA/TEMA/KAMA/SAR - 强度过滤:
ADX/ADXR/DX - 典型组合:
EMA + ADX + NATR
4.2 动量类(变化速度)¶
- 速度/斜率:
ROC/ROCP/ROCR/ROCR100/MOM - 过热过冷:
RSI/CMO/WILLR - 典型组合:
BBANDS + RSI + MOM
4.3 波动率类(风险尺度)¶
- 范围与波动:
ATR/NATR/TRANGE/STDDEV/VAR - 通道类:
BollingerBands - 价格派生:
MEDPRICE/TYPPRICE/WCLPRICE/AVGPRICE/MIDPRICE
4.4 量价类(成交量确认)¶
- 趋势确认:
OBV/AD - 动量确认:
MFI/ADOSC - K 线力量:
BOP
4.5 数学变换类(特征工程)¶
- 对数/指数:
LN/LOG10/LOG1P/EXP/EXPM1 - 三角与双曲:
SIN/COS/TAN/ASIN/ACOS/ATAN/SINH/COSH/TANH - 代数运算:
ADD/SUB/MULT/DIV/MOD/POW/MAX2/MIN2 - 规整变换:
ABS/SIGN/ROUND/CLIP/CLAMP01/SQ/CUBE/RECIP/INV_SQRT/DEG2RAD
5. 教学中的核心坑位¶
5.1 warmup 区段误用¶
- 窗口不足时指标值无效,必须在教学与作业中强调空值过滤。
5.2 多输出解包顺序错误¶
MACD -> (macd, signal, hist)BollingerBands -> (upper, middle, lower)STOCH -> (slowk, slowd)AROON -> (aroondown, aroonup)
5.3 迁移时直接切 Rust¶
- 正确流程是先
python对齐,再切rust提速。
6. 标准教学脚手架(可直接放实验课)¶
import numpy as np
from akquant import talib as ta
close = np.asarray(df["close"], dtype=float)
high = np.asarray(df["high"], dtype=float)
low = np.asarray(df["low"], dtype=float)
volume = np.asarray(df["volume"], dtype=float)
ema_fast = np.asarray(ta.EMA(close, timeperiod=20, backend="rust"), dtype=float)
ema_slow = np.asarray(ta.EMA(close, timeperiod=60, backend="rust"), dtype=float)
adx = np.asarray(ta.ADX(high, low, close, timeperiod=14, backend="rust"), dtype=float)
natr = np.asarray(ta.NATR(high, low, close, timeperiod=14, backend="rust"), dtype=float)
rsi = np.asarray(ta.RSI(close, timeperiod=14, backend="rust"), dtype=float)
if np.isnan([ema_fast[-1], ema_slow[-1], adx[-1], natr[-1], rsi[-1]]).any():
return
7. 推荐教学路径¶
- 第 1 周:先教
EMA/RSI/ATR的输入输出与 warmup。 - 第 2 周:加入
MACD/BBANDS/STOCH的多输出处理。 - 第 3 周:引入
ADX/NATR/SAR做风险过滤。 - 第 4 周:做一次
python -> rust迁移实验与回归验证。 - 第 5 周:用数学变换类指标做简单特征工程实验。
8. 本章小结¶
- Rust 指标体系已经覆盖策略开发所需的核心技术面能力。
- 真正决定教学效果的不是指标数量,而是“结构化理解 + 可复现实验”。
- 完整指标字典与解释请始终以参考页为准:
- Rust 指标全量说明(103 个)