# 数学函数 / 统计函数 ## `betaAndAlpha(y, x, beta, alpha)` 声明:function 获取斜率和截距 | 参数 | 类型 | 说明 | | ------- | ----- | ------------------ | | `y` | array | 一维数字数组 | | `x` | array | 一维数字数组 | | `beta` | real | 实数,斜率,返回值 | | `alpha` | real | 实数,截距,返回值 | 返回:void ### 示例 ```tsl betaAndAlpha(array(3, 6), array(4, 12), k, b); return k; // 输出:0.375 ``` ## `correlpaired(a, b)` 声明:function 计算 a 的每一列与 b 的每一列之间的相关系数矩阵 | 参数 | 类型 | 说明 | | ---- | ----- | ------------- | | `a` | array | 一维数字数组, | | `b` | array | 一维数字数组, | 返回:array ### 示例 范例01: ```tsl a := array(1, 2, 3, 4, 5); b := array(2, 4, 6, 8, 10); return correlpaired(a, b); // 输出:array((1.0)) ``` 范例02: ```tsl a := array(1, 2, 3, 4, 5); b := `array( "B1": array(2, 4, 6, 8, 10), "B2": array(10, 8, 6, 4, 2) ); return correlpaired(a, b); // 输出:array((1.0,-1.0)) ``` 范例03: ```tsl a := `array( "A1": array(1, 2, 3, 4, 5), "A2": array(5, 4, 3, 2, 1) ); b := `array( "B1": array(2, 4, 6, 8, 10), "B2": array(10, 8, 6, 4, 2), "B3": array(1, 2, 3, 4, 5), "B4": array(5, 4, 3, 2, 1) ); return correlpaired(a, b); // 输出:array((1.0,-1.0,1.0,-1.0),(-1.0,1.0,-1.0,1.0)) ``` 范例04: ```tsl a := `array("A": array(1, 2, 3, 4, 5)); b := `array( "A": array(2, 4, 6, 8, 10), "B": array(10, 8, 6, 4, 2) ); return correlpaired(a, b); // 输出:array((1.0,-1.0)) ``` ## `correlpaired_side(a, dir_type)` 声明:function 计算 a 的每两列之间符合对应过滤条件的相关系数矩阵, 1) +-相关系数 :将 a <0 的元素替换为0 ,b>0的元素替换为0,计算相关系数 2) 同向相关系数 :将 a 与 b 非同向(乘积<0)的元素替换为0,计算相关系数 场景支持同 correlpaired 内部强制 a 转化为fmarray进行计算 | 参数 | 类型 | 说明 | | ---------- | ----- | ------------------- | | `a` | array | 一维数字数组, | | `dir_type` | any | 用户自定义,方向类型 | 返回:array ## `expdMax(r)` 声明:function 统计数组累计到当前行的最大值序列 | 参数 | 类型 | 说明 | | ---- | ------------- | ------------------------------------------------------------ | | `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 | 返回:array ### 示例 ```tsl r := array(-1, 2, -3, 9); return expdMax(r); // 输出:array(-1,2,2,9) ``` ## `expdMin(r)` 声明:function 统计数组累积到当前行的最小值序列 | 参数 | 类型 | 说明 | | ---- | ------------- | ------------------------------------------------------------ | | `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 | 返回:array ### 示例 ```tsl r := array(-1, 2, -3, 9); return expdMin (r); // 输出:array(-1,-1,-3,-3) ``` ## `expdProduct(r)` 声明:function 返回数组累积到当前行的累乘序列 | 参数 | 类型 | 说明 | | ---- | ------------- | ------------------------------------------------------------ | | `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 | 返回:array ### 示例 ```tsl r := array(-1, 2, -3, 9); return expdProduct (r); // 输出:array(-1,-2,6,54) ``` ## `expdStd(r, ddof)` 声明:function 返回数组累积到当前行的标准差序列 | 参数 | 类型 | 说明 | | ------ | ------------- | ------------------------------------------------------------ | | `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 | | `ddof` | integer | 整型,标准差选项,取值如下 | 返回:array ### 示例 ```tsl r := array(-1, 2, -3, 9); return expdStd (r, 0); // 输出:array(0,1.5,2.05,4.55) ``` ## `expdSum(r)` 声明:function 返回数组累积到当前行的求和序列 | 参数 | 类型 | 说明 | | ---- | ------------- | ------------------------------------------------------------ | | `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 | 返回:array ### 示例 ```tsl r := array(-1, 2, -3, 9); return expdSum (r); // 输出:array(-1,1,-2,7) ``` ## `expdVar(r, ddof)` 声明:function 返回数组累积到当前行的方差序列 | 参数 | 类型 | 说明 | | ------ | ------------- | ------------------------------------------------------------ | | `r` | array of real | 数组,一维或二维(此时按列统计)数字数组,也可以为二维数据表 | | `ddof` | integer | 整型,方差选项,取值如下 | 返回:array ### 示例 ```tsl r := array(-1, 2, -3, 9); return expdVar (r, 0); // 输出:array(0,2.25,4.22,20.69) ``` ## `kurt(t, real)` 声明:function 峰度 | 参数 | 类型 | 说明 | | ------ | ----- | ---------------------- | | `t` | array | 一维数字数组,一维数据 | | `real` | | 实数,返回的峰度 | 返回:any ### 示例 ```tsl kurt(array(1, 2, 3, 4, 5), s); return s; // 输出:-1.2 ``` ## `meanAndPopnStdDevWithRate(data, rate, mean, stddev)` 声明:function 带权重总体标准差以及平均值 | 参数 | 类型 | 说明 | | -------- | ----- | -------------------- | | `data` | array | 一维数字数组 | | `rate` | array | 一维数字数组 | | `mean` | real | 实数,均值,返回值 | | `stddev` | real | 实数,标准差,返回值 | 返回:real ### 示例 ```tsl meanAndPopnStdDevWithRate(array(1, 2, 3), array(1, 1, 1), m, s); return m; // 输出:2 ``` ## `nanMean(a)` 声明:function 计算含Nan一维数组的算术平均值 | 参数 | 类型 | 说明 | | ---- | ----- | ------------ | | `a` | array | 一维数字数组 | 返回:real ### 示例 ```tsl a := array(5, 6, 8, nan); return nanMean(a); // 输出:6.33 ``` ## `nanPercentRankArr(a, f_name)` 声明:function 1、返回一维数组中的每个值在一维数组中的百分比排名 | 参数 | 类型 | 说明 | | -------- | ------ | ------------------------ | | `a` | array | 数字数组,待计算的数组 | | `f_name` | string | 字符串,字段名,默认为空 | 返回:array ### 示例 ```tsl a := array(1, 1, 2, 2, 2, 9, nan, 9, 9); return nanPercentRankArr(a); // 输出:array(0.0,0.0,0.29,0.29,0.29,0.71,NAN,0.71,0.71) ``` ## `nanPopnStd(a)` 声明:function 计算含Nan一维数组的总体标准差 | 参数 | 类型 | 说明 | | ---- | ----- | ------------ | | `a` | array | 一维数字数组 | 返回:real ### 示例 ```tsl a := array(5, 6, 8, nan); return nanPopnStd(a); // 输出:1.25 ``` ## `nanPopnVariance(a)` 声明:function 计算含Nan一维数组的总体方差 | 参数 | 类型 | 说明 | | ---- | ----- | ------------ | | `a` | array | 一维数字数组 | 返回:real ### 示例 ```tsl a := array(5, 6, 8, nan); return nanPopnVariance(a); // 输出:1.56 ``` ## `nanRankArr(a, f_name, sortorder)` 声明:function 1、返回一维数组中的每个值在一维数组中的排位 | 参数 | 类型 | 说明 | | ----------- | ------ | ------------------------ | | `a` | array | 数字数组,待计算的数组 | | `f_name` | string | 字符串,字段名,默认为空 | | `sortorder` | bool | 排序方向,默认为1 | 返回:array ### 示例 ```tsl a := array(1, 1, 2, 2, 2, 9, nan, 9, 9); return nanRankArr(a); // 输出:array(1,1,3,3,3,6,NAN,6,6) ``` ## `nanStd(a)` 声明:function 计算含Nan一维数组的标准差的估计(样本标准差) | 参数 | 类型 | 说明 | | ---- | ----- | ------------ | | `a` | array | 一维数字数组 | 返回:real ### 示例 ```tsl a := array(5, 6, 8, nan); return nanStd(a); // 输出:1.53 ``` ## `nanSum(a)` 声明:function 计算含Nan一维数组的总和 | 参数 | 类型 | 说明 | | ---- | ----- | ------------ | | `a` | array | 一维数字数组 | 返回:real ### 示例 ```tsl a := array(5, 6, 8, nan); return nanSum(a); // 输出:19 ``` ## `nanVariance(a)` 声明:function 计算含Nan一维数组的方差的估计(样本方差) | 参数 | 类型 | 说明 | | ---- | ----- | ------------ | | `a` | array | 一维数字数组 | 返回:real ### 示例 ```tsl a := array(5, 6, 8, nan); return nanVariance(a); // 输出:2.33 ``` ## `regressionChannel(y, x, nowy, nowx, beta, alpha, top_alpha, bottom_alpha, top, bottom, pos, expectvalue)` 声明:function 回归通道模型 | 参数 | 类型 | 说明 | | -------------- | ----- | ----------------------- | | `y` | array | 一维数字数组,Y坐标数组 | | `x` | array | 一维数字数组,X坐标数组 | | `nowy` | real | 实数 | | `nowx` | real | 实数 | | `beta` | real | 实数 | | `alpha` | real | 实数 | | `top_alpha` | real | 实数 | | `bottom_alpha` | real | 实数 | | `top` | real | 实数 | | `bottom` | real | 实数 | | `pos` | real | 实数 | | `expectvalue` | real | 实数,预期值(回归值) | 返回:real ### 示例 ```tsl regressionChannel(array(1, 2, 3, 4, 5), array(6, 7, 8, 9, 10), 1, 2, 3, 4, 5, 6, 7, 8, s, a); return a; // 输出:-3 ``` ## `selfStdDev(t, rmar)` 声明:function 下方标准差 | 参数 | 类型 | 说明 | | ------ | ----- | ---------------------------------- | | `t` | array | 数据表类型,一维数据 | | `rmar` | real | 实数,最低可接受的收益率(已折算过) | 返回:real ### 示例 ```tsl return selfStdDev(array(1, 2, 3, 4, 5), 3); // 输出:0.89 ``` ## `skew(t, skew)` 声明:function 偏斜度 | 参数 | 类型 | 说明 | | ------ | ----- | ---------------------- | | `t` | array | 一维数字数组,一维数据 | | `skew` | real | 实数,返回的偏斜度 | 返回:any ### 示例 ```tsl skew(array(1, 2, 3, 4, 5, 7), s); return s; // 输出:0.46 ``` ## `variationCoefficient(x)` 声明:function 变异系数 | 参数 | 类型 | 说明 | | ---- | ----- | ------------ | | `x` | array | 一维数字数组 | 返回:real ### 示例 ```tsl return variationCoefficient(array(1, 2, 1, 2, 1, 2)); // 输出:0.33 ```