数学函数
TechKit 提供 26 个数学函数,用于价格变换、算术运算、聚合和三角函数计算。
价格变换
AVGPRICE - 平均价格
计算开盘价、最高价、最低价和收盘价的平均值。
输入:OHLC
回看:0
MEDPRICE - 中位价格
计算最高价和最低价的中位数。
输入:OHLC
回看:0
TYPPRICE - 典型价格
计算典型价格(最高价、最低价和收盘价的平均值)。
输入:OHLC
回看:0
WCLPRICE - 加权收盘价
计算加权收盘价,给予收盘价更大权重。
输入:OHLC
回看:0
算术运算
ADD - 加法
逐元素相加两个输入数组。
输入:两个收盘价数组
回看:0
SUB - 减法
逐元素从第一个输入中减去第二个输入。
输入:两个收盘价数组
回看:0
MULT - 乘法
逐元素相乘两个输入数组。
输入:两个收盘价数组
回看:0
DIV - 除法
逐元素将第一个输入除以第二个输入。
输入:两个收盘价数组
回看:0
注意:如果分母为 0,返回 0
聚合函数
MAX - 最大值
返回指定周期内的最大值。
参数:
period(int, 默认值: 30):周期数
输入:收盘价
回看:period - 1
MIN - 最小值
返回指定周期内的最小值。
参数:
period(int, 默认值: 30):周期数
输入:收盘价
回看:period - 1
SUM - 求和
返回指定周期内值的总和。
参数:
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 - 正弦
计算输入值的正弦值。
输入:收盘价(视为弧度)
回看:0
COS - 余弦
计算输入值的余弦值。
输入:收盘价(视为弧度)
回看:0
TAN - 正切
计算输入值的正切值。
输入:收盘价(视为弧度)
回看:0
ASIN - 反正弦
计算输入值的反正弦(反正弦)。
输入:收盘价(必须在范围 [-1, 1] 内)
输出:弧度
回看:0
ACOS - 反余弦
计算输入值的反余弦(反余弦)。
输入:收盘价(必须在范围 [-1, 1] 内)
输出:弧度
回看:0
ATAN - 反正切
计算输入值的反正切(反正切)。
输入:收盘价
输出:弧度
回看:0
双曲函数
SINH - 双曲正弦
计算输入值的双曲正弦。
输入:收盘价
回看:0
COSH - 双曲余弦
计算输入值的双曲余弦。
输入:收盘价
回看:0
TANH - 双曲正切
计算输入值的双曲正切。
输入:收盘价
输出:范围 [-1, 1]
回看:0
其他数学函数
CEIL - 向上取整
向上舍入到最近的整数。
输入:收盘价
回看:0
FLOOR - 向下取整
向下舍入到最近的整数。
输入:收盘价
回看:0
EXP - 指数
计算 e 的输入次幂。
输入:收盘价
回看:0
LN - 自然对数
计算自然对数(底数为 e)。
输入:收盘价(必须 > 0)
回看:0
LOG10 - 以 10 为底的对数
计算以 10 为底的对数。
输入:收盘价(必须 > 0)
回看:0
SQRT - 平方根
计算输入值的平方根。
输入:收盘价(必须 >= 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
常见用例
价格标准化:使用 AVGPRICE 或 TYPPRICE 进行标准化价格分析
价差分析:使用 SUB 计算两个工具之间的价差
比率分析:使用 DIV 计算价格比率
区间分析:使用 MAX 和 MIN 识别支撑/阻力位
数学变换:使用三角函数进行周期分析
相关指标
MIDPOINT:周期内 (MAX + MIN) / 2
MIDPRICE:周期内 (最高价 + 最低价) / 2
STDDEV:标准差(内部使用方差)
VAR:方差(使用平方和)