# 金融 / 技术分析 / 选股函数 / 走势形态选股

## `divergence(data, min_t_day, price_change, indicators_change, delay_day, deviate_type, return_type)`

声明：function

返回两序列底背离计算，如果数据存在背离且符合约束，则返回一个Array，否则返回0。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()有关。调用时注意系统参数的设置

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数                | 类型    | 说明                                                                                                                                                                     |
| ------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `data`              | array   | 原始数据，格式为 字段 类型 非空 缺省值 备注 日期 DateTime 否 价格 Numeric 否 一般是复权后的价格序列，求顶背离用最高价，求底背离用最低价 指标 Numeric 否 复权后的技术指标 |
| `min_t_day`         | integer | Int类型，价格序列两个极值间隔天数，可缺省，默认为1                                                                                                                       |
| `price_change`      | numeric | Numeric类型，价格最小变动(%)，可缺省，默认为0.0                                                                                                                          |
| `indicators_change` | numeric | Numeric类型，指标最小变动比例(%)，可缺省，默认为0.0                                                                                                                      |
| `delay_day`         | integer | Int类型，指标极值延迟天数，即指标的极值可以在价格极值发生日期前后DelayDay各日期内寻找指标的极值，可缺省，默认为2                                                         |
| `deviate_type`      | integer | Int类型，0表示计算顶背离，1表示计算底背离，可缺省，默认为0                                                                                                               |
| `return_type`       | integer | Int类型，0表示计算最后一个点(截止日)是否背离,1表示计算序列历史存在的背离，可缺省，默认为0                                                                                |

返回：array

### 示例

范例01：单只股票日线DIF（顶背离）

```tsl
// 单只股票日线DIF（顶背离）
// 使用单个股票在指定截止日endt最近N个交易日的日线最高价及平滑异同平均DIF线，计算在指定的截止日endt是否存在顶背离
oV := BackUpSystemParameters();
Endt := 20140227T;
DayNum := 60;
setsysparam(pn_stock(), 'SZ300016');
setsysparam(pn_date(), endt);
Setsysparam(pn_cycle(), cy_day());
Setsysparam(pn_rate(), 1);
Setsysparam(pn_rateday(), endt);
Data := nday(DayNum, "日期", datetostr(sp_time()), "价格", high(),
    "指标", MACD_dif_v(12, 26, 9));
TR := Divergence(Data, 0, 0, 0, 0, 0);
RestoreSystemParameters(oV);
return TR;
```

## `downDayPercent(n)`

声明：function

返回N日下跌比例(%)， Ex=收盘小于昨日收盘； 计算N日内Ex=1的天数v，v/N*100的值即为N日下跌比例

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明 |
| ---- | ------- | ---- |
| `n`  | integer | N日  |

返回：real

### 示例

范例01：调用 DownDayPercent

```tsl
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
N := 60;
v := DownDayPercent(N);
RestoreSystemParameters(oV);
return v;
```

## `downDayPercent2(n)`

声明：function

返回N日阴线比例(%)，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明           |
| ---- | ------- | -------------- |
| `n`  | integer | 整数，统计天数 |

返回：real

### 示例

范例01：计算白云机场截止2011年9月13日的60日阴线比例(%)

```tsl
// 计算白云机场截止2011年9月13日的60日阴线比例(%)。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
N := 60;
v := DownDayPercent2(N);
RestoreSystemParameters(oV);
return v;
```

## `downDayPercent3(n)`

声明：function

连续N日收阴线，判断N日内收盘价<开盘价的天数是否等于N。与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 判断 检查 -->

| 参数 | 类型    | 说明           |
| ---- | ------- | -------------- |
| `n`  | integer | 整数，统计天数 |

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否连续N日收阴线

```tsl
// 计算白云机场截止2011年9月13日是否连续N日收阴线。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
N := 60;
v := DownDayPercent3(N);
RestoreSystemParameters(oV);
return v;
```

## `downDayPercent4(n)`

声明：function

返回最近N日收盘价连跌，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数，统计交易日数 |

返回：real

### 示例

范例01：计算白云机场截止2011年9月13日是否连跌N日

```tsl
// 计算白云机场截止2011年9月13日是否连跌N日。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
N := 60;
v := DownDayPercent4(N);
RestoreSystemParameters(oV);
return v;
```

## `fundCommision(r_date)`

声明：function

返回封闭式基金的交易佣金，与系统股票pn_stock()相关

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数     | 类型    | 说明   |
| -------- | ------- | ------ |
| `r_date` | integer | 报告期 |

返回：float

### 示例

范例01：调用 FundCommision

```tsl
SetSysParam(pn_stock(), 'SH500003');
return FundCommision(20081231); // 输出：7326997
```

## `isHighOfHist()`

声明：function

返回创历史新高，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否创历史新高

```tsl
// 计算白云机场截止2011年9月13日是否创历史新高。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
Setsysparam(pn_cycle(), cy_day());
v := IsHighOfHist();
RestoreSystemParameters(oV);
return v;
```

## `isHighOfNDay(n)`

声明：function

返回创N日新高，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数，统计交易日数 |

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否创N日新高

```tsl
// 计算白云机场截止2011年9月13日是否创N日新高。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
Setsysparam(pn_cycle(), cy_day());
N := 10;
v := IsHighOfNDay(N);
RestoreSystemParameters(oV);
return v;
```

## `isHighVolOfHist()`

声明：function

返回创历史天量，进行判断时，并不要求绝对的最低和最高，只要两者相比的绝对值小于等于指定的百分比（0.5%）就可。与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否创历史天量

```tsl
// 计算白云机场截止2011年9月13日是否创历史天量。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
Setsysparam(pn_cycle(), cy_day());
v := IsHighVolOfHist();
RestoreSystemParameters(oV);
return v;
```

## `isHighVolOfNDay(n)`

声明：function

返回创N日天量，进行判断时，并不要求绝对的最低和最高，只要两者相比的绝对值小于等于指定的百分比（0.5%）就可。与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数，统计交易日数 |

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否创30日天量

```tsl
// 计算白云机场截止2011年9月13日是否创30日天量。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
Setsysparam(pn_cycle(), cy_day());
N := 30;
v := IsHighVolOfNDay(N);
RestoreSystemParameters(oV);
return v;
```

## `isJdfl(n, m)`

声明：function

返回阶段放量，N日内换手率大于百分之M，与系统证券pn_stock()和系统时间pn_date()有关

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明             |
| ---- | ------- | ---------------- |
| `n`  | integer | 整数，统计天数   |
| `m`  | numeric | 实数，放量临界值 |

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日的阶段放量

```tsl
// 计算白云机场截止2011年9月13日的阶段放量。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
N := 9;
M := 25;
v := IsJdfl(N, M);
RestoreSystemParameters(oV);
return v;
```

## `isJdsl(n, m)`

声明：function

返回阶段缩量，N日内换手率小于百分之M，与系统证券pn_stock()和系统时间pn_date()有关

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明             |
| ---- | ------- | ---------------- |
| `n`  | integer | 整数，统计天数   |
| `m`  | numeric | 实数，放量临界值 |

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日的阶段缩量

```tsl
// 计算白云机场截止2011年9月13日的阶段缩量。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
N := 9;
M := 25;
v := IsJdsl(N, M);
RestoreSystemParameters(oV);
return v;
```

## `isLowOfHist()`

声明：function

返回创历史新低，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否创历史新低

```tsl
// 计算白云机场截止2011年9月13日是否创历史新低。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
Setsysparam(pn_cycle(), cy_day());
v := IsLowOfHist();
RestoreSystemParameters(oV);
return v;
```

## `isLowOfNDay(n)`

声明：function

返回创N日新低，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数，统计交易日数 |

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否创N日新低

```tsl
// 计算白云机场截止2011年9月13日是否创N日新低。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
Setsysparam(pn_cycle(), cy_day());
N := 10;
v := IsLowOfNDay(N);
RestoreSystemParameters(oV);
return v;
```

## `isLowVolOfHist()`

声明：function

返回创历史地量，进行判断时，并不要求绝对的最低和最高，只要两者相比的绝对值小于等于指定的百分比（0.5%）就可。与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否创历史地量

```tsl
// 计算白云机场截止2011年9月13日是否创历史地量。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
Setsysparam(pn_cycle(), cy_day());
v := IsLowVolOfHist();
RestoreSystemParameters(oV);
return v;
```

## `isLowVolOfNDay(n)`

声明：function

返回创N日地量，进行判断时，并不要求绝对的最低和最高，只要两者相比的绝对值小于等于指定的百分比（0.5%）就可。与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数，统计交易日数 |

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否创30日地量

```tsl
// 计算白云机场截止2011年9月13日是否创30日地量。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
Setsysparam(pn_cycle(), cy_day());
N := 30;
v := IsLowVolOfNDay(N);
RestoreSystemParameters(oV);
return v;
```

## `miniDifference()`

声明：function

返回差距（%），值为0.5，为中间函数。判断是否创N日天量/价的时候，所要求的两者比值的绝对值小于等于指定的百分比（0.5%）

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

返回：real

### 示例

范例01：调用 MiniDifference

```tsl
v := MiniDifference();
return v;
```

## `upDayPercent(n)`

声明：function

返回N日上涨比例(%)，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数，统计交易日数 |

返回：real

### 示例

范例01：计算白云机场截止2011年9月13日的60日上涨比例(%)

```tsl
// 计算白云机场截止2011年9月13日的60日上涨比例(%)。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
N := 60;
v := UpDayPercent(N);
RestoreSystemParameters(oV);
return v;
```

## `upDayPercent2(n)`

声明：function

返回N日阳线比例(%)，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数，统计交易日数 |

返回：real

### 示例

范例01：计算白云机场截止2011年9月13日的60日阳线比例(%)

```tsl
// 计算白云机场截止2011年9月13日的60日阳线比例(%)。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
N := 60;
v := UpDayPercent2(N);
RestoreSystemParameters(oV);
return v;
```

## `upDayPercent3(n)`

声明：function

连续N日收阳线，判断N日内收盘价>=开盘价的天数是否等于N，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 判断 检查 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数，统计交易日数 |

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否连续N日收阳线

```tsl
// 计算白云机场截止2011年9月13日是否连续N日收阳线。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
N := 60;
v := UpDayPercent3(N);
RestoreSystemParameters(oV);
return v;
```

## `upDayPercent4(n)`

声明：function

收盘价连涨N日，判断N日内收盘价>=昨收盘价的天数是否等于N，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 判断 检查 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数，统计交易日数 |

返回：bool

### 示例

范例01：计算白云机场截止2011年9月13日是否连涨N日

```tsl
// 计算白云机场截止2011年9月13日是否连涨N日。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
setsysparam(pn_cycle(), cy_day());
N := 60;
v := UpDayPercent4(N);
RestoreSystemParameters(oV);
return v;
```

## `xdzf(n)`

声明：function

返回N日相对强弱，与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 技术分析 选股函数 走势形态选股 返回 获取 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数，统计交易日数 |

返回：real

### 示例

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

```tsl
// 计算白云机场截止2011年9月13日的10日相对强弱。
oV := BackUpSystemParameters();
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), inttodate(20110913));
Setsysparam(pn_cycle(), cy_day());
N := 10;
v := XDZF(N);
RestoreSystemParameters(oV);
return v;
```
