数学函数

TechKit 提供 26 个数学函数,用于价格变换、算术运算、聚合和三角函数计算。


价格变换

AVGPRICE - 平均价格

计算开盘价、最高价、最低价和收盘价的平均值。

\[AVGPRICE = \frac{open + high + low + close}{4}\]

输入:OHLC
回看:0


MEDPRICE - 中位价格

计算最高价和最低价的中位数。

\[MEDPRICE = \frac{high + low}{2}\]

输入:OHLC
回看:0


TYPPRICE - 典型价格

计算典型价格(最高价、最低价和收盘价的平均值)。

\[TYPPRICE = \frac{high + low + close}{3}\]

输入:OHLC
回看:0


WCLPRICE - 加权收盘价

计算加权收盘价,给予收盘价更大权重。

\[WCLPRICE = \frac{high + low + 2 \times close}{4}\]

输入:OHLC
回看:0


算术运算

ADD - 加法

逐元素相加两个输入数组。

\[ADD = value_1 + value_2\]

输入:两个收盘价数组
回看:0


SUB - 减法

逐元素从第一个输入中减去第二个输入。

\[SUB = value_1 - value_2\]

输入:两个收盘价数组
回看:0


MULT - 乘法

逐元素相乘两个输入数组。

\[MULT = value_1 \times value_2\]

输入:两个收盘价数组
回看:0


DIV - 除法

逐元素将第一个输入除以第二个输入。

\[DIV = \frac{value_1}{value_2}\]

输入:两个收盘价数组
回看:0
注意:如果分母为 0,返回 0


聚合函数

MAX - 最大值

返回指定周期内的最大值。

\[MAX = \max(value[0..period-1])\]

参数

  • period (int, 默认值: 30):周期数

输入:收盘价
回看:period - 1


MIN - 最小值

返回指定周期内的最小值。

\[MIN = \min(value[0..period-1])\]

参数

  • period (int, 默认值: 30):周期数

输入:收盘价
回看:period - 1


SUM - 求和

返回指定周期内值的总和。

\[SUM = \sum_{i=0}^{period-1} value[i]\]

参数

  • period (int, 默认值: 30):周期数

输入:收盘价
回看:period - 1


MAXINDEX - 最大值索引

返回周期内最大值的索引(多少根柱之前)。

参数

  • period (int, 默认值: 30):周期数

输入:收盘价
回看:period - 1
输出:索引(0 = 当前柱,1 = 1 根柱之前,依此类推)


MININDEX - 最小值索引

返回周期内最小值的索引(多少根柱之前)。

参数

  • period (int, 默认值: 30):周期数

输入:收盘价
回看:period - 1
输出:索引(0 = 当前柱,1 = 1 根柱之前,依此类推)


MINMAX - 最小值和最大值

返回周期内的最小值和最大值。

参数

  • period (int, 默认值: 30):周期数

输入:收盘价
输出:两个值(最小值,最大值)
回看:period - 1

API 用法

from techkit import MINMAX

minmax = MINMAX(period=30)
result = minmax.update(price)
if result.valid:
    print(f"Min: {result.min}, Max: {result.max}")

MINMAXINDEX - 最小值和最大值索引

返回周期内最小值和最大值的索引。

参数

  • period (int, 默认值: 30):周期数

输入:收盘价
输出:两个值(最小值索引,最大值索引)
回看:period - 1


三角函数

SIN - 正弦

计算输入值的正弦值。

\[SIN = \sin(value)\]

输入:收盘价(视为弧度)
回看:0


COS - 余弦

计算输入值的余弦值。

\[COS = \cos(value)\]

输入:收盘价(视为弧度)
回看:0


TAN - 正切

计算输入值的正切值。

\[TAN = \tan(value)\]

输入:收盘价(视为弧度)
回看:0


ASIN - 反正弦

计算输入值的反正弦(反正弦)。

\[ASIN = \arcsin(value)\]

输入:收盘价(必须在范围 [-1, 1] 内)
输出:弧度
回看:0


ACOS - 反余弦

计算输入值的反余弦(反余弦)。

\[ACOS = \arccos(value)\]

输入:收盘价(必须在范围 [-1, 1] 内)
输出:弧度
回看:0


ATAN - 反正切

计算输入值的反正切(反正切)。

\[ATAN = \arctan(value)\]

输入:收盘价
输出:弧度
回看:0


双曲函数

SINH - 双曲正弦

计算输入值的双曲正弦。

\[SINH = \sinh(value) = \frac{e^{value} - e^{-value}}{2}\]

输入:收盘价
回看:0


COSH - 双曲余弦

计算输入值的双曲余弦。

\[COSH = \cosh(value) = \frac{e^{value} + e^{-value}}{2}\]

输入:收盘价
回看:0


TANH - 双曲正切

计算输入值的双曲正切。

\[TANH = \tanh(value) = \frac{\sinh(value)}{\cosh(value)}\]

输入:收盘价
输出:范围 [-1, 1]
回看:0


其他数学函数

CEIL - 向上取整

向上舍入到最近的整数。

\[CEIL = \lceil value \rceil\]

输入:收盘价
回看:0


FLOOR - 向下取整

向下舍入到最近的整数。

\[FLOOR = \lfloor value \rfloor\]

输入:收盘价
回看:0


EXP - 指数

计算 e 的输入次幂。

\[EXP = e^{value}\]

输入:收盘价
回看:0


LN - 自然对数

计算自然对数(底数为 e)。

\[LN = \ln(value)\]

输入:收盘价(必须 > 0)
回看:0


LOG10 - 以 10 为底的对数

计算以 10 为底的对数。

\[LOG10 = \log_{10}(value)\]

输入:收盘价(必须 > 0)
回看:0


SQRT - 平方根

计算输入值的平方根。

\[SQRT = \sqrt{value}\]

输入:收盘价(必须 >= 0)
回看:0


使用示例

价格变换

from techkit import AVGPRICE, TYPPRICE

# Calculate average price
avg = AVGPRICE()
result = avg.update_ohlcv(open, high, low, close)

# Calculate typical price
typ = TYPPRICE()
result = typ.update_ohlcv(open, high, low, close)

算术运算

from techkit import ADD, SUB, MULT, DIV

# Add two price series
add = ADD()
result = add.update(value1, value2)

# Subtract
sub = SUB()
result = sub.update(value1, value2)

聚合

from techkit import MAX, MIN, SUM

# Maximum over 20 periods
max_ind = MAX(period=20)
result = max_ind.update(price)

# Minimum
min_ind = MIN(period=20)
result = min_ind.update(price)

# Sum
sum_ind = SUM(period=20)
result = sum_ind.update(price)

三角函数

from techkit import SIN, COS, ATAN

# Sine (input in radians)
sin = SIN()
result = sin.update(angle_in_radians)

# Arc tangent (output in radians)
atan = ATAN()
result = atan.update(price)
angle_degrees = result.value * 180 / 3.14159

常见用例

  1. 价格标准化:使用 AVGPRICE 或 TYPPRICE 进行标准化价格分析

  2. 价差分析:使用 SUB 计算两个工具之间的价差

  3. 比率分析:使用 DIV 计算价格比率

  4. 区间分析:使用 MAX 和 MIN 识别支撑/阻力位

  5. 数学变换:使用三角函数进行周期分析


相关指标

  • MIDPOINT:周期内 (MAX + MIN) / 2

  • MIDPRICE:周期内 (最高价 + 最低价) / 2

  • STDDEV:标准差(内部使用方差)

  • VAR:方差(使用平方和)