#### 期权

##### 内容

- 基本信息
- 期权熔断机制
- 活跃成交持仓
- 期权风险指标
- 期权结算参数
- 期权基本函数
- 期权主力合约
- 期权合约代码
- 行权交收信息

##### 基本信息

###### 内容

- optioninfoceilingprice
- OptionInfoIsTradeRange
- OptionInfoEndTBetweenMaturityDays
- OptionInfoUnitDeposit
- OptionInfoOpenPosition
- OptionInfoIsNewContract
- OptionInfoLast5DayContractAdjusted
- OptionInfoStatusInfo
- OptionInfoConsSuspended
- OptionInfoFloorPrice
- OptionInfoIsBetweenMaturityLess5Days
- 中间函数
- OP_ResidualMaturity
- OptionToPZ
- OptionContractUnit
- OptionInfoStrikePrice

###### optioninfoceilingprice

用途：获取指定日期的涨幅上限价格。
参数：

- endt：交易日期
  返回：数值。

###### OptionInfoIsTradeRange

用途：判断指定日期是否处于交易区间。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
// "CF201C13800"在2021-09-24指定日是否交易区间
SetSysParam(pn_stock(), "CF201C13800");
return OptionInfoIsTradeRange(20210924T); // 结果：1
```

###### OptionInfoEndTBetweenMaturityDays

用途：计算指定日期距到期日的天数。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
// "IO2306-P-4200"在2022-6-27距离到期日天数
SetSysParam(pn_stock(), "IO2306-P-4200");
return OptionInfoEndTBetweenMaturityDays(20220627T); // 结果：249
```

###### OptionInfoUnitDeposit

用途：获取指定日期的单位保证金。
参数：

- endt：交易日期

返回：数值。

范例

```tsl
// "OP10004233"在2022-6-27的单位保证金
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoUnitDeposit(20220627T); // 结果：15425.6
```

###### OptionInfoOpenPosition

用途：获取指定日期的开仓状态。
参数：

- endt：交易日期

返回：状态值。

范例

```tsl
// "OP10004233"在2022-6-27的开仓状态
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoOpenPosition(20220627T); // 结果：可开仓
```

###### OptionInfoIsNewContract

用途：判断指定日期是否为新挂牌合约。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
// "OP10004233"在2022-6-27的是否新挂牌合约
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoIsNewContract(20220627T); // 结果：否
```

###### OptionInfoLast5DayContractAdjusted

用途：判断最近 5 个交易日内合约是否发生调整。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
// "OP10004233"在2022-6-27的最近5个交易日内合约是否发生过调整
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoLast5DayContractAdjusted(20220627T); // 结果：否
```

###### OptionInfoStatusInfo

用途：获取指定日期的合约状态信息。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
// "OP10004233"在2022-6-27的期权合约状态信息
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoStatusInfo(20220627T); // 结果：0000E0
```

###### OptionInfoConsSuspended

用途：判断指定日期是否连续停牌。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
// "OP10004233"在2022-6-27是否连续停牌
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoConsSuspended(20220627T); // 结果：否
```

###### OptionInfoFloorPrice

用途：获取指定日期的跌幅下限价格。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
// "OP10004233"在2022-6-27跌幅下限价格
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoFloorPrice(20220627T); // 结果：0.57
```

###### OptionInfoIsBetweenMaturityLess5Days

用途：判断指定日期距离到期日是否不足 5 个交易日。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
// "OP10004233"在2022-6-27是否距离到期日不足5个交易日
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoIsBetweenMaturityLess5Days(20220627T); // 结果：否
```

###### 中间函数

####### 内容

- optiongetdatabyendt

####### optiongetdatabyendt
用途：中间函数：按日期获取期权基本信息数据。
参数：

- endt：交易日期
  返回：处理后的结果值。

###### OP_ResidualMaturity

用途：计算剩余到期年限（年）。
参数：无。
返回：处理后的结果值。

范例

```tsl
endt := 20221220T;
SetSysParam(pn_stock(), "OP10004850");
SetSysParam(pn_date(), endt);
return OP_ResidualMaturity(); // 0.0219（年）
```

###### OptionToPZ

用途：获取期权品种代码。
参数：无。
返回：字符串。

范例

```tsl
// "CU2101C39000" 的期权品种代码
SetSysParam(pn_stock(), "CU2101C39000");
return OptionToPZ();
// 结果："CU"
```

###### OptionContractUnit

用途：获取指定日期的合约单位。
参数：

- endt：交易日期

返回：数值。

范例

```tsl
// "CU2101C39000"2021-02-01的合约单位
SetSysParam(pn_stock(), "CU2101C39000");
return OptionContractUnit(20210201T);
// 结果：5
```

###### OptionInfoStrikePrice

用途：获取指定日期的行权价。
参数：

- endt：交易日期

返回：数值。

范例

```tsl
// 返回OP10008613 500ETF购2月5903A，20250123T的行权价
SetSysParam(pn_stock(), "OP10008613");
endt := 20250123T;
return OptionInfoStrikePrice(endt);
// 结果：5.903
```

##### 期权熔断机制

###### 内容

- optioncbisstop
- optioncbsuspendtime
- optioncblaststopdate
- optioncbstopcount
- 中间函数
- optioncbzfaboveminiquotenum
- optioncbzdthresh
- optioncbstopcountqj

###### optioncbisstop

用途：判断期权是否触发熔断。
参数：按调用约定传入。
返回：处理后的结果值。

###### optioncbsuspendtime

用途：获取熔断暂停时间。
参数：按调用约定传入。
返回：处理后的结果值。

###### optioncblaststopdate

用途：获取最近一次熔断日期。
参数：按调用约定传入。
返回：处理后的结果值。

###### optioncbstopcount

用途：获取熔断次数。
参数：按调用约定传入。
返回：处理后的结果值。

###### 中间函数

####### 内容

- optioncbgetdataperiod

####### optioncbgetdataperiod
用途：中间函数：获取熔断周期数据。
参数：按调用约定传入。
返回：处理后的结果值。

###### optioncbzfaboveminiquotenum

用途：熔断机制相关统计量。
参数：按调用约定传入。
返回：处理后的结果值。

###### optioncbzdthresh

用途：获取熔断涨跌幅阈值。
参数：按调用约定传入。
返回：处理后的结果值。

###### optioncbstopcountqj

用途：获取区间内熔断次数。
参数：按调用约定传入。
返回：处理后的结果值。

##### 活跃成交持仓

###### 内容

- 指定日
- 中间函数

###### 指定日

####### 内容

- optionubcsumnnetvolgrow
- optionubcsumnvolgrow
- optionubcnonvolgrow
- optionubcinstitutnetvolgrow
- optionubcsumnnetoigrow
- optionubcnonoigrow
- optionubcinstitutoigrow
- optionubcnonnetvolgrow
- optionubcinstitutnetoigrow
- optionubcsumnoigrow
- optionubcnonnetoigrow
- optionubcinstitutvolgrow
- OptionUBCSumNVol
- OptionUBCInstitutOIRank
- OptionUBCInstitutOIPercent
- OptionUBCNoNOIPercent
- OptionUBCInstitutPercent
- OptionUBCNoNNetVol
- OptionUBCNoNOIName
- OptionUBCInstitutOI
- OptionUBCSumNNetVol
- OptionUBCSumNOIPercent
- OptionUBCInstitutNetVol
- OptionUBCInstitutVol
- OptionUBCInstitutNetOI
- OptionUBCNoNVolName
- OptionUBCNoNPercent
- OptionUBCNoNNetOI
- OptionUBCNoNOI
- OptionUBCInstitutVolRank
- OptionUBCNoNVol
- OptionUBCSumNOI
- OptionUBCSumNPercent
- OptionUBCSumNNetOI

####### optionubcsumnnetvolgrow
用途：前 N 名净成交量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcsumnvolgrow
用途：前 N 名成交量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcnonvolgrow
用途：非机构成交量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcinstitutnetvolgrow
用途：机构净成交量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcsumnnetoigrow
用途：前 N 名净持仓量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcnonoigrow
用途：非机构持仓量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcinstitutoigrow
用途：机构持仓量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcnonnetvolgrow
用途：非机构净成交量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcinstitutnetoigrow
用途：机构净持仓量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcsumnoigrow
用途：前 N 名持仓量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcnonnetoigrow
用途：非机构净持仓量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### optionubcinstitutvolgrow
用途：机构成交量变动。
参数：按调用约定传入。
返回：处理后的结果值。

####### OptionUBCSumNVol

用途：指定日成交量排名前 N 名合计。
参数：

- endt：交易日期
- n：统计数量或名次
- flag：类型标记（按示例传入）

返回：成交量合计值。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNVol(20200807T, 1, 0);
// 结果：339980
```

####### OptionUBCInstitutOIRank

用途：指定日指定机构持仓量排名。
参数：

- endt：交易日期
- institution：机构名称
- flag：类型标记（按示例传入）

返回：持仓量排名（整数）。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutOIRank(20200807T, '华泰证券', 0);
// 结果：3
```

####### OptionUBCInstitutOIPercent

用途：指定日指定机构持仓量占比。
参数：

- endt：交易日期
- institution：机构名称
- flag：类型标记（按示例传入）

返回：持仓量占比（%）。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutOIPercent(20200807T, '华泰证券', 0);
// 结果：5.29416436328386
```

####### OptionUBCNoNOIPercent

用途：指定日持仓量排名第 N 的机构持仓占比。
参数：

- endt：交易日期
- n：统计数量或名次
- flag：类型标记（按示例传入）

返回：持仓量占比（%）。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNOIPercent(20200807T, 1, 0);
// 结果：7.58237322661357
```

####### OptionUBCInstitutPercent

用途：指定日指定机构成交量占比。
参数：

- endt：交易日期
- institution：机构名称
- flag：类型标记（按示例传入）

返回：成交量占比（%）。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutPercent(20200807T, '华泰证券', 0);
// 结果：15.4328861467173
```

####### OptionUBCNoNNetVol

用途：指定日净成交量排名第 N 的机构净成交量。
参数：

- endt：交易日期
- n：统计数量或名次

返回：净成交量。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNNetVol(20200807T, 1);
// 结果：-9468
```

####### OptionUBCNoNOIName

用途：指定日持仓量排名第 N 的机构名称。
参数：

- endt：交易日期
- n：统计数量或名次

返回：机构名称。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNOIName(20200807T, 1);
// 结果：华泰证券
```

####### OptionUBCInstitutOI

用途：指定日指定机构持仓量。
参数：

- endt：交易日期
- institution：机构名称
- flag：类型标记（按示例传入）

返回：持仓量。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutOI(20200807T, "华泰证券", 1);
// 结果：177850
```

####### OptionUBCSumNNetVol

用途：指定日净成交量排名前 N 名合计。
参数：

- endt：交易日期
- n：统计数量或名次

返回：净成交量合计值。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNNetVol(20200807T, 1);
// 结果：-9468
```

####### OptionUBCSumNOIPercent

用途：指定日持仓量排名前 N 名占比合计。
参数：

- endt：交易日期
- n：统计数量或名次
- flag：类型标记（按示例传入）

返回：持仓量占比合计（%）。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNOIPercent(20200807T, 1, 0);
// 结果：7.58237322661357
```

####### OptionUBCInstitutNetVol

用途：指定日指定机构净成交量。
参数：

- endt：交易日期
- institution：机构名称

返回：净成交量。

算法指定日指定机构净认购成交量变动=今日净认购-上日净认购范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutNetVol(20200807T, '华泰证券');
// 结果：-26123
```

####### OptionUBCInstitutVol

用途：指定日指定机构成交量。
参数：

- endt：交易日期
- institution：机构名称
- flag：类型标记（按示例传入）

返回：成交量。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutVol(20200807T, '华泰证券', 1);
// 结果：313857
```

####### OptionUBCInstitutNetOI

用途：指定日指定机构净持仓量。
参数：

- endt：交易日期
- institution：机构名称

返回：净持仓量。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutNetOI(20200807T, '华泰证券');
// 结果：48525
```

####### OptionUBCNoNVolName

用途：指定日成交量排名第 N 的机构名称。
参数：

- endt：交易日期
- n：统计数量或名次
- flag：类型标记（按示例传入）

返回：机构名称。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNVolName(20200807T, 1, 1);
// 结果：广发证券
```

####### OptionUBCNoNPercent

用途：指定日成交量排名第 N 的占比。
参数：

- endt：交易日期
- n：统计数量或名次
- flag：类型标记（按示例传入）

返回：成交量占比（%）。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNPercent(20200807T, 1, 1);
// 结果：14.1982876756464
```

####### OptionUBCNoNNetOI

用途：指定日净持仓量排名第 N 的机构净持仓量。
参数：

- endt：交易日期
- n：统计数量或名次

返回：净持仓量。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNNetOI(20200807T, 1);
// 结果：-7371
```

####### OptionUBCNoNOI

用途：指定日持仓量排名第 N 的持仓量。
参数：

- endt：交易日期
- n：统计数量或名次
- flag：类型标记（按示例传入）

返回：持仓量。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNOI(20200807T, 1, 1);
// 结果：177850
```

####### OptionUBCInstitutVolRank

用途：指定日指定机构成交量排名。
参数：

- endt：交易日期
- institution：机构名称
- flag：类型标记（按示例传入）

返回：成交量排名（整数）。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutVolRank(20200807T, '广发证券', 1);
// 结果：1
```

####### OptionUBCNoNVol

用途：指定日成交量排名第 N 的成交量。
参数：

- endt：交易日期
- n：统计数量或名次
- flag：类型标记（按示例传入）

返回：成交量。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNVol(20200807T, 1, 1);
// 结果：330512
```

####### OptionUBCSumNOI

用途：指定日持仓量排名前 N 名合计。
参数：

- endt：交易日期
- n：统计数量或名次
- flag：类型标记（按示例传入）

返回：持仓量合计值。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNOI(20200807T, 1, 1);
// 结果：177850
```

####### OptionUBCSumNPercent

用途：指定日成交量排名前 N 名占比合计。
参数：

- endt：交易日期
- n：统计数量或名次
- flag：类型标记（按示例传入）

返回：成交量占比合计（%）。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNPercent(20200807T, 1, 1);
// 结果：14.1982876756464
```

####### OptionUBCSumNNetOI

用途：指定日净持仓量排名前 N 名合计。
参数：

- endt：交易日期
- n：统计数量或名次

返回：净持仓量合计值。

范例

```tsl
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNNetOI(20200807T, 3);
// 结果：62518
```

###### 中间函数

####### 内容

- optionubcqkperiod
- OptionUBCQK

####### optionubcqkperiod
用途：中间函数：获取活跃成交持仓区间数据。
参数：按调用约定传入。
返回：处理后的结果值。

####### OptionUBCQK

用途：获取指定标的在区间内的活跃成交持仓统计值。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）
- value：数值参数

返回：区间统计值。

范例

```tsl
return OptionUBCQK("SH510050", 20200807T, 0, 0, 3);
```

结果:

##### 期权风险指标

###### 内容

- 中间函数
- OptionRITheta
- OptionRIDelta
- OptionRIRHO
- OptionRIVega
- OptionRIGamma

###### 中间函数

####### 内容

- optionriskindicator

####### optionriskindicator
用途：中间函数：获取期权风险指标原始数据。
参数：按调用约定传入。
返回：处理后的结果值。

###### OptionRITheta

用途：获取期权 Theta 风险指标。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
SetSysParam(pn_stock(), "OP10006730");
return OptionRITheta(20240126T);
// 结果：-0.119
```

###### OptionRIDelta

用途：获取期权 Delta 风险指标。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
SetSysParam(pn_stock(), "OP10006730");
return OptionRIDelta(20240126T);
// 结果：0.795
```

###### OptionRIRHO

用途：获取期权 Rho 风险指标。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
SetSysParam(pn_stock(), "OP10006730");
return OptionRIRHO(20240126T);
// 结果：1.055
```

###### OptionRIVega

用途：获取期权 Vega 风险指标。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
SetSysParam(pn_stock(), "OP10006730");
return OptionRIVega(20240126T);
// 结果：0.545
```

###### OptionRIGamma

用途：获取期权 Gamma 风险指标。
参数：

- endt：交易日期

返回：处理后的结果值。

范例

```tsl
SetSysParam(pn_stock(), "OP10006730");
return OptionRIGamma(20240126T);
// 结果：0.838
```

##### 期权结算参数

###### 内容

- Optionspqk
- Optionspqk2
- OptionSMarginAdjustmentFactor
- OptionSMiniGuaranteeFactor
- OptionSPClosingProceduresFee
- OptionSPOpeningChargeFee
- OptionSPPerformanceFee
- OptionSPShortClosingProceduresFee
- OptionSPShortOpeningChargeFee
- OptionSPTradingMargin
- 中间函数

###### Optionspqk

用途：获取区间期权结算参数数据。
参数：

- start_date：起始日期
- end_date：结束日期

返回：处理后的结果值。

范例

```tsl
// "al2104C13400"在20210312~20210322的区间期权结算参数数据
SetSysParam(pn_stock(), "al2104C13400");
return OptionSPQK(20210312T, 20210322T);
```

###### Optionspqk2

用途：获取指定窗口期权结算参数数据。
参数：

- value：数值参数

返回：处理后的结果值。

范例

```tsl
// "al2104C13400"在20210322的5日结算参数数据
SetSysParam(pn_stock(), "al2104C13400");
SetSysParam(PN_Date(), 20210322T);
return OptionSPQK2(5);
```

###### OptionSMarginAdjustmentFactor

用途：获取保证金调整系数。
参数：无。
返回：处理后的结果值。

范例

```tsl
// "IO2106-P-5300"在20210322日的保证金调整系数(%)
SetSysParam(pn_stock(), "IO2106-P-5300");
SetSysParam(PN_Date(), 20210322T);
return OptionSMarginAdjustmentFactor(); // 结果：12
```

###### OptionSMiniGuaranteeFactor

用途：获取最低保障系数。
参数：无。
返回：处理后的结果值。

范例

```tsl
// "IO2106-P-5300"在20210322日的最低保障系数
SetSysParam(pn_stock(), "IO2106-P-5300");
SetSysParam(PN_Date(), 20210322T);
return OptionSMiniGuaranteeFactor(); // 结果：0.5
```

###### OptionSPClosingProceduresFee

用途：获取平仓手续费。
参数：无。
返回：处理后的结果值。

范例

```tsl
// "MA110C2375"在20210322日的平仓手续费额
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPClosingProceduresFee(); // 结果：0.5
```

###### OptionSPOpeningChargeFee

用途：获取开仓手续费。
参数：无。
返回：处理后的结果值。

范例

```tsl
// "MA110C2375"在20210322日的开仓手续费额
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPOpeningChargeFee(); // 结果：0.5
```

###### OptionSPPerformanceFee

用途：获取履约手续费。
参数：无。
返回：处理后的结果值。

范例

```tsl
// "MA110C2375"在20210322日的行权/履约手续费额
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPPerformanceFee(); // 结果：0.5
```

###### OptionSPShortClosingProceduresFee

用途：获取短线平仓手续费。
参数：无。
返回：处理后的结果值。

范例

```tsl
// "MA110C2375"在20210322日的短线平仓手续费额
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPShortClosingProceduresFee(); // 结果：0
```

###### OptionSPShortOpeningChargeFee

用途：获取短线开仓手续费。
参数：无。
返回：处理后的结果值。

范例

```tsl
// "MA110C2375"在20210322日的短线开仓手续费额
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPShortOpeningChargeFee(); // 结果：0.5
```

###### OptionSPTradingMargin

用途：获取交易保证金。
参数：无。
返回：处理后的结果值。

范例

```tsl
// "MA110C2375"在20210322日的交易保证金
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPTradingMargin(); // 结果：3090
```

###### 中间函数

####### 内容

- Stock2OptionSPId

####### Stock2OptionSPId
用途：中间函数：根据标的代码获取期权结算参数 ID。
参数：按调用约定传入。
返回：处理后的结果值。

##### 期权基本函数

###### 内容

- OP_GetOptionChain
- OP_BKDateOverview
- OP_GetBidAskData
- OP_GetDaysMaturity
- OP_GetPutAndCallratio
- OP_GetRiskFreeRate
- OP_GetUnderlyingSecurity
- OP_HV
- OP_IVGreeks

###### OP_GetOptionChain

用途：获取期权链数据。
参数：

- code：标的或合约代码
- endt：交易日期

返回：处理后的结果值。

范例

```tsl
return OP_GetOptionChain("SH510050", 20150209T);
```

###### OP_BKDateOverview

用途：日期时间处理函数。
参数：

- code：标的或合约代码
- flag：类型标记（按示例传入）

返回：日期或时间值。

范例

```tsl
return OP_BKDateOverview("SH510050", 1);
```

###### OP_GetBidAskData

用途：获取期权合约买卖盘数据。
参数：

- data：合约列表

返回：处理后的结果值。

范例

```tsl
ret := array(("代码":"CU2106"),
("代码":"IF2106"),
("代码":"PG2106"), );
return OP_GetBidAskData(ret);
```

###### OP_GetDaysMaturity

用途：计算到期天数或到期年化天数。
参数：

- start_date：起始日期
- end_date：结束日期

返回：处理后的结果值。

范例

```tsl
return OP_GetDaysMaturity(20150208T, 20150228T); // 0.6575
```

###### OP_GetPutAndCallratio

用途：计算指定品种的认购/认沽成交量比值。
参数：

- code：标的或合约代码
- endt：交易日期

返回：处理后的结果值。

算法到日期为Ex_endt日的指定期权品种为StockID的 在指定时间endt的所有认购期权成交量与认沽期权成交量的比值，到期日<=0表示取所有代码范例

```tsl
return OP_GetPutAndCallratio("cu", 20210514T);
// 1.33637606170067
```

###### OP_GetRiskFreeRate

用途：获取无风险利率。
参数：

- endt：交易日期
- flag：类型标记（按示例传入）

返回：处理后的结果值。

范例

```tsl
return OP_GetRiskFreeRate(20150208T, 0); // 2.75
```

###### OP_GetUnderlyingSecurity

用途：获取期权对应的标的证券代码。
参数：无。
返回：处理后的结果值。

范例

```tsl
return OP_GetUnderlyingSecurity();
```

###### OP_HV

用途：计算历史波动率。
参数：

- code：标的或合约代码
- endt：交易日期
- value：数值参数

返回：处理后的结果值。

算法

获取日期区间的收盘价

计算日期区间股价环比增长自然对数序列的标准差作为日波动率（%）

按一年250的交易日取年化波动率范例

```tsl
// 取SZ000002在2021-01-01前六个月的nian波动率
return OP_HV("SZ000002", 20210101T, -6); // 25.7907888130722
```

###### OP_IVGreeks

用途：计算隐含波动率及希腊值。
参数：

- flag：类型标记（按示例传入）
- value：数值参数
- value2：数值参数
- value3：数值参数
- value4：数值参数
- value5：数值参数

返回：处理后的结果值。

范例

```tsl
return OP_IVGreeks(0, 18, 20, 2, 5, 1.00);
```

##### 期权主力合约

###### 内容

- OptionZLId
- OptionZLId2
- OptionCZLId
- OptionCZLId2
- OptionFlatZLId
- OptionFlatZLId2
- OptionFlatCZLId
- OptionFlatCZLId2
- OptionFlatValueId
- OptionVirtualValueID
- OptionRealValueID
- OptionIsFlatValueID
- OptionIsFlatValueID2
- OptionIsRealValueID
- OptionIsRealValueID2
- OptionIsVirtualValueID
- OptionIsVirtualValueID2
- 中间函数
- OptionZLId3

###### OptionZLId

用途：获取指定标的在指定日的期权主力合约代码。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的期权主力合约
return OptionZLId("SH510050", 20210331T, 0, -1);
// 结果：OP10003266
```

###### OptionZLId2

用途：获取系统参数标的在指定日的期权主力合约代码。
参数：

- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的期权主力合约
SetSysParam(pn_stock(), "SH510050");
return OptionZLId2(20210331T, 0, -1);
// 结果：OP10003266
```

###### OptionCZLId

用途：获取指定标的在指定日的期权次主力合约代码。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的期权次主力合约
return OptionCZLId("SH510050", 20210331T, 0, -1);
// 结果：OP10003273
```

###### OptionCZLId2

用途：获取系统参数标的在指定日的期权次主力合约代码。
参数：

- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的期权次主力合约
SetSysParam(pn_stock(), 'SH510050');
return OptionCZLId2(20210331T, 0, -1);
// 结果：OP10003273
```

###### OptionFlatZLId

用途：获取指定标的在指定日的平值主力合约代码。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的期权平值主力合约
return OptionFlatZLId("SH510050", 20210331T, 0, 0);
// 结果：OP10003265
```

###### OptionFlatZLId2

用途：获取系统参数标的在指定日的平值主力合约代码。
参数：

- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的期权平值主力合约
SetSysParam(pn_stock(), "SH510050");
return OptionFlatZLId2(20210331T, 0, 0);
// 结果：OP10003265
```

###### OptionFlatCZLId

用途：获取指定标的在指定日的平值次主力合约代码。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的期权平值次主力合约
return OptionFlatCZLId("SH510050", 20210331T, 0, 0);
// 返回：OP10003274
```

###### OptionFlatCZLId2

用途：获取系统参数标的在指定日的平值次主力合约代码。
参数：

- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的期权平值次主力合约
SetSysParam(pn_stock(), "SH510050");
return OptionFlatCZLId2(20210331T, 0, 0);
// 返回：OP10003274
```

###### OptionFlatValueId

用途：获取指定标的在指定日的平值合约代码（认购/认沽由 flag 指定）。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的认购的平值合约
return OptionFlatValueId("SH510050", 20210331T, 0);
```

###### OptionVirtualValueID

用途：获取指定标的在指定日的虚值合约代码（认购/认沽由 flag 指定）。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的认购的虚值合约
return OptionVirtualValueID("SH510050", 20210331T, 0);
```

###### OptionRealValueID

用途：获取指定标的在指定日的实值合约代码（认购/认沽由 flag 指定）。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）

返回：合约代码。

范例

```tsl
// "SH510050"在20210331日的认购的实值合约
return OptionRealValueID("SH510050", 20210331T, 0);
```

###### OptionIsFlatValueID

用途：判断指定合约在指定日是否为平值合约。
参数：

- code：标的或合约代码
- endt：交易日期

返回：是否满足条件（1/0）。

范例

```tsl
// "OP10003265 50ETF购4月3600"在20210331日是否平值合约
return OptionIsFlatValueID("OP10003265", 20210331T);
// 返回：1
```

###### OptionIsFlatValueID2

用途：判断系统参数合约在指定日是否为平值合约。
参数：

- endt：交易日期

返回：是否满足条件（1/0）。

范例

```tsl
// "OP10003265 50ETF购4月3600"在20210331日是否平值合约
SetSysParam(pn_stock(), "OP10003265");
return OptionIsFlatValueID2(20210331T);
// 结果：1
```

###### OptionIsRealValueID

用途：判断指定合约在指定日是否为实值合约。
参数：

- code：标的或合约代码
- endt：交易日期

返回：是否满足条件（1/0）。

范例

```tsl
// "OP10003265 50ETF购4月3600"在20210331日是否实值合约
return OptionIsRealValueID("OP10003265", 20210331T);
// 返回：0
```

###### OptionIsRealValueID2

用途：判断系统参数合约在指定日是否为实值合约。
参数：

- endt：交易日期

返回：是否满足条件（1/0）。

范例

```tsl
// "OP10003265 50ETF购4月3600"在20210331日是否实值合约
SetSysParam(pn_stock(), "OP10003265");
return OptionIsRealValueID2(20210331T);
// 结果：0
```

###### OptionIsVirtualValueID

用途：判断指定合约在指定日是否为虚值合约。
参数：

- code：标的或合约代码
- endt：交易日期

返回：是否满足条件（1/0）。

范例

```tsl
// "OP10003265 50ETF购4月3600"在20210331日是否虚值合约
return OptionIsVirtualValueID("OP10003265", 20210331T);
// 返回：0
```

###### OptionIsVirtualValueID2

用途：判断系统参数合约在指定日是否为虚值合约。
参数：

- endt：交易日期

返回：是否满足条件（1/0）。

范例

```tsl
// "OP10003265 50ETF购4月3600"在20210331日是否虚值合约
SetSysParam(pn_stock(), "OP10003265");
return OptionIsVirtualValueID2(20210331T);
// 结果：0
```

###### 中间函数

####### 内容

- OptionCheckIdsEndT
- OptionIsValueID
- OptionCheckValueIds
- OptionsZLId

####### OptionCheckIdsEndT

用途：校验指定标的在指定日的期权主力合约有效性。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：校验结果（1/0）。

范例

```tsl
return OptionCheckIdsEndT('SH510050', 20210331T, -1, 0);
```

####### OptionIsValueID

用途：判断指定合约在指定日是否满足指定价态（由 flag 指定）。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）

返回：是否满足条件（1/0）。

范例

```tsl
// "OP10003265 50ETF购4月3600"在20210331日是否平值合约
return OptionIsValueID("OP10003265", 20210331T, 0);
// 返回：1
```

####### OptionCheckValueIds

用途：校验指定标的在指定日的价态合约有效性。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：校验结果（1/0）。

范例

```tsl
return OptionCheckValueIds('SH510050', 20210331T, 1, 0);
```

####### OptionsZLId

用途：获取指定标的在指定日的期权主力合约列表。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）
- flag3：类型标记（按示例传入）

返回：合约代码序列。

范例

```tsl
return OptionsZLId('SH510050', 20210331T, -1, 1, 0);
// 结果：OP10003264
```

###### OptionZLId3

用途：获取指定日的期权主力合约序列（支持近月/标的主力算法）。
参数：

- endt：交易日期

返回：合约代码序列。

算法

模型中提供了两种算法：

算法一：近月合约，适用所有期权

选取最近到期日且满足到期日大于等于N日的期权合约序列，即若近月到期日与指定日区间天数小于N日，则判断次近月，依此类推，直到满足到期天数>=N日；

算法二：标的主力线合约，仅适用商品期货期权

期货期权标的（商品期货）的主力线对应的当前实际合约作为标的的期权合约序列，

通过上述算法逻辑筛选出期权样本组后，再根据选择的期权类型（认购、认沽、所有）与期权合约类型（所有、平值、实值、虚值）以及对应的档位，最后筛选出符合条件的期权序列作为指定日期权主力。

范例

```tsl
// 取50ETF期权在指定日的期权主力（近月算法）序列
SetSysParam(pn_stock(), "SH510050");
return OptionZLId3(20251112T);

// 取50ETF期权在指定日的期权主力（近月算法,大于等于5个交易日的近月合约）序列
SetSysParam(pn_stock(), "SH510050");
stocks := OptionZLId3(20251120T, 1, 5);
return stocks;

// 取50ETF期权在指定日的期权主力（近月算法,大于等于5个交易日的近月合约）认购平值期权序列
SetSysParam(pn_stock(), "SH510050");
stocks := OptionZLId3(20251120T, 1, 5, 0, 0);
return stocks;

// 取50ETF期权在指定日的期权主力（近月算法,大于等于5个交易日的近月合约）认购实值期权二档序列
SetSysParam(pn_stock(), "SH510050");
stocks := OptionZLId3(20251120T, 1, 5, -1, 1, 2);
return stocks;

// 取50ETF期权在指定日的期权主力（标的主力算法,主力1）一档序列
SetSysParam(pn_stock(), "CU");
stocks := OptionZLId3(20251120T, nil, nil, -1, -1, 1, 1);
return stocks;
```

##### 期权合约代码

###### 内容

- OptionNearContractCallOTM1
- OptionNearContractPutITM1
- OptionNearContractPutOTM1
- OptionNearContractPutOTM2
- OP_SelectOptionData
- OptionNearContractCallOTM2
- OptionNearContractCallITM1
- OptionNearContractCallITM2
- OptionNearContractPutITM2
- OP_SelectOption
- OP_GetOptionChainList

###### OptionNearContractCallOTM1

用途：期权合约代码相关函数。
参数：无。
返回：处理后的结果值。

范例

```tsl
// 返回50ETF为标的，20230511T交易类型为认购的近月虚值一档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractCallOTM1();
// 结果："OP10005266"
```

###### OptionNearContractPutITM1

用途：期权合约代码相关函数。
参数：无。
返回：处理后的结果值。

范例

```tsl
// 返回50ETF为标的，20230511T交易类型为认沽的近月实值一档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractPutITM1();
// 结果："OP10005275"
```

###### OptionNearContractPutOTM1

用途：期权合约代码相关函数。
参数：无。
返回：处理后的结果值。

范例

```tsl
// 返回50ETF为标的，20230511T交易类型为认沽的近月虚值一档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractPutOTM1();
// 结果："OP10005273"
```

###### OptionNearContractPutOTM2

用途：期权合约代码相关函数。
参数：无。
返回：处理后的结果值。

范例

```tsl
// 返回50ETF为标的，20230511T交易类型为认沽的近月虚值二档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractPutOTM2();
// 结果："OP10005272"
```

###### OP_SelectOptionData

用途：期权合约代码相关函数。
参数：

- code：标的或合约代码
- endt：交易日期

返回：处理后的结果值。

范例

```tsl
// 返回"AP"在20240419交易的期权合约列表信息
return OP_SelectOptionData('AP', 20240419T);
```

###### OptionNearContractCallOTM2

用途：期权合约代码相关函数。
参数：无。
返回：处理后的结果值。

范例

```tsl
// 返回50ETF为标的，20230511T交易类型为认购的近月虚值二档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractCallOTM2();
// 结果："OP10005267"
```

###### OptionNearContractCallITM1

用途：期权合约代码相关函数。
参数：无。
返回：处理后的结果值。

范例

```tsl
// 返回50ETF为标的，20230511T交易类型为认购的近月实值一档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractCallITM1();
// 结果："OP10005264"
```

###### OptionNearContractCallITM2

用途：期权合约代码相关函数。
参数：无。
返回：处理后的结果值。

范例

```tsl
// 返回50ETF为标的，20230511T交易类型为认购的近月实值二档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractCallITM2();
// 结果："OP10005263"
```

###### OptionNearContractPutITM2

用途：期权合约代码相关函数。
参数：无。
返回：处理后的结果值。

范例

```tsl
// 返回50ETF为标的，20230511T交易类型为认沽的近月实值二档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractPutITM2();
// 结果："OP10005276"
```

###### OP_SelectOption

用途：期权合约代码相关函数。
参数：

- code：标的或合约代码
- endt：交易日期
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）
- flag3：类型标记（按示例传入）
- flag4：类型标记（按示例传入）

返回：处理后的结果值。

范例

```tsl
// 返回50ETF为标的，20230511T交易类型为认购的近月平值期权合约列表
return OP_SelectOption("SH510050", 20230511T, 1, 0, 0, 0);
// 结果：array("OP10005274")
```

###### OP_GetOptionChainList

用途：期权合约代码相关函数。
参数：

- code：标的或合约代码
- flag：类型标记（按示例传入）
- flag2：类型标记（按示例传入）

返回：处理后的结果值。

范例

```tsl
// 返回50ETF为标的，所有行权方式和期权类型的期权合约列表
return OP_GetOptionChainList("SH510050", -1, -1);
```

##### 行权交收信息

###### 内容

- OptionESIExerciseAmount
- 中间函数

###### OptionESIExerciseAmount

用途：行权交收信息相关函数。
参数：

- endt：交易日期
- flag：类型标记（按示例传入）

返回：处理后的结果值。

范例

```tsl
SetSysParam(PN_Stock(), 'SH510050');
return OptionESIExerciseAmount(20231227T, 0);
// 结果：20893
```

###### 中间函数

####### 内容

- OptionESIGetdata

####### OptionESIGetdata

用途：行权交收信息相关函数。
参数：

- code：标的或合约代码
- endt：交易日期

返回：处理后的结果值。

范例

```tsl
return OptionESIGetdata('SH510050', 20231227T);
```
