# 股票 / 股本结构

## `getNShares(info_id, end_t, value_field_name, changed_field_name, declared_date_field)`

指定日股本，与系统参数(股票)相关。

| 参数                  | 类型     | 说明               |
| --------------------- | -------- | ------------------ |
| `info_id`             | int      | 整数。数据表索引号 |
| `end_t`               | datetime | 日期。截止日期     |
| `value_field_name`    | string   | 字符串。返回字段   |
| `changed_field_name`  | string   | 字符串。变动日字段 |
| `declared_date_field` | string   | 字符串。公告日字段 |

返回：float

### 示例

```tsl
SetSysParam(PN_Stock(),'SZ000002');
return GetNShares(16,20230801T,"总股本","变动日","公告日");
```

## `mergeReformListDate()`

提取股票的股权分置后交易首日，与系统股票pn_stock()、当前时间pn_date()相关。

返回：float

### 示例

```tsl
setsysparam(pn_stock(),'SH600019');
Return MergeReformListDate();
```

## `nSharesOfA(info_id, end_t)`

A股流通股本，与系统参数(股票)相关。

| 参数      | 类型     | 说明               |
| --------- | -------- | ------------------ |
| `info_id` | int      | 整数。数据表索引号 |
| `end_t`   | datetime | 日期。截止日期     |

返回：float

### 示例

```tsl
SetSysParam(PN_Stock(),'SZ000002');
return NSharesOfA(16,20230801T);
```

## `nSharesOfB(info_id, end_t)`

B股流通股本，与系统参数(股票)相关。

| 参数      | 类型     | 说明               |
| --------- | -------- | ------------------ |
| `info_id` | int      | 整数。数据表索引号 |
| `end_t`   | datetime | 日期。截止日期     |

返回：float

### 示例

```tsl
SetSysParam(PN_Stock(),'SZ000002');
return NSharesOfB(16,20230801T);
```

## `stockanshares(endt)`

股票A股总量，单位：（股）。与系统参数(证券代码)，系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的） A股=总股本-B股-H股-其中：有限售外资股-外资法人股

| 参数   | 类型     | 说明          |
| ------ | -------- | ------------- |
| `endt` | datetime | 日期,截止日期 |

返回：float

### 示例

```tsl
SetSysParam(pn_stock(),"SZ000002");
return StockANShares(20200924T); //结果：9724196533
```

## `stockBnShares(end_t)`

B股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回B股股本数。 与系统参数（证券代码），系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

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

返回：float

### 示例

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

## `stockBTotalShares(end_t)`

B股总股本，单位：（股），与系统参数(证券代码)相关。 与系统参数(证券代码)，系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

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

返回：float

### 示例

```tsl
SetSysParam(pn_stock(),"SZ000488");
return StockBTotalShares(20241224T);
```

## `stockCpShares(end_t)`

转配股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回转配股。

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

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SH600690');
v:=StockCPShares(20000620T);
return v;
```

## `stockDsShares(end_t)`

境内法人股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回境内法人股。

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

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SH600690');
v:=StockDSShares (20040712T);
return v;
```

## `stockFlShares(end_t)`

外资发起人股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回外资发起人股。

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

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SH600221');
v:=StockFLShares (20021125T);
return v;
```

## `stockFnShares(end_t)`

有限售外资股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回有限售外资股。 与系统参数（证券代码）,系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

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

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SH600015');
v:=StockFNShares(20120830T);
return v;
```

## `stockFreeNegotiableShares(endt)`

自由流通股本，与系统参数（证券代码）相关

| 参数   | 类型     | 说明          |
| ------ | -------- | ------------- |
| `endt` | datetime | 日期,截止日期 |

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
return StockFreeNegotiableShares(20211118T);
```

## `stockFreeNegotiableShares3()`

最新自由流通股本，与系统参数（证券代码,日期）相关

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
setsysparam(pn_date(),20211118T);
return StockFreeNegotiableShares3();
```

## `stockFreeNegotiableSharesAdjust(endt)`

自由流通股本(调整后)，与系统参数（证券代码）相关

| 参数   | 类型     | 说明          |
| ------ | -------- | ------------- |
| `endt` | datetime | 日期,截止日期 |

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
return StockFreeNegotiableSharesAdjust(20211118T);
```

## `stockFreeNegotiableSharesAdjust3()`

最新自由流通股本(调整后)，与系统参数（证券代码,日期）相关

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
setsysparam(pn_date(),20211118T);
return StockFreeNegotiableSharesAdjust3();
```

## `stockFreeNegotiableSharesAdjustNPercent(endt)`

自由流通股占流通股本(%)(调整后)，与系统参数（证券代码）相关

| 参数   | 类型     | 说明          |
| ------ | -------- | ------------- |
| `endt` | datetime | 日期,截止日期 |

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
return StockFreeNegotiableSharesAdjustNPercent(20211118T);
```

## `stockFreeNegotiableSharesAdjustNPercent3()`

最新自由流通股占流通股本(%)(调整后)，与系统参数（证券代码,日期）相关

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
setsysparam(pn_date(),20211118T);
return StockFreeNegotiableSharesAdjustNPercent3();
```

## `stockFreeNegotiableSharesAdjustPercent(endt)`

自由流通股占总股本(%)(调整后)，与系统参数（证券代码）相关

| 参数   | 类型     | 说明          |
| ------ | -------- | ------------- |
| `endt` | datetime | 日期,截止日期 |

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
return StockFreeNegotiableSharesAdjustPercent(20211118T);
```

## `stockFreeNegotiableSharesAdjustPercent3()`

最新自由流通股占总股本(%)(调整后)，与系统参数（证券代码,日期）相关

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
setsysparam(pn_date(),20211118T);
return StockFreeNegotiableSharesAdjustPercent3();
```

## `stockFreeNegotiableSharesNPercent(endt)`

自由流通股占流通股本(%)，与系统参数（证券代码）相关

| 参数   | 类型     | 说明          |
| ------ | -------- | ------------- |
| `endt` | datetime | 日期,截止日期 |

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
return StockFreeNegotiableSharesNPercent(20211118T);
```

## `stockFreeNegotiableSharesNPercent3()`

最新自由流通股占流通股本(%)，与系统参数（证券代码,日期）相关

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
setsysparam(pn_date(),20211118T);
return StockFreeNegotiableSharesNPercent3();
```

## `stockFreeNegotiableSharesPercent(endt)`

自由流通股占总股本(%)，与系统参数（证券代码）相关

| 参数   | 类型     | 说明          |
| ------ | -------- | ------------- |
| `endt` | datetime | 日期,截止日期 |

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
return StockFreeNegotiableSharesPercent(20211118T);
```

## `stockFreeNegotiableSharesPercent3()`

最新自由流通股占总股本(%)，与系统参数（证券代码,日期）相关

返回：float

### 示例

```tsl
setsysparam(pn_stock(),"SH600834");
setsysparam(pn_date(),20211118T);
return StockFreeNegotiableSharesPercent3();
```

## `stockHasNaShares(end_t)`

已上市流通A股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回已上市流通A股。 与系统参数（证券代码），系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

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

返回：float

### 示例

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

## `stockHnShares(end_t)`

H股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回H股。 与系统参数（证券代码），系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

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

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SH600011');
v:=StockHNShares (20120830T);
return v;
```

## `stockHTotalShares(end_t)`

H股总股本，单位：（股），与系统参数(证券代码)，系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

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

返回：float

### 示例

```tsl
SetSysParam(pn_stock(),"SZ000488");
return StockHTotalShares(20241224T);
```

## `stockNegotiableShares(end_t)`

流通股本。 如果是A股，则返回已上市流通A股；如果是B股票，则返回流通B股。 与系统参数（证券代码），系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

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

返回：float

### 示例

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

## `stockNegotiableShares3()`

最新流通股本。 函数默认截止日为今天，如果在调用该函数之前，设置当前日期，则返回设置的日期的流通股本数据。 与系统参数（证券代码、时间），系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SZ000002');
setsysparam(pn_date(),inttodate(20120930));
v:=StockNegotiableShares3();
return v;
```

## `stockNegotiableSharesBeforeReform()`

返回指定股票的股权分置前流通股本，单位：（股），该函数与证券代码有关。Real。 特别说明：数据下架，本模型已废弃

返回：float

## `stockNnShares(end_t)`

未流通股，单位：（股）。 （1）未流通股＝发起人股＋募集法人股＋自然人法人股＋内部职工股＋优先股＋转配股＋其他未流通股； （2）从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，可以取出最近的发起人股、募集法人股等股本数据，根据算法计算出未流通股。

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

返回：float

### 示例

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

## `stockNnShares2(end_t)`

有限售条件的流通股，单位：（股）。 （1）有限售条件的流通股=总股本－已上市流通A股－B股－H股； （2）从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，可以取出最近的总股本、已上市流通A股等股本数据，根据算法计算出有限售条件的流通股。 与系统参数（证券代码），系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

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

返回：float

### 示例

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

## `stockNnSharesBeforeReform()`

返回指定股票的股权分置前非流通股，单位：（股），该函数与证券代码有关。Real。 特别说明：数据下架，本模型已废弃

返回：float

## `stockNpShares(end_t)`

自然人法人股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回自然人法人股。

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

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SH600355');
v:=StockNPShares(20030515T);
return v;
```

## `stockNShares(end_t)`

流通股(A.B.H)，单位：（股）。 （1）流通股(A.B.H)＝流通A股＋B股＋H股； （2）从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，可以取出最近的流通A股、B股、H股等股本数据，根据算法计算出流通股(A.B.H)。 与系统参数（证券代码），系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

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

返回：float

### 示例

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

## `stockOnShares(end_t)`

其它股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回其它股。

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

返回：float

### 示例

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

## `stockPpShares(end_t)`

募集法人股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回募集法人股。

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

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SZ000002');
v:=StockPPShares (20051107T);
return v;
```

## `stockPriorShares(end_t)`

优先股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回优先股。

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

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SZ000002');
v:=StockPriorShares (20051107T);
return v;
```

## `stockRdShares(end_t)`

有限售其他内资股，与系统参数(证券代码)相关 系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的） 有限售其他内资股=有限售境内法人股+有限售境内自然人股

| 参数    | 类型     | 说明          |
| ------- | -------- | ------------- |
| `end_t` | datetime | 日期,截止日期 |

返回：bool

### 示例

```tsl
SetSysParam(pn_stock(),"SZ000002");
return StockRDShares(20200924T); //结果：9881598
```

## `stockRfShares(end_t)`

有限售外资股，与系统参数(证券代码)相关 系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的） 有限售外资股=有限售境外法人股+有限售境外自然人持股

| 参数    | 类型     | 说明          |
| ------- | -------- | ------------- |
| `end_t` | datetime | 日期,截止日期 |

返回：bool

### 示例

```tsl
SetSysParam(pn_stock(),"SH600038");
return StockRFShares(20250924T); //结果：2648616
```

## `stockRShares(end_t)`

有限售股份，与系统参数(证券代码)相关 系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

| 参数    | 类型     | 说明          |
| ------- | -------- | ------------- |
| `end_t` | datetime | 日期,截止日期 |

返回：bool

### 示例

```tsl
SetSysParam(pn_stock(),"SZ000002");
return StockRShares(20200924T); //结果：9881598
```

## `stockShare(end_t)`

股本结构。 从股本结构表中取出截止至EndT的股本结构表数据。

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

返回：array

### 示例

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

## `stockShares(end_t, return_field)`

股本数量，单位（股）。

| 参数           | 类型     | 说明             |
| -------------- | -------- | ---------------- |
| `end_t`        | datetime | 实数，截止日期； |
| `return_field` | any      | 整数，股本类别； |

返回：float

### 示例

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

## `stockShares3(return_field)`

最新股本数量，与系统参数（证券代码\时间）相关 系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

| 参数           | 类型 | 说明                |
| -------------- | ---- | ------------------- |
| `return_field` | int  | 用户自定义,股本类别 |

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SZ000002');
setsysparam(pn_date(),inttodate(20120830));
v:=StockShares3(SSS_TotalSharesField());
return v;
```

## `stockSharesRatio(end_t, share_name1, share_name2)`

股本比(%)。 （1）股本比(%)=ShareName1的股本/ShareName2的股本\*100； （2）函数从股本结构表中取出EndT的ShareName1和ShareName2两个股本数据，根据算法可以计算出股本比(%)。

| 参数          | 类型     | 说明                     |
| ------------- | -------- | ------------------------ |
| `end_t`       | datetime | 实数，截止日期；         |
| `share_name1` | any      | 整数，股本类型（分子）； |
| `share_name2` | any      | 整数，股本类型（分母）； |

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SZ000002');
v:=StockSharesRatio(inttodate(20120830),SSS_NSharesField(),
SSS_TotalSharesField());
return v;
```

## `stockSoShares(end_t)`

国家股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回国家股。

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

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SZ000002');
v:=StockSOShares(20051107T);
return v;
```

## `stockSShares(end_t)`

发起人股，单位：（股）。 （1）发起人股＝国家股+境内法人股+外资法人股+其他法人股； （2）从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，可以取出最近的国家股、境内法人股等股本数据，根据算法计算出发起人股。

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

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SZ000002');
v:=StockSShares(20051107T);
return v;
```

## `stockStuffShares(end_t)`

内部职工股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回内部职工股。

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

返回：float

### 示例

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

## `stockTlShares(end_t)`

高管股，单位：（股）。 从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回高管股。

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

返回：float

### 示例

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

## `stockTotalShares(end_t)`

总股本，单位：（股）。 与系统参数（证券代码），系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的） （1）总股本＝未流通股＋流通股； （2）从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，可以取出最近的未流通股、流通股等股本数据，根据算法计算出总股本。

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

返回：float

### 示例

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

## `stockTotalShares3()`

最新总股本 函数默认截止日为今天，如果在调用该函数之前，设置当前日期，则返回设置的日期的总股本。 与系统参数（证券代码，时间），系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

返回：float

### 示例

```tsl
oV:=BackUpSystemParameters2();
Setsysparam(pn_date(),inttodate(20120930));
setsysparam(pn_stock(),'SZ000002');
v:=StockTotalShares3();
return v;
```

## `stockTotalSharesBeforeIssue()`

总股本（发行前）。

返回：float

### 示例

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

## `stockTotalSharesForPs(end_t)`

总股本（计算每股指标用），单位：（股）。 （1）从股本结构表中，取出小于变动日小于EndT且最接近EndT的记录，返回高管股； （2）如果EndT未上市，则取上市前的总股本（发行后总股本-发行额度）。如果上市首日没有数据，则取变动表中的第一条记录。

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

返回：float

### 示例

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

## `stockTotalSharesRight(end_t)`

总股本（加权），单位：（股）。 （1）加权的总股本=加权的债转股+加权新股+加权增发； （2）根据EndT得到期初报告期RDate； （3）加权债转股=RDate至EndT之前的债转股总和/RDate至EndT之前的月份； 加权增发=RDate至EndT之前的增发股总和/RDate至EndT之前的月份； 加权新股=RDate至EndT之前的增发股总和/RDate至EndT之前的天数；

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

返回：float

### 示例

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

## `stockUnShares(end_t)`

无限售条件股份，与系统参数(证券代码)相关 系统参数PN_ChangedDateMode()相关，默认PN_ChangedDateMode()=0，同时考虑变动日和公布日，PN_ChangedDateMode()=1，表示只考虑变动日的情况（以前的）

| 参数    | 类型     | 说明          |
| ------- | -------- | ------------- |
| `end_t` | datetime | 日期,截止日期 |

返回：bool|void

### 示例

```tsl
SetSysParam(pn_stock(),"SZ000002");
return StockUNShares(20200924T); //结果：11607850603
```

## `tSharesOfA(info_id, end_t)`

A股总股本，与系统参数(股票)相关。

| 参数      | 类型     | 说明               |
| --------- | -------- | ------------------ |
| `info_id` | int      | 整数。数据表索引号 |
| `end_t`   | datetime | 日期。截止日期     |

返回：float

### 示例

```tsl
SetSysParam(PN_Stock(),'SZ000002');
return TSharesOfA(16,20230801T);
```

## `tSharesOfB(info_id, end_t)`

B股总股本，与系统参数(股票)相关。

| 参数      | 类型     | 说明               |
| --------- | -------- | ------------------ |
| `info_id` | int      | 整数。数据表索引号 |
| `end_t`   | datetime | 日期。截止日期     |

返回：float

### 示例

```tsl
SetSysParam(PN_Stock(),'SZ000002');
return TSharesOfB(16,20230801T);
```

## `shareStructure(bk_name, end_t, low_v, high_v, step_v, value)`

返回指定板块指定日期股本结构相关数据。

| 参数      | 类型    | 说明                 |
| --------- | ------- | -------------------- |
| `bk_name` | String  | 字符串类型，板块名称 |
| `end_t`   | Date    | 日期类型，截止日期   |
| `low_v`   | Real    | 实数，股本下限(万)   |
| `high_v`  | Real    | 实数，股本上限(万)   |
| `step_v`  | Real    | 实数，统计间距(万)   |
| `value`   | Integer | 整型，分类标准       |

返回：Array

### 示例

```tsl
//返回上证A股在20201231股本结构相关的数据
return shareStructure("上证A股",20201231T,0,10,1,0);
//结果：
```
