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