✨ feat(tsl-api-reference): add class and framework API lookup
This commit is contained in:
+250
@@ -37,3 +37,253 @@ return ret;
|
||||
// ("b","c"),
|
||||
// ("c"))
|
||||
```
|
||||
|
||||
## `betainc(x, a, b, tail)`
|
||||
|
||||
声明:function
|
||||
|
||||
不完全贝塔函数
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ------ | ------ | ------------------------------------- |
|
||||
| `x` | array | (一维数字数组,实数) 变量 要求0<=x<=1; |
|
||||
| `a` | float | float 不完全贝塔函数的参数 要求a>=0; |
|
||||
| `b` | float | float 不完全贝塔函数的参数 要求b>=0; |
|
||||
| `tail` | string | 返回类型 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
a := 3;
|
||||
b := 4;
|
||||
tail := 'upper';
|
||||
x := rand(10);
|
||||
return array(betainc(x, a, b), betainc(x, a, b, tail));
|
||||
```
|
||||
|
||||
## `maxDrawDown(data, updn, interval, ifabs)`
|
||||
|
||||
声明:function
|
||||
|
||||
最大回撤
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ---------- | ------- | ----------------------------------------------- |
|
||||
| `data` | array | 一维数字序列 |
|
||||
| `updn` | bool | 涨跌标示符。1为求最大涨,0为求最大跌(默认值) |
|
||||
| `interval` | integer | 最大区间,为空或者小于1时,求整个区间(默认值) |
|
||||
| `ifabs` | float | 预留字段,暂时没有实际意义,可不给值 。 |
|
||||
|
||||
返回:real/table
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:
|
||||
|
||||
```tsl
|
||||
// 计算一组序列的最大涨幅
|
||||
data := array(3, 1, 7, 5, 6, 3);
|
||||
return maxDrawDown(data, 1);
|
||||
// 输出:
|
||||
// 1
|
||||
// 2
|
||||
// 6
|
||||
// 6
|
||||
// 入点为 data[1],出点为 data[2],两者差为 6,最大涨幅比例差为 6
|
||||
```
|
||||
|
||||
范例02:
|
||||
|
||||
```tsl
|
||||
// ------计算100日股票的最大跌幅
|
||||
setSysParam(pn_stock(), 'SZ000002');
|
||||
setSysParam(pn_date(), 20181031T);
|
||||
setSysParam(pn_rate(), 1);
|
||||
setSysParam(pn_rateday(), 20181031T);
|
||||
setSysParam(pn_cycle(), cy_day());
|
||||
data := nDay3(100, close());
|
||||
t := maxDrawDown(data);
|
||||
return t;
|
||||
// 输出:
|
||||
// 12
|
||||
// 43
|
||||
// 6.96759
|
||||
// 0.25765
|
||||
// 注:若需计算最大跌幅率,则只需t[3] * 100即可。
|
||||
```
|
||||
|
||||
## `minRecoveryTime(r, n1, n2)`
|
||||
|
||||
声明:function
|
||||
|
||||
最小恢复时间
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ---- | ------- | -------------------- |
|
||||
| `r` | array | (一维数字数组) 序列, |
|
||||
| `n1` | integer | Int 买入点位置, |
|
||||
| `n2` | integer | Int 卖出点位置 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 科大讯飞(SZ002230)在20201220最近十个交易日序列中第一天购买第二天卖出后的最小恢复时间
|
||||
setSysParam(pn_stock(), "SZ002230");
|
||||
setSysParam(PN_Date(), 20201220t);
|
||||
r := nDay(10, "close", close())[:, "close"];
|
||||
return minRecoveryTime(r, 0, 1);
|
||||
// 输出:6
|
||||
```
|
||||
|
||||
## `nchoosek(n, k)`
|
||||
|
||||
声明:function
|
||||
|
||||
样本组合
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ---- | ------- | ------------------ |
|
||||
| `n` | array | 样本(一维数组) |
|
||||
| `k` | integer | 每组样本数量(整数) |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:从四个样本中选取两个进行组合
|
||||
|
||||
```tsl
|
||||
return nchoosek(array('a', 'b', 'c', 'd'), 2);
|
||||
// 输出:
|
||||
// array(
|
||||
// ("d", "c"),
|
||||
// ("d", "b"),
|
||||
// ("d", "a"),
|
||||
// ("c", "b"),
|
||||
// ("c", "a"),
|
||||
// ("b", "a"))
|
||||
```
|
||||
|
||||
## `percentage(y, per, style)`
|
||||
|
||||
声明:function
|
||||
|
||||
百分位去极值
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ------- | ----------- | ------------------------------------------------------------------------------------------- |
|
||||
| `y` | array | 数字数组,待处理数据 |
|
||||
| `per` | real\|array | 实数或者一维数字数组,去极值百分位;5表示 5%; |
|
||||
| `style` | integer | 整数,0 或者不输入时 去 百分位大于 per 和小于per的;1, 去除小于per的;2 去除 大于per的 数据 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
y := rand(100, 2);
|
||||
per := 20;
|
||||
style := 0;
|
||||
return percentage(y, per, style);
|
||||
```
|
||||
|
||||
## `percentileOfScore(data, score, _type)`
|
||||
|
||||
声明:function
|
||||
|
||||
百分位占比(%)
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ------- | ------- | ---------------- |
|
||||
| `data` | array | 数组 待处理数据, |
|
||||
| `score` | float | float 待排序值, |
|
||||
| `_type` | integer | 算法 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 去除随机数组的极值
|
||||
data := array(1, 2, 2, 4);
|
||||
ret := array();
|
||||
n := 0;
|
||||
for i := 0 to 5 do
|
||||
begin
|
||||
ret[n, 'score'] := i;
|
||||
for j, kind in array('rank', 'strict', 'weak', 'mean')do
|
||||
begin
|
||||
ret[n, kind] := percentileOfScore(data, i, j);
|
||||
end
|
||||
ret[n, 'percenrank'] := percentrank(data, i);
|
||||
n++;
|
||||
end;
|
||||
return ret;
|
||||
```
|
||||
|
||||
## `perms(x)`
|
||||
|
||||
声明:function
|
||||
|
||||
样本排列
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ---- | ----- | ---------------- |
|
||||
| `x` | array | 样本,数组或数字 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:求10的阶乘
|
||||
|
||||
```tsl
|
||||
return perms(10);
|
||||
// 输出:3628800
|
||||
```
|
||||
|
||||
范例02:排列组合
|
||||
|
||||
```tsl
|
||||
return perms(array("a", "b", "c"));
|
||||
// 输出:
|
||||
// array(
|
||||
// ("c", "b", "a"),
|
||||
// ("c", "a", "b"),
|
||||
// ("b", "c", "a"),
|
||||
// ("b", "a", "c"),
|
||||
// ("a", "b", "c"),
|
||||
// ("a", "c", "b"))
|
||||
```
|
||||
|
||||
范例03:返回数组Array(('A','B'),('C', 'D'))中任意两个数据的排列组合
|
||||
|
||||
```tsl
|
||||
v := Array(('A', 'B'), ('C', 'D'));
|
||||
return perms(v, 2);
|
||||
```
|
||||
|
||||
范例04:对排列组合的每列求和
|
||||
|
||||
```tsl
|
||||
func := new funcExe();
|
||||
a := array("A", "B", "C");
|
||||
return perms(a, 3, func);
|
||||
|
||||
type funcExe = class
|
||||
public
|
||||
Data;
|
||||
function create();
|
||||
begin
|
||||
Data := "";
|
||||
end;
|
||||
function Exe(dat);
|
||||
begin
|
||||
Data += dat;
|
||||
end;
|
||||
end;
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user