统计函数

用于分析价格分布、相关性和趋势的统计和基于回归的指标。


STDDEV - 标准差

标准差衡量价格在指定周期内围绕其均值的离散程度。

公式

\[\mu = \frac{1}{n}\sum_{i=0}^{n-1} price_i\]
\[\sigma = nbdev \times \sqrt{\frac{1}{n}\sum_{i=0}^{n-1}(price_i - \mu)^2}\]

其中 \(nbdev\) 是标准差倍数(默认值:1.0)。

参数

参数

类型

默认值

范围

描述

period

int

5

1-100000

周期数

nbdev

double

1.0

> 0

标准差倍数

特性

属性

输入

收盘价

输出

单个值(标准差)

回看

period - 1

内存

O(period)

API 用法

from techkit import STDDEV

stddev = STDDEV(period=20, nbdev=1.0)
result = stddev.update(close_price)
if result.valid:
    print(f"Std Dev: {result.value:.2f}")
const stddev = tk.stddev(20, 1.0);
const result = stddev.update(close);
techkit::STDDEV stddev(20, 1.0);
auto result = stddev.update(close);
tk_indicator stddev = tk_stddev_new(20, 1.0);
tk_result r = tk_update(stddev, close);

交易用法

  • 波动率衡量:标准差越高 = 波动率越高

  • 布林带:用于 BBANDS 计算(标准差 × 倍数)

  • 风险评估:标准差越高 = 风险越高

  • 均值回归:价格远离均值(多个标准差)可能回归


VAR - 方差

方差是标准差的平方,衡量价格的离散程度。

公式

\[\mu = \frac{1}{n}\sum_{i=0}^{n-1} price_i\]
\[VAR = \frac{1}{n}\sum_{i=0}^{n-1}(price_i - \mu)^2\]

注意:使用总体方差(除以 n,而非 n-1)。

参数

参数

类型

默认值

范围

描述

period

int

5

1-100000

周期数

特性

属性

输入

收盘价

输出

单个值(方差)

回看

period - 1

内存

O(period)

API 用法

from techkit import VAR

var = VAR(period=20)
result = var.update(close_price)
if result.valid:
    print(f"Variance: {result.value:.4f}")
    # Standard deviation = sqrt(variance)
    stddev = result.value ** 0.5

交易用法

  • 波动率代理:方差是波动率的衡量指标

  • 风险模型:用于投资组合风险计算

  • 关系:STDDEV = sqrt(VAR)


线性回归函数

线性回归使用最小二乘法在周期内对价格数据拟合一条直线。

通用公式

对于线性回归线 \(y = a + bx\)

  • \(a\) = 截距(LINEARREG_INTERCEPT)

  • \(b\) = 斜率(LINEARREG_SLOPE)

  • 末端 \(y\) = 预测值(LINEARREG)

  • 角度 = atan(b) × 180/π(LINEARREG_ANGLE)


LINEARREG - 线性回归

返回回归周期末端的预测值。

公式

\[LINEARREG = a + b \times (period - 1)\]

其中 \(a\)\(b\) 通过最小二乘回归计算得出。

参数

参数

类型

默认值

范围

描述

period

int

14

2-100000

周期数

特性

属性

输入

收盘价

输出

单个值(预测价格)

回看

period - 1

内存

O(period)

API 用法

from techkit import LINEARREG

linearreg = LINEARREG(period=14)
result = linearreg.update(close_price)
if result.valid:
    print(f"Predicted value: {result.value:.2f}")

交易用法

  • 趋势投影:向前投影趋势

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

  • 入场信号:价格穿越回归线 = 趋势变化


LINEARREG_SLOPE - 线性回归斜率

返回回归线的斜率系数(b),表示趋势方向和强度。

公式

\[b = \frac{n\sum xy - \sum x \sum y}{n\sum x^2 - (\sum x)^2}\]

其中 \(x\) = 柱索引(0 到 period-1),\(y\) = 价格。

参数

参数

类型

默认值

范围

描述

period

int

14

2-100000

周期数

特性

属性

输入

收盘价

输出

单个值(每柱斜率)

回看

period - 1

内存

O(period)

API 用法

from techkit import LINEARREG_SLOPE

slope = LINEARREG_SLOPE(period=14)
result = slope.update(close_price)
if result.valid:
    if result.value > 0:
        print("Uptrend")
    elif result.value < 0:
        print("Downtrend")
    else:
        print("Sideways")

交易用法

  • 趋势方向

    • 正斜率 = 上升趋势

    • 负斜率 = 下降趋势

    • 接近零 = 横盘

  • 趋势强度:绝对值越大 = 趋势越强

  • 入场信号:斜率穿越零 = 趋势反转


LINEARREG_INTERCEPT - 线性回归截距

返回回归线的截距系数(a)。

公式

\[a = \bar{y} - b \times \bar{x}\]

其中 \(\bar{x}\)\(\bar{y}\) 是均值。

参数

参数

类型

默认值

范围

描述

period

int

14

2-100000

周期数

特性

属性

输入

收盘价

输出

单个值(截距)

回看

period - 1

内存

O(period)

API 用法

from techkit import LINEARREG_INTERCEPT

intercept = LINEARREG_INTERCEPT(period=14)
result = intercept.update(close_price)
if result.valid:
    print(f"Intercept: {result.value:.2f}")

交易用法

  • 基准水平:回归线的起点

  • 组合使用:与斜率一起使用以重建完整回归线

  • 分析:截距 + 斜率 × 索引 = 预测值


LINEARREG_ANGLE - 线性回归角度

返回回归线的角度(度),提供趋势陡峭度的直观衡量。

公式

\[\text{angle} = \arctan(b) \times \frac{180}{\pi}\]

其中 \(b\) 是斜率。

参数

参数

类型

默认值

范围

描述

period

int

14

2-100000

周期数

特性

属性

输入

收盘价

输出

单个值(角度,-90 到 +90 度)

回看

period - 1

内存

O(period)

API 用法

from techkit import LINEARREG_ANGLE

angle = LINEARREG_ANGLE(period=14)
result = angle.update(close_price)
if result.valid:
    if result.value > 45:
        print("Very steep uptrend")
    elif result.value > 0:
        print("Moderate uptrend")
    elif result.value < -45:
        print("Very steep downtrend")
    elif result.value < 0:
        print("Moderate downtrend")

交易用法

  • 趋势陡峭度

    • 45°:非常陡峭的上升趋势

    • 0-45°:中等上升趋势

    • -45° 到 0°:中等下降趋势

    • < -45°:非常陡峭的下降趋势

  • 入场时机:角度越陡 = 趋势越强

  • 可视化:比原始斜率更容易理解


TSF - 时间序列预测

时间序列预测将线性回归向前外推一个周期,提供预测价格。

公式

\[TSF = LINEARREG + LINEARREG\_SLOPE\]

本质上:\(TSF = a + b \times period\)(比 LINEARREG 提前一步)。

参数

参数

类型

默认值

范围

描述

period

int

14

2-100000

周期数

特性

属性

输入

收盘价

输出

单个值(预测价格)

回看

period - 1

内存

O(period)

API 用法

from techkit import TSF

tsf = TSF(period=14)
result = tsf.update(close_price)
if result.valid:
    print(f"Forecast: {result.value:.2f}")
    # Compare with actual
    if close_price > result.value:
        print("Price above forecast (stronger than expected)")

交易用法

  • 价格预测:预测下一周期的价格

  • 预期 vs 现实:比较预测与实际价格

  • 入场信号:价格穿越预测 = 动量变化

  • 趋势延续:预测高于价格 = 预期上升趋势


BETA - 贝塔系数

贝塔系数衡量一个资产收益对另一个资产收益(通常是基准)的敏感性。

公式

\[\beta = \frac{\text{Cov}(X, Y)}{\text{Var}(Y)} = \frac{\sum(x_i - \bar{x})(y_i - \bar{y})}{\sum(y_i - \bar{y})^2}\]

其中:

  • \(X\) = 资产收益

  • \(Y\) = 基准收益

参数

参数

类型

默认值

范围

描述

period

int

5

2-100000

周期数

特性

属性

输入

两个收盘价数组(资产、基准)

输出

单个值(贝塔系数)

回看

period - 1

内存

O(period)

API 用法

from techkit import BETA

beta = BETA(period=20)
result = beta.update(asset_price, benchmark_price)
if result.valid:
    beta_value = result.value
    if beta_value > 1:
        print(f"Asset is {beta_value:.2f}x more volatile than benchmark")
    elif beta_value < 1:
        print(f"Asset is {beta_value:.2f}x less volatile than benchmark")
    else:
        print("Asset moves with benchmark")

交易用法

  • 风险评估

    • β > 1:比基准波动更大

    • β = 1:与基准同步移动

    • β < 1:比基准波动更小

    • β < 0:与基准反向移动(罕见)

  • 投资组合分析:衡量系统性风险

  • 对冲:使用贝塔计算对冲比率


CORREL - 皮尔逊相关性

皮尔逊相关性衡量两个价格序列之间的线性关系,范围从 -1 到 +1。

公式

\[r = \frac{\text{Cov}(X, Y)}{\sigma_X \times \sigma_Y} = \frac{\sum(x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum(x_i - \bar{x})^2 \sum(y_i - \bar{y})^2}}\]

参数

参数

类型

默认值

范围

描述

period

int

30

2-100000

周期数

特性

属性

输入

两个收盘价数组

输出

单个值(相关性,-1 到 +1)

回看

period - 1

内存

O(period)

API 用法

from techkit import CORREL

correl = CORREL(period=30)
result = correl.update(price1, price2)
if result.valid:
    r = result.value
    if r > 0.7:
        print("Strong positive correlation")
    elif r > 0.3:
        print("Moderate positive correlation")
    elif r > -0.3:
        print("Weak correlation")
    elif r > -0.7:
        print("Moderate negative correlation")
    else:
        print("Strong negative correlation")

交易用法

  • 相关性强度

    • |r| > 0.7:强相关

    • 0.3 < |r| < 0.7:中等相关

    • |r| < 0.3:弱相关

  • 方向

    • r > 0:正相关(同向移动)

    • r < 0:负相关(反向移动)

  • 配对交易:寻找高度相关的配对

  • 分散化:低相关性 = 更好的分散化


统计函数总结

函数

用途

输出范围

STDDEV

价格离散度

0 到 +∞

VAR

价格离散度的平方

0 到 +∞

LINEARREG

趋势投影

价格单位

LINEARREG_SLOPE

趋势方向/强度

-∞ 到 +∞

LINEARREG_INTERCEPT

回归基准水平

价格单位

LINEARREG_ANGLE

趋势角度

-90° 到 +90°

TSF

价格预测

价格单位

BETA

相对波动率

-∞ 到 +∞

CORREL

价格关系

-1 到 +1


相关指标

  • BBANDS:使用 STDDEV 进行带计算

  • ATR:替代波动率衡量指标

  • MAMA:使用回归概念的自适应移动平均