重叠研究指标

重叠研究指标是直接叠加在价格图表上的技术指标,提供趋势跟踪和支撑/阻力位信息。


SMA - 简单移动平均线

简单移动平均线计算指定周期内价格的算术平均值,提供价格趋势的平滑表示。

公式

\[SMA = \frac{\sum_{i=0}^{n-1} price_i}{n}\]

其中 \(n\) 为周期。

参数

参数

类型

默认值

范围

描述

period

int

20

1-100000

平均计算的周期数

特性

属性

输入

收盘价

输出

单个值 (SMA)

回看

period - 1

内存

O(period)

API 使用

from techkit import SMA

# Object-oriented API
sma = SMA(period=20)
result = sma.update(close_price)
if result.valid:
    print(f"SMA: {result.value:.2f}")

# TA-Lib compatible API
from techkit import talib_compat as ta
sma_values = ta.SMA(close_prices, timeperiod=20)
const tk = require('techkit');

// Streaming API
const sma = tk.sma(20);
const result = sma.update(closePrice);

// Batch API
const values = tk.SMA(closePrices, 20);
#include <techkit/techkit.hpp>

techkit::SMA sma(20);
auto result = sma.update(closePrice);
#include <techkit/techkit_c.h>

tk_indicator sma = tk_sma_new(20);
tk_result r = tk_update(sma, closePrice);
tk_free(sma);

交易应用

  • 趋势识别: 价格在 SMA 上方 = 上升趋势,下方 = 下降趋势

  • 支撑/阻力: SMA 作为动态支撑/阻力位

  • 交叉信号: 价格穿越 SMA 表示潜在趋势变化

  • 多时间框架: 使用不同周期(50、200)进行多时间框架分析

常用周期值

周期

使用场景

5-10

短期趋势,剥头皮交易

20

标准短期趋势

50

中期趋势

200

长期趋势,主要支撑/阻力


EMA - 指数移动平均线

指数移动平均线对近期价格赋予更大权重,使其对价格变化的响应比 SMA 更快。

公式

\[EMA_t = \alpha \times price_t + (1 - \alpha) \times EMA_{t-1}\]

其中 \(\alpha = \frac{2}{period + 1}\)(平滑因子)。

第一个 EMA 值使用前 period 个值的 SMA 初始化。

参数

参数

类型

默认值

范围

描述

period

int

20

1-100000

平滑计算的周期数

特性

属性

输入

收盘价

输出

单个值 (EMA)

回看

period - 1

内存

O(1)

API 使用

from techkit import EMA

ema = EMA(period=20)
result = ema.update(close_price)
if result.valid:
    print(f"EMA: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
ema_values = ta.EMA(close_prices, timeperiod=20)
const ema = tk.ema(20);
const result = ema.update(closePrice);
techkit::EMA ema(20);
auto result = ema.update(closePrice);
tk_indicator ema = tk_ema_new(20);
tk_result r = tk_update(ema, closePrice);

交易应用

  • 更快响应: EMA 对价格变化的反应比 SMA 更快

  • 趋势跟踪: 使用 EMA 交叉作为入场/出场信号

  • 金叉/死叉: EMA(50) 穿越 EMA(200) 表示主要趋势变化

  • 支撑/阻力: EMA 提供动态支撑/阻力位

常用周期值

周期

使用场景

9-12

短期动量

21-26

中期趋势

50

长期趋势

200

主要趋势过滤器


WMA - 加权移动平均线

加权移动平均线对近期价格赋予线性递增的权重,在 SMA 和 EMA 的响应性之间提供折中。

公式

\[WMA = \frac{\sum_{i=0}^{n-1} (n-i) \times price_i}{\frac{n(n+1)}{2}}\]

其中最近的价格权重为 \(n\),第二近的价格权重为 \(n-1\),以此类推。

参数

参数

类型

默认值

范围

描述

period

int

20

1-100000

平均计算的周期数

特性

属性

输入

收盘价

输出

单个值 (WMA)

回看

period - 1

内存

O(period)

API 使用

from techkit import WMA

wma = WMA(period=20)
result = wma.update(close_price)
if result.valid:
    print(f"WMA: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
wma_values = ta.WMA(close_prices, timeperiod=20)
const wma = tk.wma(20);
const result = wma.update(closePrice);
techkit::WMA wma(20);
auto result = wma.update(closePrice);
tk_indicator wma = tk_wma_new(20);
tk_result r = tk_update(wma, closePrice);

交易应用

  • 平衡平滑: 滞后小于 SMA,稳定性高于 EMA

  • 趋势确认: 与其他指标结合使用进行趋势确认

  • 支撑/阻力: WMA 水平可作为支撑/阻力

常用周期值

周期

使用场景

10-20

短期趋势

30-50

中期趋势


DEMA - 双指数移动平均线

双指数移动平均线通过应用两次 EMA 并从两倍的第一 EMA 中减去第二 EMA 来减少滞后。

公式

\[DEMA = 2 \times EMA(price) - EMA(EMA(price))\]

此公式在保持趋势跟踪特性的同时减少滞后。

参数

参数

类型

默认值

范围

描述

period

int

20

1-100000

两次计算的 EMA 周期

特性

属性

输入

收盘价

输出

单个值 (DEMA)

回看

period - 1

内存

O(1)

API 使用

from techkit import DEMA

dema = DEMA(period=20)
result = dema.update(close_price)
if result.valid:
    print(f"DEMA: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
dema_values = ta.DEMA(close_prices, timeperiod=20)
const dema = tk.dema(20);
const result = dema.update(closePrice);
techkit::DEMA dema(20);
auto result = dema.update(closePrice);
tk_indicator dema = tk_dema_new(20);
tk_result r = tk_update(dema, closePrice);

交易应用

  • 减少滞后: DEMA 对价格变化的响应比 EMA 更快

  • 趋势跟踪: 非常适合早期捕捉趋势变化

  • 交叉信号: DEMA 交叉提供及时的入场/出场信号

常用周期值

周期

使用场景

10-15

短期动量

20-30

中期趋势


TEMA - 三重指数移动平均线

三重指数移动平均线应用三重平滑以进一步减少滞后,同时保持趋势跟踪特性。

公式

\[TEMA = 3 \times EMA_1 - 3 \times EMA_2 + EMA_3\]

其中:

  • \(EMA_1 = EMA(price, period)\)

  • \(EMA_2 = EMA(EMA_1, period)\)

  • \(EMA_3 = EMA(EMA_2, period)\)

参数

参数

类型

默认值

范围

描述

period

int

20

1-100000

所有计算的 EMA 周期

特性

属性

输入

收盘价

输出

单个值 (TEMA)

回看

period - 1

内存

O(1)

API 使用

from techkit import TEMA

tema = TEMA(period=20)
result = tema.update(close_price)
if result.valid:
    print(f"TEMA: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
tema_values = ta.TEMA(close_prices, timeperiod=20)
const tema = tk.tema(20);
const result = tema.update(closePrice);
techkit::TEMA tema(20);
auto result = tema.update(closePrice);
tk_indicator tema = tk_tema_new(20);
tk_result r = tk_update(tema, closePrice);

交易应用

  • 最小滞后: TEMA 在指数移动平均线中滞后最小

  • 趋势跟踪: 非常适合快速变化的市场

  • 敏感: 在震荡市场中更容易出现假信号

常用周期值

周期

使用场景

5-10

极短期动量

15-20

短期趋势


KAMA - 考夫曼自适应移动平均线

考夫曼自适应移动平均线根据市场效率调整其平滑因子,在趋势市场中更敏感,在震荡市场中较不敏感。

公式

\[KAMA_t = KAMA_{t-1} + SC \times (price_t - KAMA_{t-1})\]

其中:

  • \(ER = \frac{|price_t - price_{t-period}|}{\sum_{i=1}^{period} |price_i - price_{i-1}|}\)(效率比率)

  • \(SC = \left[ER \times (fast - slow) + slow\right]^2\)

  • \(fast = \frac{2}{2+1} = 0.6667\)(快速平滑常数)

  • \(slow = \frac{2}{30+1} = 0.0645\)(慢速平滑常数)

参数

参数

类型

默认值

范围

描述

period

int

10

1-100000

效率比率计算的周期

特性

属性

输入

收盘价

输出

单个值 (KAMA)

回看

period - 1

内存

O(period)

API 使用

from techkit import KAMA

kama = KAMA(period=10)
result = kama.update(close_price)
if result.valid:
    print(f"KAMA: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
kama_values = ta.KAMA(close_prices, timeperiod=10)
const kama = tk.kama(10);
const result = kama.update(closePrice);
techkit::KAMA kama(10);
auto result = kama.update(closePrice);
tk_indicator kama = tk_kama_new(10);
tk_result r = tk_update(kama, closePrice);

交易应用

  • 自适应平滑: 自动适应市场条件

  • 趋势跟踪: 在趋势市场中更敏感

  • 噪音减少: 在震荡市场中较不敏感,减少假信号

  • 支撑/阻力: KAMA 水平作为动态支撑/阻力

常用周期值

周期

使用场景

10

标准自适应平滑

20-30

长期自适应趋势


TRIMA - 三角移动平均线

三角移动平均线应用两次 SMA,创建具有三角权重函数的更平滑平均值。

公式

\[TRIMA = SMA(SMA(price, \lceil n/2 \rceil), \lfloor n/2 \rfloor + 1)\]

对于偶数周期:\(TRIMA = SMA(SMA(price, n/2+1), n/2)\) 对于奇数周期:\(TRIMA = SMA(SMA(price, (n+1)/2), (n+1)/2)\)

参数

参数

类型

默认值

范围

描述

period

int

20

1-100000

三角平滑的总周期

特性

属性

输入

收盘价

输出

单个值 (TRIMA)

回看

period - 1

内存

O(period)

API 使用

from techkit import TRIMA

trima = TRIMA(period=20)
result = trima.update(close_price)
if result.valid:
    print(f"TRIMA: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
trima_values = ta.TRIMA(close_prices, timeperiod=20)
const trima = tk.trima(20);
const result = trima.update(closePrice);
techkit::TRIMA trima(20);
auto result = trima.update(closePrice);
tk_indicator trima = tk_trima_new(20);
tk_result r = tk_update(trima, closePrice);

交易应用

  • 平滑趋势: TRIMA 提供非常平滑的趋势线

  • 滞后: 滞后大于 SMA 但输出更平滑

  • 支撑/阻力: 强支撑/阻力位

常用周期值

周期

使用场景

20-30

中期平滑趋势

50

长期平滑趋势


T3 - 三重指数移动平均线(Tilson)

T3 移动平均线使用广义 DEMA(GD)方法应用三次,提供平滑输出并减少滞后。

公式

T3 使用六个 EMA,系数为:

  • \(c_1 = -v^3\)

  • \(c_2 = 3v^2 + 3v^3\)

  • \(c_3 = -6v^2 - 3v - 3v^3\)

  • \(c_4 = 1 + 3v + v^3 + 3v^2\)

其中 \(v\) 为成交量因子(默认 0.7)。

\[T3 = c_1 \times EMA_6 + c_2 \times EMA_5 + c_3 \times EMA_4 + c_4 \times EMA_3\]

参数

参数

类型

默认值

范围

描述

period

int

20

1-100000

T3 计算的 EMA 周期

volume_factor

double

0.7

0.0-1.0

平滑因子(v 因子)

特性

属性

输入

收盘价

输出

单个值 (T3)

回看

6 × (period - 1)

内存

O(1)

API 使用

from techkit import T3

t3 = T3(period=20, volume_factor=0.7)
result = t3.update(close_price)
if result.valid:
    print(f"T3: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
t3_values = ta.T3(close_prices, timeperiod=20, vfactor=0.7)
const t3 = tk.t3(20, 0.7);
const result = t3.update(closePrice);
techkit::T3 t3(20, 0.7);
auto result = t3.update(closePrice);
tk_indicator t3 = tk_t3_new(20, 0.7);
tk_result r = tk_update(t3, closePrice);

交易应用

  • 平滑且低滞后: T3 提供平滑输出且滞后最小

  • 成交量因子: 较低的 v 因子(0.5-0.6)= 更平滑,较高的(0.8-0.9)= 更敏感

  • 趋势跟踪: 非常适合趋势识别

常用参数值

周期

成交量因子

使用场景

10-15

0.7

短期趋势

20-30

0.7

中期趋势

20

0.5

非常平滑的趋势

20

0.9

更敏感的趋势


BBANDS - 布林带

布林带由中间带(SMA)和两个基于标准差的外带组成,提供动态支撑/阻力位和波动率信息。

公式

\[Middle = SMA(close, period)\]
\[Upper = Middle + nbdev_{up} \times \sigma\]
\[Lower = Middle - nbdev_{down} \times \sigma\]

其中 \(\sigma\) 为周期内价格的标准差。

参数

参数

类型

默认值

范围

描述

period

int

20

1-100000

中间带的 SMA 周期

nbdev_up

double

2.0

0.1-10.0

上带的标准差倍数

nbdev_down

double

2.0

0.1-10.0

下带的标准差倍数

matype

int

0

0-8

移动平均类型(0=SMA,1=EMA 等)

特性

属性

输入

收盘价

输出

三个值(上、中、下)

回看

period - 1

内存

O(period)

API 使用

from techkit import BBANDS

bbands = BBANDS(period=20, std_dev_up=2.0, std_dev_down=2.0)
result = bbands.update(close_price)
if result.valid:
    print(f"Upper: {result.upper:.2f}, Middle: {result.middle:.2f}, Lower: {result.lower:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
upper, middle, lower = ta.BBANDS(close_prices, timeperiod=20, nbdevup=2.0, nbdevdn=2.0)
const bbands = tk.bbands(20, 2.0, 2.0);
const result = bbands.update(closePrice);
// result.upper, result.middle, result.lower
techkit::BBANDS bbands(20, 2.0, 2.0);
auto result = bbands.update(closePrice);
tk_indicator bbands = tk_bbands_new(20, 2.0, 2.0);
tk_bbands_result r = tk_bbands_update(bbands, closePrice);
// r.upper, r.middle, r.lower

交易应用

  • 波动率指标: 带宽表示波动率(更宽 = 更波动)

  • 超买/超卖: 价格触及上带 = 超买,下带 = 超卖

  • 挤压: 窄带表示低波动率,通常预示着大幅波动

  • 支撑/阻力: 带作为动态支撑/阻力位

  • 均值回归: 价格倾向于回归中间带

常用参数值

周期

nbdev

使用场景

20

2.0

标准布林带

20

1.5

更紧的带,更多信号

20

2.5

更宽的带,更少信号

10

2.0

短期波动率


SAR - 抛物线止损和反转

抛物线 SAR 提供跟踪止损位和趋势反转信号,随着趋势加速,SAR 点向价格靠近。

公式

对于上升趋势: $\(SAR_t = SAR_{t-1} + AF \times (EP - SAR_{t-1})\)$

其中:

  • \(EP\) = 极值点(上升趋势中的最高价)

  • \(AF\) = 加速因子(从 acceleration 开始,达到新 EP 时增加 acceleration,上限为 maximum

对于下降趋势,公式反转(使用最低价作为 EP)。

参数

参数

类型

默认值

范围

描述

acceleration

double

0.02

0.001-0.1

初始加速因子

maximum

double

0.20

0.01-1.0

最大加速因子

特性

属性

输入

OHLC(最高价、最低价)

输出

单个值(SAR 价格水平)

回看

1

内存

O(1)

API 使用

from techkit import SAR

sar = SAR(acceleration=0.02, maximum=0.20)
result = sar.update_ohlcv(open, high, low, close)
if result.valid:
    print(f"SAR: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
sar_values = ta.SAR(high, low, acceleration=0.02, maximum=0.20)
const sar = tk.sar(0.02, 0.20);
const result = sar.updateOHLCV({open, high, low, close});
techkit::SAR sar(0.02, 0.20);
techkit::OHLCV bar{open, high, low, close, volume};
auto result = sar.update(bar);
tk_indicator sar = tk_sar_new(0.02, 0.20);
tk_ohlcv bar = {open, high, low, close, volume};
tk_result r = tk_update_ohlcv(sar, &bar);

交易应用

  • 跟踪止损: SAR 提供动态跟踪止损位

  • 趋势跟踪: SAR 低于价格 = 上升趋势,高于 = 下降趋势

  • 反转信号: 价格穿越 SAR 表示趋势反转

  • 止损: 使用 SAR 作为止损位

  • 加速: 更高的加速 = 更紧的止损,更多反转

常用参数值

加速

最大

使用场景

0.02

0.20

标准 SAR(最常见)

0.01

0.10

更慢,更宽的止损

0.03

0.30

更快,更紧的止损


MIDPOINT - 周期中点

中点指标计算指定周期内最高价和最低价之间的中点。

公式

\[MIDPOINT = \frac{highest + lowest}{2}\]

其中 highestlowest 为周期内的最高和最低收盘价。

参数

参数

类型

默认值

范围

描述

period

int

14

1-100000

最高/最低计算的周期数

特性

属性

输入

收盘价

输出

单个值(中点)

回看

period - 1

内存

O(period)

API 使用

from techkit import MIDPOINT

midpoint = MIDPOINT(period=14)
result = midpoint.update(close_price)
if result.valid:
    print(f"MidPoint: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
midpoint_values = ta.MIDPOINT(close_prices, timeperiod=14)
const midpoint = tk.midpoint(14);
const result = midpoint.update(closePrice);
techkit::MIDPOINT midpoint(14);
auto result = midpoint.update(closePrice);
tk_indicator midpoint = tk_midpoint_new(14);
tk_result r = tk_update(midpoint, closePrice);

交易应用

  • 支撑/阻力: 中点作为支撑/阻力位

  • 区间交易: 在震荡市场中很有用

  • 价格位置: 比较当前价格与中点以判断在区间中的位置

常用周期值

周期

使用场景

14

标准中点

20-30

长期中点


MIDPRICE - 周期中点价格

中点价格指标计算最高价和最低价之间的中点(使用最高价和最低价,而非收盘价)。

公式

\[MIDPRICE = \frac{highest\_high + lowest\_low}{2}\]

其中 highest_highlowest_low 为周期内的最高最高价和最低最低价。

参数

参数

类型

默认值

范围

描述

period

int

14

1-100000

最高/最低计算的周期数

特性

属性

输入

OHLC(最高价、最低价)

输出

单个值(中点价格)

回看

period - 1

内存

O(period)

API 使用

from techkit import MIDPRICE

midprice = MIDPRICE(period=14)
result = midprice.update_ohlcv(open, high, low, close)
if result.valid:
    print(f"MidPrice: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
midprice_values = ta.MIDPRICE(high, low, timeperiod=14)
const midprice = tk.midprice(14);
const result = midprice.updateOHLCV({open, high, low, close});
techkit::MIDPRICE midprice(14);
techkit::OHLCV bar{open, high, low, close, volume};
auto result = midprice.update(bar);
tk_indicator midprice = tk_midprice_new(14);
tk_ohlcv bar = {open, high, low, close, volume};
tk_result r = tk_update_ohlcv(midprice, &bar);

交易应用

  • 真实区间中点: 使用实际最高/最低区间,比 MidPoint 更准确

  • 支撑/阻力: 中点价格提供支撑/阻力位

  • 区间分析: 比较当前价格与中点价格以判断区间位置

常用周期值

周期

使用场景

14

标准中点价格

20-30

长期中点价格


MA - 移动平均线(通用)

MA 函数是一个通用包装器,支持多种移动平均类型,允许在不同 MA 算法之间轻松切换。

参数

参数

类型

默认值

范围

描述

period

int

20

1-100000

周期数

matype

int

0

0-8

移动平均类型(见下表)

MA 类型值

类型

描述

0

SMA

简单移动平均线

1

EMA

指数移动平均线

2

WMA

加权移动平均线

3

DEMA

双指数移动平均线

4

TEMA

三重指数移动平均线

5

TRIMA

三角移动平均线

6

KAMA

考夫曼自适应移动平均线

7

MAMA

MESA 自适应移动平均线

8

T3

三重指数移动平均线(T3)

特性

属性

输入

收盘价

输出

单个值 (MA)

回看

取决于 matype(通常为 period - 1)

内存

取决于 matype

API 使用

from techkit import MA

# Use SMA (matype=0)
ma = MA(period=20, matype=0)
result = ma.update(close_price)

# Use EMA (matype=1)
ma = MA(period=20, matype=1)
result = ma.update(close_price)

# TA-Lib compatible
from techkit import talib_compat as ta
ma_values = ta.MA(close_prices, timeperiod=20, matype=0)  # SMA
const ma = tk.ma(20, 0);  // period=20, matype=0 (SMA)
const result = ma.update(closePrice);
techkit::MA ma(20, techkit::MA_SMA);
auto result = ma.update(closePrice);
tk_indicator ma = tk_ma_new(20, TK_MA_SMA);
tk_result r = tk_update(ma, closePrice);

交易应用

  • 灵活的 MA 选择: 无需更改代码即可在不同 MA 类型之间切换

  • 策略测试: 测试不同 MA 类型以获得最佳性能

  • 兼容性: 匹配 TA-Lib 的 MA 函数接口


MAVP - 可变周期移动平均线

MAVP 指标计算每个 K 线周期都变化的移动平均线,允许基于市场条件进行自适应平滑。

参数

参数

类型

默认值

范围

描述

min_period

int

2

1-100000

允许的最小周期

max_period

int

30

1-100000

允许的最大周期

matype

int

0

0-8

移动平均类型(见 MA 部分)

特性

属性

输入

收盘价 + 周期值(每个 K 线)

输出

单个值(可变周期 MA)

回看

max_period - 1

内存

O(max_period)

API 使用

from techkit import MAVP

mavp = MAVP(min_period=2, max_period=30, matype=0)
# Each update requires both price and period
result = mavp.update_with_period(close_price, period_value)

# TA-Lib compatible
from techkit import talib_compat as ta
ma_values = ta.MAVP(close_prices, periods_array, minperiod=2, maxperiod=30, matype=0)
const mavp = tk.mavp(2, 30, 0);
const result = mavp.updateWithPeriod(closePrice, periodValue);
techkit::MAVP mavp(2, 30, techkit::MA_SMA);
auto result = mavp.updateWithPeriod(closePrice, periodValue);
tk_indicator mavp = tk_mavp_new(2, 30, TK_MA_SMA);
tk_result r = tk_mavp_update(mavp, closePrice, periodValue);

交易应用

  • 自适应平滑: 周期适应市场波动率

  • 基于波动率: 在波动市场中使用更高周期,在平静市场中使用更低周期

  • 自定义逻辑: 基于指标实现自己的周期选择逻辑

常用参数值

min_period

max_period

matype

使用场景

2

30

0 (SMA)

标准可变 MA

5

50

1 (EMA)

长期可变 MA


MAMA - MESA 自适应移动平均线

MESA 自适应移动平均线使用希尔伯特变换检测周期,并相应地调整平滑因子。

参数

参数

类型

默认值

范围

描述

fastlimit

double

0.5

0.01-0.99

快速平滑的上限

slowlimit

double

0.05

0.01-0.99

慢速平滑的下限

特性

属性

输入

收盘价

输出

两个值(mama, fama)

回看

32(近似)

内存

O(1)

API 使用

from techkit import MAMA

mama = MAMA(fastlimit=0.5, slowlimit=0.05)
result = mama.update(close_price)
if result.valid:
    print(f"MAMA: {result.mama:.2f}, FAMA: {result.fama:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
mama, fama = ta.MAMA(close_prices, fastlimit=0.5, slowlimit=0.05)
const mama = tk.mama(0.5, 0.05);
const result = mama.update(closePrice);
// result.mama, result.fama
techkit::MAMA mama(0.5, 0.05);
auto result = mama.update(closePrice);
tk_indicator mama = tk_mama_new(0.5, 0.05);
tk_mama_result r = tk_mama_update(mama, closePrice);
// r.mama, r.fama

交易应用

  • 基于周期的自适应: 自动适应市场周期

  • MAMA/FAMA 交叉: MAMA 穿越 FAMA 提供入场/出场信号

  • 趋势跟踪: 非常适合趋势跟踪策略

  • 快/慢限制: 调整限制以控制自适应速度

常用参数值

fastlimit

slowlimit

使用场景

0.5

0.05

标准 MAMA(最常见)

0.6

0.04

更快自适应

0.4

0.06

更慢自适应


HT_TRENDLINE - 希尔伯特变换瞬时趋势线

HT_TRENDLINE 使用希尔伯特变换创建适应市场周期的平滑趋势线,提供无滞后的趋势指标。

参数

无需参数。

特性

属性

输入

收盘价

输出

单个值(趋势线)

回看

32(近似)

内存

O(1)

API 使用

from techkit import HT_TRENDLINE

ht_trendline = HT_TRENDLINE()
result = ht_trendline.update(close_price)
if result.valid:
    print(f"HT Trendline: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
trendline_values = ta.HT_TRENDLINE(close_prices)
const ht_trendline = tk.ht_trendline();
const result = ht_trendline.update(closePrice);
techkit::HT_TRENDLINE ht_trendline;
auto result = ht_trendline.update(closePrice);
tk_indicator ht_trendline = tk_ht_trendline_new();
tk_result r = tk_update(ht_trendline, closePrice);

交易应用

  • 无滞后趋势: HT_TRENDLINE 与传统 MA 相比滞后最小

  • 周期自适应: 自动适应市场周期

  • 趋势识别: 价格在趋势线上方 = 上升趋势,下方 = 下降趋势

  • 支撑/阻力: 趋势线作为动态支撑/阻力


SAREXT - 抛物线 SAR 扩展

SAREXT(抛物线 SAR 扩展)提供对 SAR 行为的增强控制,具有针对多头和空头头寸的独立加速因子,以及用于微调的附加参数。

参数

参数

类型

默认值

范围

描述

start_value

double

0.0

任意

初始 SAR 值(0 = 自动检测)

offset_on_reverse

double

0.0

任意

趋势反转时添加/减去的偏移量

accel_init_long

double

0.02

0.001-0.1

多头头寸的初始 AF

accel_long

double

0.02

0.001-0.1

多头头寸的 AF 增量

accel_max_long

double

0.20

0.01-1.0

多头头寸的最大 AF

accel_init_short

double

0.02

0.001-0.1

空头头寸的初始 AF

accel_short

double

0.02

0.001-0.1

空头头寸的 AF 增量

accel_max_short

double

0.20

0.01-1.0

空头头寸的最大 AF

特性

属性

输入

OHLC(最高价、最低价)

输出

单个值(SAR 价格水平)

回看

1

内存

O(1)

API 使用

from techkit import SAREXT

sarext = SAREXT(
    start_value=0.0,
    offset_on_reverse=0.0,
    accel_init_long=0.02,
    accel_long=0.02,
    accel_max_long=0.20,
    accel_init_short=0.02,
    accel_short=0.02,
    accel_max_short=0.20
)
result = sarext.update_ohlcv(open, high, low, close)
if result.valid:
    print(f"SAREXT: {result.value:.2f}")

# TA-Lib compatible
from techkit import talib_compat as ta
sar_values = ta.SAREXT(
    high, low,
    startvalue=0.0, offsetonreverse=0.0,
    accelerationinitlong=0.02, accelerationlong=0.02, accelerationmaxlong=0.20,
    accelerationinitshort=0.02, accelerationshort=0.02, accelerationmaxshort=0.20
)
const sarext = tk.sarext(0.0, 0.0, 0.02, 0.02, 0.20, 0.02, 0.02, 0.20);
const result = sarext.updateOHLCV({open, high, low, close});
techkit::SAREXT sarext(0.0, 0.0, 0.02, 0.02, 0.20, 0.02, 0.02, 0.20);
techkit::OHLCV bar{open, high, low, close, volume};
auto result = sarext.update(bar);
tk_indicator sarext = tk_sarext_new(
    0.0, 0.0, 0.02, 0.02, 0.20, 0.02, 0.02, 0.20
);
tk_ohlcv bar = {open, high, low, close, volume};
tk_result r = tk_update_ohlcv(sarext, &bar);

交易应用

  • 非对称止损: 多头与空头头寸的不同加速

  • 自定义初始化: 为特定入场点设置 start_value

  • 反转偏移: offset_on_reverse 在趋势反转时调整 SAR

  • 高级控制: 为特定交易策略微调 SAR 行为

常用参数值

使用场景

多头 AF

空头 AF

备注

标准

0.02/0.20

0.02/0.20

与常规 SAR 相同

更紧的多头止损

0.03/0.30

0.02/0.20

多头头寸的更快止损

更紧的空头止损

0.02/0.20

0.03/0.30

空头头寸的更快止损


相关指标

  • 价格转换: AVGPRICE, MEDPRICE, TYPPRICE, WCLPRICE

  • 统计: STDDEV, VAR 用于基于波动率的带

  • 周期指标: HT_TRENDLINE 使用希尔伯特变换进行周期检测