# 金融 / 股票 / 分红送配

## `stockBuyandHoldReturn(beg_t, end_t)`

声明：function

提取股票的持仓不动收益率(%)，与系统股票pn_stock()、当前时间pn_date()、周期pn_cycle()，除权方式pn_rate()相关

<!-- tags: 金融 股票 分红送配 -->

| 参数    | 类型     | 说明                 |
| ------- | -------- | -------------------- |
| `beg_t` | datetime | 日期类型，开始日期； |
| `end_t` | datetime | 日期类型，截止日期   |

返回：float

### 示例

范例01：调用函数

```tsl
setsysparam(pn_stock(), 'SZ000002');
Return StockBuyandHoldReturn(20180827T, 20180903T);
```

## `stockDistributionInfo(beg_t, end_t)`

声明：function

返回一段时间的配股详情

<!-- tags: 金融 股票 分红送配 返回 获取 -->

| 参数    | 类型     | 说明             |
| ------- | -------- | ---------------- |
| `beg_t` | datetime | 实数，起始日期； |
| `end_t` | datetime | 实数，截止日期； |

返回：array

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000759');
v := StockDistributionInfo(inttodate(20000101), inttodate(20120830));
return v;
```

## `stockDistributionInfo2()`

声明：function

返回上市以来截止当前时间（与除权日比较）的配股详情，与当前股票、当前时间相关

<!-- tags: 金融 股票 分红送配 返回 获取 -->

返回：array

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000759');
setsysparam(pn_date(), 20101221T);
v := StockDistributionInfo2();
return v;
```

## `stockDistributionInfo3(r_date, return_type)`

声明：function

返回指定报告期的配股情况

<!-- tags: 金融 股票 分红送配 返回 获取 -->

| 参数          | 类型 | 说明             |
| ------------- | ---- | ---------------- |
| `r_date`      | int  | 整数，报告期；   |
| `return_type` | int  | 整数，返回类型； |

返回：array

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000759');
v := StockDistributionInfo3(20081231, 0);
return v;
```

## `stockDividendYieldRatio(end_t)`

声明：function

返回指定证券截至指定日最近 12 个月按除息日计算的股息收益率

<!-- tags: 金融 股票 分红送配 股息收益率 股息率 除息日 最近12个月 近12个月 dividend yield -->

| 参数    | 类型        | 说明     |
| ------- | ----------- | -------- |
| `end_t` | t_date_time | 指定日期 |

返回：real

### 示例

范例01：查询万科 A 的股息收益率

```tsl
setSysParam(pn_stock(), "SZ000002");
return stockDividendYieldRatio(20180822T);
// 输出：3.302676
```

## `stockFHSPInfoExt(date_by, beg_t, end_t)`

声明：function

返回区间分红送股详情。 统计当前股票从开始日期到截止日期之间的分红送股数据。该数据从分红送股表中取得

<!-- tags: 金融 股票 分红送配 返回 获取 -->

| 参数      | 类型     | 说明                |
| --------- | -------- | ------------------- |
| `date_by` | datetime | 日期类型；取值如下: |
| `beg_t`   | datetime | 实数，起始日期；    |
| `end_t`   | datetime | 实数，截止日期；    |

返回：array

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000002');
v := StockFHSPInfoExt (0, 20120101, 20120830);
return v;
```

## `stockLJFH(beg_t, end_t, v_g_q_f_z)`

声明：function

统计指定区间内每股累计分红，只考虑分红、送股和转增，不考虑配股及增发

<!-- tags: 金融 股票 分红送配 累计分红 每股分红 送股 转增 dividend cumulative -->

| 参数        | 类型        | 说明             |
| ----------- | ----------- | ---------------- |
| `beg_t`     | t_date_time | 开始日期         |
| `end_t`     | t_date_time | 截止日期         |
| `v_g_q_f_z` | boolean     | 是否考虑股权分置 |

返回：real

### 示例

范例01：查询万科 A 的每股累计分红

```tsl
setSysParam(pn_stock(), "SZ000002");
return stockLJFH(20020101T, 20120830T, true);
// 输出：5.9895
```

## `stockLJFHPercent(beg_t, end_t, v_gqfz)`

声明：function

返回假设以开始日收盘买入股票，考察每股累计分红占初始投资的比例（只考虑分红、送股、转增，不考虑配股、增发）。 （1）如果指定日上市，则假设买入价格为当日收盘价，即初始投资； （2）如果指定日没有上市，则假设买入价格为上市首日的收盘价，即初始投资

<!-- tags: 金融 股票 分红送配 返回 获取 -->

| 参数     | 类型     | 说明                     |
| -------- | -------- | ------------------------ |
| `beg_t`  | datetime | 实数，起始日期；         |
| `end_t`  | datetime | 实数，截止日期；         |
| `v_gqfz` | bool     | bool参数，考虑股权分置； |

返回：float

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000002');
v := StockLJFHPercent(20020101T, 20120830T, true);
return v;
```

## `stockPFAmount(beg_t, end_t)`

声明：function

返回区间分红总额(万)，统计起始日期到截止日期之间的分红总额。某次分红总额通过除权除息日的总股本\*红利比获得

<!-- tags: 金融 股票 分红送配 返回 获取 -->

| 参数    | 类型     | 说明             |
| ------- | -------- | ---------------- |
| `beg_t` | datetime | 实数，起始日期； |
| `end_t` | datetime | 实数，截止日期； |

返回：float

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000002');
v := StockPFAmount(inttodate(20120101), inttodate(20120830));
return v;
```

## `stockPFAmount2()`

声明：function

统计上市至系统当前时间（默认今天）的分红总额，单位万。某次分红总额通过除权除息日的总股本\*红利比获得。 系统参数：pn_stock()、pn_date()

<!-- tags: 金融 股票 分红送配 -->

返回：float

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000002');
setsysparam(pn_date(), 20171231T);
v := StockPFAmount2();
return v;
```

## `stockPFAmountOfRDate(r_date)`

声明：function

计算报告期分红总额(万)，公式为每股股利\*总股本/10000。 每股股利，即分红送股表的红利比。总股本即指定报告期的总股本

<!-- tags: 金融 股票 分红送配 计算 求解 -->

| 参数     | 类型 | 说明           |
| -------- | ---- | -------------- |
| `r_date` | int  | 整数，报告期； |

返回：float

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000002');
v := StockPFAmountOfRDate(20111231);
return v;
```

## `stockPFAmountOfYear(year)`

声明：function

返回指定证券某年度的分红总额，单位为万元

<!-- tags: 金融 股票 分红送配 年度分红 分红总额 dividend annual amount -->

| 参数   | 类型    | 说明     |
| ------ | ------- | -------- |
| `year` | integer | 指定年份 |

返回：real

### 示例

范例01：查询万科 A 在 2011 年的分红总额

```tsl
setSysParam(pn_stock(), "SZ000002");
return stockPFAmountOfYear(2011);
// 输出：142937.732834
```

## `stockPFAndRatioInfo3(r_date, return_type)`

声明：function

提取股票的指定报告期的报告期分红送股情况，与系统股票pn_stock()、当前时间pn_date()相关

<!-- tags: 金融 股票 分红送配 -->

| 参数          | 类型     | 说明                 |
| ------------- | -------- | -------------------- |
| `r_date`      | datetime | 报告期类型，报告期； |
| `return_type` | int      | 整数，返回类型；     |

返回：array

### 示例

范例01：调用函数

```tsl
setsysparam(pn_stock(), 'SZ000002');
Return StockPFAndRatioInfo3(20171231, 0);
```

## `stockPFInfo(beg_t, end_t)`

声明：function

返回指定股票区间分红详情，该函数和证券代码有关

<!-- tags: 金融 股票 分红送配 返回 获取 -->

| 参数    | 类型     | 说明             |
| ------- | -------- | ---------------- |
| `beg_t` | datetime | 实数，起始日期； |
| `end_t` | datetime | 实数，截止日期； |

返回：array

### 示例

范例01：调用函数

```tsl
// 取得SH600005(武钢股份)在20110113与20110913区间分红详情;
SetSysParam(pn_stock(), 'SH600005');
BegT := inttodate(20110113);
EndT := inttodate(20110913);
return StockPFInfo(BegT, EndT);
```

## `stockPFInfo2()`

声明：function

返回指定股票上市以来截止当前时间（除权除息日）的分红情况，该函数和证券代码、当前时间有关

<!-- tags: 金融 股票 分红送配 返回 获取 -->

返回：array

### 示例

范例01：调用函数

```tsl
SetSysParam(pn_stock(), 'SH600635');
setsysparam(pn_date(), 20111202T);
return StockPFInfo2();
```

## `stockPFInfo3(r_date, return_type)`

声明：function

返回报告期分红情况

<!-- tags: 金融 股票 分红送配 返回 获取 -->

| 参数          | 类型 | 说明           |
| ------------- | ---- | -------------- |
| `r_date`      | int  | 整数，报告期； |
| `return_type` | int  | 返回类型；     |

返回：array

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000002');
v := StockPFInfo3(20111231, 0);
return v;
```

## `stockPFPS(beg_t, end_t)`

声明：function

计算区间分红（元/股），公式为Σ每股派现（税前）； 每股派现（税前），即分红送股表的红利比；每股派现（税后），即分红送股表的实得比

<!-- tags: 金融 股票 分红送配 计算 求解 -->

| 参数    | 类型     | 说明             |
| ------- | -------- | ---------------- |
| `beg_t` | datetime | 实数，起始日期； |
| `end_t` | datetime | 实数，截止日期； |

返回：float

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000002');
v := StockPFPS (inttodate(20120101), inttodate(20120809));
return v;
```

## `stockPFRatio(beg_t, end_t)`

声明：function

获取当前证券区间送股比，与系统参数(股票)相关。允许通过系统时间设置EndT(函数EndT不设置)

<!-- tags: 金融 股票 分红送配 获取 查询 -->

| 参数    | 类型     | 说明           |
| ------- | -------- | -------------- |
| `beg_t` | datetime | 日期。开始日期 |
| `end_t` | datetime | 日期。截止日期 |

返回：float

### 示例

范例01：调用函数

```tsl
SetSysParam(PN_Stock(), 'SZ000002');
return StockPFRatio(20200801T, 20230801T);
```

## `stockPFRatioInfo(beg_t, end_t)`

声明：function

返回区间送股情况

<!-- tags: 金融 股票 分红送配 返回 获取 -->

| 参数    | 类型     | 说明             |
| ------- | -------- | ---------------- |
| `beg_t` | datetime | 实数，起始日期； |
| `end_t` | datetime | 实数，截止日期； |

返回：array

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000002');
v := StockPFRatioInfo (inttodate(20060101), inttodate(20071231));
return v;
```

## `stockPFRatioInfo2()`

声明：function

返回上市以来截止到当前时间（按除权日）的送股情况，与当前证券、当前时间相关

<!-- tags: 金融 股票 分红送配 返回 获取 -->

返回：array

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SH600000');
setsysparam(pn_date(), 20111202T);
v := StockPFRatioInfo2();
return v;
```

## `stockPFRatioInfo3(r_date, return_type)`

声明：function

返回报告期送股情况

<!-- tags: 金融 股票 分红送配 返回 获取 -->

| 参数          | 类型    | 说明             |
| ------------- | ------- | ---------------- |
| `r_date`      | integer | 整数，报告期；   |
| `return_type` | integer | 整数，返回类型； |

返回：array

### 示例

范例01：调用函数

```tsl
o_v := BackUpSystemParameters2();
// 取'昊华能源'在2011年年报的报告期送股情况；
setSysParam(pn_stock(), 'SH601101');
v := stockPfRatioInfo3(20111231, 0);
return v;
```
