playbook/docs/tsl/syntax_book/function/financial/option.md

2097 lines
41 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#### 期权
##### 内容
- 基本信息
- 期权熔断机制
- 活跃成交持仓
- 期权风险指标
- 期权结算参数
- 期权基本函数
- 期权主力合约
- 期权合约代码
- 行权交收信息
##### 基本信息
###### 内容
- 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月5903A20250123T的行权价
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);
```