# 金融 / 技术分析 / 趋势指标 / 计算公式

## `asi_f(n, type)`

声明：function

返回价量趋势，与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 -->

| 参数   | 类型    | 说明                                   |
| ------ | ------- | -------------------------------------- |
| `n`    | integer | 整数，交易日天数                       |
| `type` | integer | 结果类型 显示名 取值 当前值 0 区间值 1 |

返回：real/table

### 示例

范例01：计算白云机场截止2011年9月13日的价量趋势

```tsl
// 计算白云机场截止2011年9月13日的价量趋势。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N := 10;
v := ASI_f(N, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月13日向前推共5日的价量趋势

```tsl
// /计算白云机场截止2011年9月13日向前推共5日的价量趋势。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
N := 10;
v := EMV_f(N, 1);
RestoreSystemParameters(oV);
return v;
```

## `cci_f(n, type)`

声明：function

返回顺势指标，根据统计学原理，引进价格与固定期间的股价平均区间的偏离程序的概念，强调股价平均绝对偏差在股市技术分析中的重要性。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 -->

| 参数   | 类型    | 说明                                   |
| ------ | ------- | -------------------------------------- |
| `n`    | integer | 整数，交易日天数                       |
| `type` | integer | 结果类型 显示名 取值 当前值 0 区间值 1 |

返回：table/real

### 示例

范例01：计算白云机场截止2011年9月8日的顺势指标

```tsl
// 计算白云机场截止2011年9月8日的顺势指标。
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_date(), inttodate(20110908));
N := 6;
v := CCI_f (N, 1);
RestoreSystemParameters(oV);
return v;
```

## `cho_f(n_1, n_2, m, type)`

声明：function

返回佳庆指标CHO，与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 CHO -->

| 参数   | 类型    | 说明                             |
| ------ | ------- | -------------------------------- |
| `n_1`  | integer | 整数，交易日天数                 |
| `n_2`  | integer | 整数，交易日天数                 |
| `m`    | integer | 整数，交易日天数                 |
| `type` | integer | 结果类型显示名取值当前值0区间值1 |

返回：table

### 示例

范例01：计算白云机场截止2011年9月13日的佳庆指标

```tsl
// 计算白云机场截止2011年9月13日的佳庆指标。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N1 := 10;
N2 := 20;
M := 3;
v := CHO_f(N1, N2, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月13日向前推共5日的佳庆指标

```tsl
// /计算白云机场截止2011年9月13日向前推共5日的佳庆指标。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
N1 := 10;
N2 := 20;
M := 3;
v := CHO_f(N1, N2, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `dbcd_f(n_1, n_2, m, type)`

声明：function

返回异同离差乖离率DBCD，指能够保持指标的紧密同步，并且线条光滑，信号明确，能够有效的过滤掉伪信号的概率。先计算乖离率BIAS，然后计算不同日的乖离率之间的离差，最后对离差进行指数移动平滑处理。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 过滤 筛选 filter 返回 获取 DBCD BIAS -->

| 参数   | 类型    | 说明             |
| ------ | ------- | ---------------- |
| `n_1`  | integer | 整数，交易日天数 |
| `n_2`  | integer | 整数，交易日天数 |
| `m`    | integer | 整数，交易日天数 |
| `type` | integer | 结果类型         |

返回：float

### 示例

范例01：计算白云机场截止2011年9月8日的异同离差乖离率

```tsl
// 计算白云机场截止2011年9月8日的异同离差乖离率。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110908));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N1 := 5;
N2 := 16;
M := 17;
v := DBCD_f(N1, N2, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月8日向前推共5日的异同离差乖离率

```tsl
// /计算白云机场截止2011年9月8日向前推共5日的异同离差乖离率。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110908));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
N1 := 5;
N2 := 16;
M := 17;
v := DBCD_f(N1, N2, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `dma_f(n_1, n_2, m, type)`

声明：function

返回收盘价平均差，与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 -->

| 参数   | 类型    | 说明                             |
| ------ | ------- | -------------------------------- |
| `n_1`  | integer | 整数，交易日天数                 |
| `n_2`  | integer | 整数，交易日天数                 |
| `m`    | integer | 整数，交易日天数                 |
| `type` | integer | 结果类型显示名取值当前值0区间值1 |

返回：table

### 示例

范例01：计算白云机场截止2011年9月13日的收盘价平均差

```tsl
// 计算白云机场截止2011年9月13日的收盘价平均差。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N1 := 10;
N2 := 20;
M := 3;
v := DMA_f(N1, N2, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月13日向前推共5日的收盘价平均差

```tsl
// /计算白云机场截止2011年9月13日向前推共5日的收盘价平均差。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
N1 := 10;
N2 := 20;
M := 3;
v := DMA_f(N1, N2, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `dmi_f(n, m, type)`

声明：function

返回趋向指标DMI，DMI指标是通过分析股票价格在涨跌过程中买卖双方力量均衡点的变化情况，即多空双方的力量的变化受价格波动的影响而发生由均衡到失衡的循环过程，从而提供对趋势判断依据的一种技术指标。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 DMI -->

| 参数   | 类型    | 说明                             |
| ------ | ------- | -------------------------------- |
| `n`    | integer | 整数，交易日天数                 |
| `m`    | integer | 整数，交易日天数                 |
| `type` | integer | 结果类型显示名取值当前值0区间值1 |

返回：table

### 示例

范例01：计算白云机场截止2011年9月8日的趋向指标

```tsl
// 计算白云机场截止2011年9月8日的趋向指标。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110908));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N := 14;
M := 6;
v := DMI_f(N, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月8日向前推共5日的趋向指标

```tsl
// /计算白云机场截止2011年9月8日向前推共5日的趋向指标。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110908));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
N := 14;
M := 6;
v := DMI_f(N, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `dpo_f(n, m, type)`

声明：function

返回区间震荡线DPO，是一个排除价格趋势的震荡指标。它试图通过扣除前期移动平均价来消除长期趋势对价格波动的干扰，从而便于发现价格短期的波动和超买超卖水平。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 DPO -->

| 参数   | 类型    | 说明                             |
| ------ | ------- | -------------------------------- |
| `n`    | integer | 整数，交易日天数                 |
| `m`    | integer | 整数，交易日天数                 |
| `type` | integer | 结果类型显示名取值当前值0区间值1 |

返回：table

### 示例

范例01：计算白云机场截止2011年9月13日的区间震荡线

```tsl
// 计算白云机场截止2011年9月13日的区间震荡线。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N := 20;
M := 6;
v := DPO_f(N, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月13日向前推共5日的区间震荡线

```tsl
// /计算白云机场截止2011年9月13日向前推共5日的区间震荡线。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_nday(), 5);
setsysparam(pn_rate(), 0);
N := 20;
M := 6;
v := DPO_f(N, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `emv_f(n, m, type)`

声明：function

返回波动指标，将价格与成交量的变化结合成一个波动指标来反映股价或指数的变动状况。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 -->

| 参数   | 类型    | 说明                             |
| ------ | ------- | -------------------------------- |
| `n`    | integer | 整数，交易日天数                 |
| `m`    | integer | 整数，交易日天数                 |
| `type` | integer | 结果类型显示名取值当前值0区间值1 |

返回：table

### 示例

范例01：计算白云机场截止2011年9月13日的波动指标

```tsl
// 计算白云机场截止2011年9月13日的波动指标。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N := 14;
M := 9;
v := EMV_f(N, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月13日向前推共5日的波动指标

```tsl
// /计算白云机场截止2011年9月13日向前推共5日的波动指标。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
N := 14;
M := 9;
v := EMV_f(N, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `gettower(r)`

声明：function

宝塔线数据处理,返回宝塔线数据；默认r是按照时间正序排序的有序序列； 1、r的第一个数据为宝塔线的开始，为无色; 2、如果昨日为无色： 1）今日收盘>昨日收盘，则为红色； 2）今日收盘=昨日收盘，则为无色； 3）今日收盘<昨日收盘，则为绿色； 3、如果昨日为红色或者绿翻红： 1）今日收盘>昨日的高点，则为红色； 2）今日收盘=昨日的高点，则为无色； 3）今日收盘<昨日的高点且今日收盘>=昨日的低点，则为红色； 4）今日收盘<昨日的高点且今日收盘<昨日的低点，则为红翻绿； 4、如果昨日为绿色或者红翻绿： 1）昨日的低点>今日收盘，则为绿色； 2）昨日的低点=今日收盘，则为无色； 3）昨日的低点<今日收盘且今日收盘<=昨日高点，则为绿色； 4）昨日的低点<今日收盘且今日收盘>昨日高点，则为绿翻红

<!-- tags: 金融 技术分析 趋势指标 计算公式 排序 sort 获取 查询 -->

| 参数 | 类型  | 说明                                |
| ---- | ----- | ----------------------------------- |
| `r`  | array | 数组,收盘数据:需包含字段time、close |

返回：array

### 示例

范例01：取万科A最近1000个交易日的守塔线数据

```tsl
// 取万科A最近1000个交易日的守塔线数据
setsysparam(pn_stock(), 'SZ000002');
setsysparam(pn_date(), 20211220T);
r := Nday(1000, 'time', datetostr(sp_time()), 'close', close());
return getTower(r);
```

## `macd_ex(short_n, long_n, m, arr_data)`

声明：function

返回平滑移动平均_扩展，利用自有数据arrData，计算MACD值。其中，数据arrData第一列为日期date，第二列为收盘close数据

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 MACD -->

| 参数       | 类型    | 说明                                                  |
| ---------- | ------- | ----------------------------------------------------- |
| `short_n`  | integer | 整数，短期平滑移动平均线                              |
| `long_n`   | integer | 整数，长期平滑移动平均线                              |
| `m`        | integer | 整数，计算DEA的平滑移动平均的样本长度                 |
| `arr_data` | array   | 自有数据，需包含date、close列，date为升序时间序列数据 |

返回：table

### 示例

范例01：利用数据表arrData中的数据计算MACD值

```tsl
// 利用数据表arrData中的数据计算MACD值。
Short := 12;
Long := 26;
M := 9;
arrData := array(("date":inttodate(20180831), "close":12.21),
    ("date":inttodate(20180903), "close":12.31),
    ("date":inttodate(20180904), "close":12.10));
Return MACD_Ex(Short, Long, M, arrData);
```

## `macd_f(short, long, m, type)`

声明：function

返回平滑异同平均MACD线，利用短期（常用为12日）移动平均线与长期（常用为26日）移动平均线之间的聚合与分离状况，对买进、卖出时机作出研判的技术指标。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 MACD -->

| 参数    | 类型    | 说明                                                                                                                 |
| ------- | ------- | -------------------------------------------------------------------------------------------------------------------- |
| `short` | integer | 整数，快速平滑移动平均线                                                                                             |
| `long`  | integer | 整数，慢速平滑移动平均线                                                                                             |
| `m`     | integer | 整数，计算DEA的平滑移动平均的样本长度                                                                                |
| `type`  | integer | 结果类型取值含义0取当前值1取执行点数区间值2是否金叉3是否死叉4是否0轴上金叉5是否0轴上死叉6是否0轴下金叉7是否0轴下死叉 |

返回：table/boolean

### 示例

范例01：计算白云机场截止2011年9月8日的平滑异同平均DIF线、EDA线和MACD线

```tsl
// 计算白云机场截止2011年9月8日的平滑异同平均DIF线、EDA线和MACD线。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110908));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
Short := 12;
Long := 26;
M := 9;
v := MACD_f(Short, Long, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月8日向前推共5日的平滑异同平均DIF线、EDA线和MACD线

```tsl
// /计算白云机场截止2011年9月8日向前推共5日的平滑异同平均DIF线、EDA线和MACD线。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
Short := 12;
Long := 26;
M := 9;
v := MACD_f(Short, Long, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `sar_f(dpa, af_initial_value, af_inc_value, af_max_value)`

声明：function

返回执行点数区间内的抛物式时间价格交易系统数据，每行包含 SAR 数值和行情状态，依赖系统证券 pn_stock()、系统时间 pn_date()、系统周期 pn_cycle() 和执行点数 pn_nday()，调用前需设置相应系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 SAR 抛物线 停损 行情状态 区间 -->

| 参数               | 类型    | 说明                                |
| ------------------ | ------- | ----------------------------------- |
| `dpa`              | integer | 计算周期，常用值为 4                |
| `af_initial_value` | numeric | 加速因子初始值，常用值为 1.8 至 2.1 |
| `af_inc_value`     | numeric | 加速因子增量，常用值为 1.8 至 2.1   |
| `af_max_value`     | numeric | 加速因子上限，常用值为 20 至 22     |

返回：table

### 示例

范例01：计算白云机场截至 2011 年 9 月 13 日向前 5 个交易日的 SAR 数值和行情状态

```tsl
setSysParam(pn_stock(), "SH600004");
setSysParam(pn_date(), 20110913T);
setSysParam(pn_cycle(), cy_day());
setSysParam(pn_nday(), 5);
return sar_f(4, 2, 2, 20);
// 输出：
// array(
// (7.0518, -1),
// (6.93, 1),
// (6.9364, 1),
// (6.962144, 1),
// (7.008815, 1)
// )
```

## `tower_f(type)`

声明：function

返回指定日指定代码的宝塔线数据； 1、三平顶：当日颜色为红翻绿，前2个交易日都为红色且3天的高点相同时为三平顶 2、三平底：当日颜色为绿翻红，前2个交易日都为绿色且3天的低点相同时为三平底

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 -->

| 参数   | 类型    | 说明                                                                           |
| ------ | ------- | ------------------------------------------------------------------------------ |
| `type` | integer | 整型,结果类型，取值如下: 类型 取值 当前值 0 区间值 1 三平顶翻绿 2 三平底翻红 3 |

返回：array

### 示例

范例01："SZ000002"在20140619日的宝塔线数据

```tsl
// "SZ000002"在20140619日的宝塔线数据
setsysparam(pn_stock(), "SZ000002");
setsysparam(pn_date(), 20140619T);
setsysparam(pn_cycle(), cy_day());
return Tower_f(0);
```

## `trix_f(n, m, type)`

声明：function

返回三重指数平均线，属于中长线指标，过滤掉许多不必要的波动来反映股价的长期波动趋势。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 过滤 筛选 filter 返回 获取 -->

| 参数   | 类型    | 说明                             |
| ------ | ------- | -------------------------------- |
| `n`    | integer | 整数，交易日天数                 |
| `m`    | integer | 整数，交易日天数                 |
| `type` | integer | 结果类型显示名取值当前值0区间值1 |

返回：table

### 示例

范例01：计算白云机场截止2011年9月13日的三重指数平均线

```tsl
// 计算白云机场截止2011年9月13日的三重指数平均线。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N := 12;
M := 20;
v := TRIX_f(N, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月13日向前推共5日的三重指数平均线

```tsl
// /计算白云机场截止2011年9月13日向前推共5日的三重指数平均线。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
N := 12;
M := 20;
v := TRIX_f(N, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `uos_f(n_1, n_2, n_3, m, type)`

声明：function

返回终极指标UOS，与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 UOS -->

| 参数   | 类型    | 说明                             |
| ------ | ------- | -------------------------------- |
| `n_1`  | integer | 整数，交易日天数                 |
| `n_2`  | integer | 整数，交易日天数                 |
| `n_3`  | integer | 整数，交易日天数                 |
| `m`    | integer | 整数，交易日天数                 |
| `type` | integer | 结果类型显示名取值当前值0区间值1 |

返回：table

### 示例

范例01：计算白云机场截止2011年9月8日的终极指标

```tsl
// 计算白云机场截止2011年9月8日的终极指标。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110908));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N1 := 7;
N2 := 14;
N3 := 28;
M := 6;
v := UOS_f(N1, N2, N3, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：计算白云机场截止2011年9月8日的向前推共5日的终极指标

```tsl
// 计算白云机场截止2011年9月8日的向前推共5日的终极指标。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110908));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
N1 := 7;
N2 := 14;
N3 := 28;
M := 6;
v := UOS_f(N1, N2, N3, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `vpt_f(n, m, type)`

声明：function

返回量价曲线，将量能的增减和股价的涨跌结合起来分析，从而确定量能的主要运动方向，进而得出主力资金进出的真实意图。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 -->

| 参数   | 类型    | 说明                             |
| ------ | ------- | -------------------------------- |
| `n`    | integer | 整数，交易日天数                 |
| `m`    | integer | 整数，交易日天数                 |
| `type` | integer | 结果类型显示名取值当前值0区间值1 |

返回：table

### 示例

范例01：计算白云机场截止2011年9月8日的量价曲线

```tsl
// 计算白云机场截止2011年9月8日的量价曲线。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110908));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N := 51;
M := 6;
v := VPT_f(N, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月8日向前推共5日的量价曲线

```tsl
// /计算白云机场截止2011年9月8日向前推共5日的量价曲线。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110908));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
N := 51;
M := 6;
v := VPT_f(N, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `wvad_f(n, m, type)`

声明：function

返回威廉变异离散量，一种将成交量加权的量价指标，用于测量从开盘价至收盘价期间，买卖双方各自爆发力的程度。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 -->

| 参数   | 类型    | 说明                             |
| ------ | ------- | -------------------------------- |
| `n`    | integer | 整数，交易日天数                 |
| `m`    | integer | 整数，交易日天数                 |
| `type` | integer | 结果类型显示名取值当前值0区间值1 |

返回：table

### 示例

范例01：计算白云机场截止2011年9月8日的威廉变异离散量

```tsl
// 计算白云机场截止2011年9月8日的威廉变异离散量。
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_date(), inttodate(20110908));
N := 24;
M := 6;
V := WVAD_f(N, M, 0);
return v;
```

范例02：计算白云机场截止2011年9月8日的向前推共5日威廉变异离散量序列

```tsl
// 计算白云机场截止2011年9月8日的向前推共5日威廉变异离散量序列。
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_date(), inttodate(20110908));
SetSysParam(pn_nday(), 5);
N := 24;
M := 6;
V := WVAD_f(N, M, 1);
Return v;
```

## `xdqr_f(n_1, n_2, m, type)`

声明：function

返回相对强弱，一段时间内某股票和本行业或整个市场的比较，即对该股票市场表现的计量，用于个股和指数。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 -->

| 参数   | 类型    | 说明                                               |
| ------ | ------- | -------------------------------------------------- |
| `n_1`  | integer | 整数，均线的样本长度                               |
| `n_2`  | integer | 整数，交易日长度                                   |
| `m`    | integer | 整数，均线的样本长度                               |
| `type` | integer | 结果类型显示名取值当前值0区间值1买入条件2卖出条件3 |

返回：table

### 示例

范例01：计算白云机场截止2011年9月13日的相对强弱

```tsl
// 计算白云机场截止2011年9月13日的相对强弱。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
N1 := 13;
N2 := 7;
M := 5;
v := XDQR_f(N1, N2, M, 0);
RestoreSystemParameters(oV);
return v;
```

范例02：/计算白云机场截止2011年9月13日向前推共5日的相对强弱

```tsl
// /计算白云机场截止2011年9月13日向前推共5日的相对强弱。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
setsysparam(pn_rate(), 0);
setsysparam(pn_nday(), 5);
N1 := 13;
N2 := 7;
M := 5;
v := XDQR_f(N1, N2, M, 1);
RestoreSystemParameters(oV);
return v;
```

## `xuech1_f(n, type)`

声明：function

返回薛斯通道1，与证券代码、周期、时间、复权方式、复权基准日、执行点数相关

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 -->

| 参数   | 类型    | 说明                                |
| ------ | ------- | ----------------------------------- |
| `n`    | number  | Number,                             |
| `type` | integer | 整型,区间值返回通道值=0通道区间值=1 |

返回：array

### 示例

范例01："SZ000002"在2020-09-24的通道值

```tsl
// "SZ000002"在2020-09-24的通道值
SetSysParam(pn_stock(), "SZ000002");
SetSysParam(PN_Date(), 20200924T);
return XUECH1_f(2, 0);
```

## `xuech_f(long, short, type)`

声明：function

返回薛斯通道2，与系统参数(证券代码、周期、时间、复权方式、复权基准日、执行点数)相关。TD1、TD2为长通道，TD3、TD4为短通道。一般长通道取值80至120，默认102，短通道2至20，默认7

<!-- tags: 金融 技术分析 趋势指标 计算公式 返回 获取 TD1 TD2 TD3 TD4 -->

| 参数    | 类型    | 说明                                                                                      |
| ------- | ------- | ----------------------------------------------------------------------------------------- |
| `long`  | real    | 实数。长线                                                                                |
| `short` | integer | 整数。短线                                                                                |
| `type`  | integer | 用户自定义。区间值，取值如下: 显示名 取值 返回通道值 0 通道区间值 1 通道买点 2 通道卖点 3 |

返回：array

### 示例

范例01："SZ000002"在2020-09-24的通道值

```tsl
// "SZ000002"在2020-09-24的通道值
SetSysParam(pn_stock(), "SZ000002");
SetSysParam(PN_Date(), 20200924T);
return XUECH_f(102, 7, 0);
```
