41 KiB
期权
内容
- 基本信息
- 期权熔断机制
- 活跃成交持仓
- 期权风险指标
- 期权结算参数
- 期权基本函数
- 期权主力合约
- 期权合约代码
- 行权交收信息
基本信息
内容
- optioninfoceilingprice
- OptionInfoIsTradeRange
- OptionInfoEndTBetweenMaturityDays
- OptionInfoUnitDeposit
- OptionInfoOpenPosition
- OptionInfoIsNewContract
- OptionInfoLast5DayContractAdjusted
- OptionInfoStatusInfo
- OptionInfoConsSuspended
- OptionInfoFloorPrice
- OptionInfoIsBetweenMaturityLess5Days
- 中间函数
- OP_ResidualMaturity
- OptionToPZ
- OptionContractUnit
- OptionInfoStrikePrice
optioninfoceilingprice
用途:获取指定日期的涨幅上限价格。 参数:
- endt:交易日期 返回:数值。
OptionInfoIsTradeRange
用途:判断指定日期是否处于交易区间。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
// "CF201C13800"在2021-09-24指定日是否交易区间
SetSysParam(pn_stock(), "CF201C13800");
return OptionInfoIsTradeRange(20210924T); // 结果:1
OptionInfoEndTBetweenMaturityDays
用途:计算指定日期距到期日的天数。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
// "IO2306-P-4200"在2022-6-27距离到期日天数
SetSysParam(pn_stock(), "IO2306-P-4200");
return OptionInfoEndTBetweenMaturityDays(20220627T); // 结果:249
OptionInfoUnitDeposit
用途:获取指定日期的单位保证金。 参数:
- endt:交易日期
返回:数值。
范例
// "OP10004233"在2022-6-27的单位保证金
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoUnitDeposit(20220627T); // 结果:15425.6
OptionInfoOpenPosition
用途:获取指定日期的开仓状态。 参数:
- endt:交易日期
返回:状态值。
范例
// "OP10004233"在2022-6-27的开仓状态
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoOpenPosition(20220627T); // 结果:可开仓
OptionInfoIsNewContract
用途:判断指定日期是否为新挂牌合约。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
// "OP10004233"在2022-6-27的是否新挂牌合约
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoIsNewContract(20220627T); // 结果:否
OptionInfoLast5DayContractAdjusted
用途:判断最近 5 个交易日内合约是否发生调整。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
// "OP10004233"在2022-6-27的最近5个交易日内合约是否发生过调整
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoLast5DayContractAdjusted(20220627T); // 结果:否
OptionInfoStatusInfo
用途:获取指定日期的合约状态信息。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
// "OP10004233"在2022-6-27的期权合约状态信息
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoStatusInfo(20220627T); // 结果:0000E0
OptionInfoConsSuspended
用途:判断指定日期是否连续停牌。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
// "OP10004233"在2022-6-27是否连续停牌
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoConsSuspended(20220627T); // 结果:否
OptionInfoFloorPrice
用途:获取指定日期的跌幅下限价格。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
// "OP10004233"在2022-6-27跌幅下限价格
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoFloorPrice(20220627T); // 结果:0.57
OptionInfoIsBetweenMaturityLess5Days
用途:判断指定日期距离到期日是否不足 5 个交易日。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
// "OP10004233"在2022-6-27是否距离到期日不足5个交易日
SetSysParam(pn_stock(), "OP10004233");
return OptionInfoIsBetweenMaturityLess5Days(20220627T); // 结果:否
中间函数
####### 内容
- optiongetdatabyendt
####### optiongetdatabyendt 用途:中间函数:按日期获取期权基本信息数据。 参数:
- endt:交易日期 返回:处理后的结果值。
OP_ResidualMaturity
用途:计算剩余到期年限(年)。 参数:无。 返回:处理后的结果值。
范例
endt := 20221220T;
SetSysParam(pn_stock(), "OP10004850");
SetSysParam(pn_date(), endt);
return OP_ResidualMaturity(); // 0.0219(年)
OptionToPZ
用途:获取期权品种代码。 参数:无。 返回:字符串。
范例
// "CU2101C39000" 的期权品种代码
SetSysParam(pn_stock(), "CU2101C39000");
return OptionToPZ();
// 结果:"CU"
OptionContractUnit
用途:获取指定日期的合约单位。 参数:
- endt:交易日期
返回:数值。
范例
// "CU2101C39000"2021-02-01的合约单位
SetSysParam(pn_stock(), "CU2101C39000");
return OptionContractUnit(20210201T);
// 结果:5
OptionInfoStrikePrice
用途:获取指定日期的行权价。 参数:
- endt:交易日期
返回:数值。
范例
// 返回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:类型标记(按示例传入)
返回:成交量合计值。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNVol(20200807T, 1, 0);
// 结果:339980
####### OptionUBCInstitutOIRank
用途:指定日指定机构持仓量排名。 参数:
- endt:交易日期
- institution:机构名称
- flag:类型标记(按示例传入)
返回:持仓量排名(整数)。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutOIRank(20200807T, '华泰证券', 0);
// 结果:3
####### OptionUBCInstitutOIPercent
用途:指定日指定机构持仓量占比。 参数:
- endt:交易日期
- institution:机构名称
- flag:类型标记(按示例传入)
返回:持仓量占比(%)。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutOIPercent(20200807T, '华泰证券', 0);
// 结果:5.29416436328386
####### OptionUBCNoNOIPercent
用途:指定日持仓量排名第 N 的机构持仓占比。 参数:
- endt:交易日期
- n:统计数量或名次
- flag:类型标记(按示例传入)
返回:持仓量占比(%)。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNOIPercent(20200807T, 1, 0);
// 结果:7.58237322661357
####### OptionUBCInstitutPercent
用途:指定日指定机构成交量占比。 参数:
- endt:交易日期
- institution:机构名称
- flag:类型标记(按示例传入)
返回:成交量占比(%)。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutPercent(20200807T, '华泰证券', 0);
// 结果:15.4328861467173
####### OptionUBCNoNNetVol
用途:指定日净成交量排名第 N 的机构净成交量。 参数:
- endt:交易日期
- n:统计数量或名次
返回:净成交量。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNNetVol(20200807T, 1);
// 结果:-9468
####### OptionUBCNoNOIName
用途:指定日持仓量排名第 N 的机构名称。 参数:
- endt:交易日期
- n:统计数量或名次
返回:机构名称。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNOIName(20200807T, 1);
// 结果:华泰证券
####### OptionUBCInstitutOI
用途:指定日指定机构持仓量。 参数:
- endt:交易日期
- institution:机构名称
- flag:类型标记(按示例传入)
返回:持仓量。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutOI(20200807T, "华泰证券", 1);
// 结果:177850
####### OptionUBCSumNNetVol
用途:指定日净成交量排名前 N 名合计。 参数:
- endt:交易日期
- n:统计数量或名次
返回:净成交量合计值。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNNetVol(20200807T, 1);
// 结果:-9468
####### OptionUBCSumNOIPercent
用途:指定日持仓量排名前 N 名占比合计。 参数:
- endt:交易日期
- n:统计数量或名次
- flag:类型标记(按示例传入)
返回:持仓量占比合计(%)。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNOIPercent(20200807T, 1, 0);
// 结果:7.58237322661357
####### OptionUBCInstitutNetVol
用途:指定日指定机构净成交量。 参数:
- endt:交易日期
- institution:机构名称
返回:净成交量。
算法指定日指定机构净认购成交量变动=今日净认购-上日净认购范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutNetVol(20200807T, '华泰证券');
// 结果:-26123
####### OptionUBCInstitutVol
用途:指定日指定机构成交量。 参数:
- endt:交易日期
- institution:机构名称
- flag:类型标记(按示例传入)
返回:成交量。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutVol(20200807T, '华泰证券', 1);
// 结果:313857
####### OptionUBCInstitutNetOI
用途:指定日指定机构净持仓量。 参数:
- endt:交易日期
- institution:机构名称
返回:净持仓量。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutNetOI(20200807T, '华泰证券');
// 结果:48525
####### OptionUBCNoNVolName
用途:指定日成交量排名第 N 的机构名称。 参数:
- endt:交易日期
- n:统计数量或名次
- flag:类型标记(按示例传入)
返回:机构名称。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNVolName(20200807T, 1, 1);
// 结果:广发证券
####### OptionUBCNoNPercent
用途:指定日成交量排名第 N 的占比。 参数:
- endt:交易日期
- n:统计数量或名次
- flag:类型标记(按示例传入)
返回:成交量占比(%)。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNPercent(20200807T, 1, 1);
// 结果:14.1982876756464
####### OptionUBCNoNNetOI
用途:指定日净持仓量排名第 N 的机构净持仓量。 参数:
- endt:交易日期
- n:统计数量或名次
返回:净持仓量。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNNetOI(20200807T, 1);
// 结果:-7371
####### OptionUBCNoNOI
用途:指定日持仓量排名第 N 的持仓量。 参数:
- endt:交易日期
- n:统计数量或名次
- flag:类型标记(按示例传入)
返回:持仓量。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNOI(20200807T, 1, 1);
// 结果:177850
####### OptionUBCInstitutVolRank
用途:指定日指定机构成交量排名。 参数:
- endt:交易日期
- institution:机构名称
- flag:类型标记(按示例传入)
返回:成交量排名(整数)。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCInstitutVolRank(20200807T, '广发证券', 1);
// 结果:1
####### OptionUBCNoNVol
用途:指定日成交量排名第 N 的成交量。 参数:
- endt:交易日期
- n:统计数量或名次
- flag:类型标记(按示例传入)
返回:成交量。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCNoNVol(20200807T, 1, 1);
// 结果:330512
####### OptionUBCSumNOI
用途:指定日持仓量排名前 N 名合计。 参数:
- endt:交易日期
- n:统计数量或名次
- flag:类型标记(按示例传入)
返回:持仓量合计值。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNOI(20200807T, 1, 1);
// 结果:177850
####### OptionUBCSumNPercent
用途:指定日成交量排名前 N 名占比合计。 参数:
- endt:交易日期
- n:统计数量或名次
- flag:类型标记(按示例传入)
返回:成交量占比合计(%)。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNPercent(20200807T, 1, 1);
// 结果:14.1982876756464
####### OptionUBCSumNNetOI
用途:指定日净持仓量排名前 N 名合计。 参数:
- endt:交易日期
- n:统计数量或名次
返回:净持仓量合计值。
范例
SetSysParam(pn_stock(), "SH510050");
return OptionUBCSumNNetOI(20200807T, 3);
// 结果:62518
中间函数
####### 内容
- optionubcqkperiod
- OptionUBCQK
####### optionubcqkperiod 用途:中间函数:获取活跃成交持仓区间数据。 参数:按调用约定传入。 返回:处理后的结果值。
####### OptionUBCQK
用途:获取指定标的在区间内的活跃成交持仓统计值。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
- value:数值参数
返回:区间统计值。
范例
return OptionUBCQK("SH510050", 20200807T, 0, 0, 3);
结果:
期权风险指标
内容
- 中间函数
- OptionRITheta
- OptionRIDelta
- OptionRIRHO
- OptionRIVega
- OptionRIGamma
中间函数
####### 内容
- optionriskindicator
####### optionriskindicator 用途:中间函数:获取期权风险指标原始数据。 参数:按调用约定传入。 返回:处理后的结果值。
OptionRITheta
用途:获取期权 Theta 风险指标。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
SetSysParam(pn_stock(), "OP10006730");
return OptionRITheta(20240126T);
// 结果:-0.119
OptionRIDelta
用途:获取期权 Delta 风险指标。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
SetSysParam(pn_stock(), "OP10006730");
return OptionRIDelta(20240126T);
// 结果:0.795
OptionRIRHO
用途:获取期权 Rho 风险指标。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
SetSysParam(pn_stock(), "OP10006730");
return OptionRIRHO(20240126T);
// 结果:1.055
OptionRIVega
用途:获取期权 Vega 风险指标。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
SetSysParam(pn_stock(), "OP10006730");
return OptionRIVega(20240126T);
// 结果:0.545
OptionRIGamma
用途:获取期权 Gamma 风险指标。 参数:
- endt:交易日期
返回:处理后的结果值。
范例
SetSysParam(pn_stock(), "OP10006730");
return OptionRIGamma(20240126T);
// 结果:0.838
期权结算参数
内容
- Optionspqk
- Optionspqk2
- OptionSMarginAdjustmentFactor
- OptionSMiniGuaranteeFactor
- OptionSPClosingProceduresFee
- OptionSPOpeningChargeFee
- OptionSPPerformanceFee
- OptionSPShortClosingProceduresFee
- OptionSPShortOpeningChargeFee
- OptionSPTradingMargin
- 中间函数
Optionspqk
用途:获取区间期权结算参数数据。 参数:
- start_date:起始日期
- end_date:结束日期
返回:处理后的结果值。
范例
// "al2104C13400"在20210312~20210322的区间期权结算参数数据
SetSysParam(pn_stock(), "al2104C13400");
return OptionSPQK(20210312T, 20210322T);
Optionspqk2
用途:获取指定窗口期权结算参数数据。 参数:
- value:数值参数
返回:处理后的结果值。
范例
// "al2104C13400"在20210322的5日结算参数数据
SetSysParam(pn_stock(), "al2104C13400");
SetSysParam(PN_Date(), 20210322T);
return OptionSPQK2(5);
OptionSMarginAdjustmentFactor
用途:获取保证金调整系数。 参数:无。 返回:处理后的结果值。
范例
// "IO2106-P-5300"在20210322日的保证金调整系数(%)
SetSysParam(pn_stock(), "IO2106-P-5300");
SetSysParam(PN_Date(), 20210322T);
return OptionSMarginAdjustmentFactor(); // 结果:12
OptionSMiniGuaranteeFactor
用途:获取最低保障系数。 参数:无。 返回:处理后的结果值。
范例
// "IO2106-P-5300"在20210322日的最低保障系数
SetSysParam(pn_stock(), "IO2106-P-5300");
SetSysParam(PN_Date(), 20210322T);
return OptionSMiniGuaranteeFactor(); // 结果:0.5
OptionSPClosingProceduresFee
用途:获取平仓手续费。 参数:无。 返回:处理后的结果值。
范例
// "MA110C2375"在20210322日的平仓手续费额
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPClosingProceduresFee(); // 结果:0.5
OptionSPOpeningChargeFee
用途:获取开仓手续费。 参数:无。 返回:处理后的结果值。
范例
// "MA110C2375"在20210322日的开仓手续费额
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPOpeningChargeFee(); // 结果:0.5
OptionSPPerformanceFee
用途:获取履约手续费。 参数:无。 返回:处理后的结果值。
范例
// "MA110C2375"在20210322日的行权/履约手续费额
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPPerformanceFee(); // 结果:0.5
OptionSPShortClosingProceduresFee
用途:获取短线平仓手续费。 参数:无。 返回:处理后的结果值。
范例
// "MA110C2375"在20210322日的短线平仓手续费额
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPShortClosingProceduresFee(); // 结果:0
OptionSPShortOpeningChargeFee
用途:获取短线开仓手续费。 参数:无。 返回:处理后的结果值。
范例
// "MA110C2375"在20210322日的短线开仓手续费额
SetSysParam(pn_stock(), "MA110C2375");
SetSysParam(PN_Date(), 20210322T);
return OptionSPShortOpeningChargeFee(); // 结果:0.5
OptionSPTradingMargin
用途:获取交易保证金。 参数:无。 返回:处理后的结果值。
范例
// "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:交易日期
返回:处理后的结果值。
范例
return OP_GetOptionChain("SH510050", 20150209T);
OP_BKDateOverview
用途:日期时间处理函数。 参数:
- code:标的或合约代码
- flag:类型标记(按示例传入)
返回:日期或时间值。
范例
return OP_BKDateOverview("SH510050", 1);
OP_GetBidAskData
用途:获取期权合约买卖盘数据。 参数:
- data:合约列表
返回:处理后的结果值。
范例
ret := array(("代码":"CU2106"),
("代码":"IF2106"),
("代码":"PG2106"), );
return OP_GetBidAskData(ret);
OP_GetDaysMaturity
用途:计算到期天数或到期年化天数。 参数:
- start_date:起始日期
- end_date:结束日期
返回:处理后的结果值。
范例
return OP_GetDaysMaturity(20150208T, 20150228T); // 0.6575
OP_GetPutAndCallratio
用途:计算指定品种的认购/认沽成交量比值。 参数:
- code:标的或合约代码
- endt:交易日期
返回:处理后的结果值。
算法到日期为Ex_endt日的指定期权品种为StockID的 在指定时间endt的所有认购期权成交量与认沽期权成交量的比值,到期日<=0表示取所有代码范例
return OP_GetPutAndCallratio("cu", 20210514T);
// 1.33637606170067
OP_GetRiskFreeRate
用途:获取无风险利率。 参数:
- endt:交易日期
- flag:类型标记(按示例传入)
返回:处理后的结果值。
范例
return OP_GetRiskFreeRate(20150208T, 0); // 2.75
OP_GetUnderlyingSecurity
用途:获取期权对应的标的证券代码。 参数:无。 返回:处理后的结果值。
范例
return OP_GetUnderlyingSecurity();
OP_HV
用途:计算历史波动率。 参数:
- code:标的或合约代码
- endt:交易日期
- value:数值参数
返回:处理后的结果值。
算法
获取日期区间的收盘价
计算日期区间股价环比增长自然对数序列的标准差作为日波动率(%)
按一年250的交易日取年化波动率范例
// 取SZ000002在2021-01-01前六个月的nian波动率
return OP_HV("SZ000002", 20210101T, -6); // 25.7907888130722
OP_IVGreeks
用途:计算隐含波动率及希腊值。 参数:
- flag:类型标记(按示例传入)
- value:数值参数
- value2:数值参数
- value3:数值参数
- value4:数值参数
- value5:数值参数
返回:处理后的结果值。
范例
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:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的期权主力合约
return OptionZLId("SH510050", 20210331T, 0, -1);
// 结果:OP10003266
OptionZLId2
用途:获取系统参数标的在指定日的期权主力合约代码。 参数:
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的期权主力合约
SetSysParam(pn_stock(), "SH510050");
return OptionZLId2(20210331T, 0, -1);
// 结果:OP10003266
OptionCZLId
用途:获取指定标的在指定日的期权次主力合约代码。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的期权次主力合约
return OptionCZLId("SH510050", 20210331T, 0, -1);
// 结果:OP10003273
OptionCZLId2
用途:获取系统参数标的在指定日的期权次主力合约代码。 参数:
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的期权次主力合约
SetSysParam(pn_stock(), 'SH510050');
return OptionCZLId2(20210331T, 0, -1);
// 结果:OP10003273
OptionFlatZLId
用途:获取指定标的在指定日的平值主力合约代码。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的期权平值主力合约
return OptionFlatZLId("SH510050", 20210331T, 0, 0);
// 结果:OP10003265
OptionFlatZLId2
用途:获取系统参数标的在指定日的平值主力合约代码。 参数:
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的期权平值主力合约
SetSysParam(pn_stock(), "SH510050");
return OptionFlatZLId2(20210331T, 0, 0);
// 结果:OP10003265
OptionFlatCZLId
用途:获取指定标的在指定日的平值次主力合约代码。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的期权平值次主力合约
return OptionFlatCZLId("SH510050", 20210331T, 0, 0);
// 返回:OP10003274
OptionFlatCZLId2
用途:获取系统参数标的在指定日的平值次主力合约代码。 参数:
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的期权平值次主力合约
SetSysParam(pn_stock(), "SH510050");
return OptionFlatCZLId2(20210331T, 0, 0);
// 返回:OP10003274
OptionFlatValueId
用途:获取指定标的在指定日的平值合约代码(认购/认沽由 flag 指定)。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的认购的平值合约
return OptionFlatValueId("SH510050", 20210331T, 0);
OptionVirtualValueID
用途:获取指定标的在指定日的虚值合约代码(认购/认沽由 flag 指定)。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的认购的虚值合约
return OptionVirtualValueID("SH510050", 20210331T, 0);
OptionRealValueID
用途:获取指定标的在指定日的实值合约代码(认购/认沽由 flag 指定)。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
返回:合约代码。
范例
// "SH510050"在20210331日的认购的实值合约
return OptionRealValueID("SH510050", 20210331T, 0);
OptionIsFlatValueID
用途:判断指定合约在指定日是否为平值合约。 参数:
- code:标的或合约代码
- endt:交易日期
返回:是否满足条件(1/0)。
范例
// "OP10003265 50ETF购4月3600"在20210331日是否平值合约
return OptionIsFlatValueID("OP10003265", 20210331T);
// 返回:1
OptionIsFlatValueID2
用途:判断系统参数合约在指定日是否为平值合约。 参数:
- endt:交易日期
返回:是否满足条件(1/0)。
范例
// "OP10003265 50ETF购4月3600"在20210331日是否平值合约
SetSysParam(pn_stock(), "OP10003265");
return OptionIsFlatValueID2(20210331T);
// 结果:1
OptionIsRealValueID
用途:判断指定合约在指定日是否为实值合约。 参数:
- code:标的或合约代码
- endt:交易日期
返回:是否满足条件(1/0)。
范例
// "OP10003265 50ETF购4月3600"在20210331日是否实值合约
return OptionIsRealValueID("OP10003265", 20210331T);
// 返回:0
OptionIsRealValueID2
用途:判断系统参数合约在指定日是否为实值合约。 参数:
- endt:交易日期
返回:是否满足条件(1/0)。
范例
// "OP10003265 50ETF购4月3600"在20210331日是否实值合约
SetSysParam(pn_stock(), "OP10003265");
return OptionIsRealValueID2(20210331T);
// 结果:0
OptionIsVirtualValueID
用途:判断指定合约在指定日是否为虚值合约。 参数:
- code:标的或合约代码
- endt:交易日期
返回:是否满足条件(1/0)。
范例
// "OP10003265 50ETF购4月3600"在20210331日是否虚值合约
return OptionIsVirtualValueID("OP10003265", 20210331T);
// 返回:0
OptionIsVirtualValueID2
用途:判断系统参数合约在指定日是否为虚值合约。 参数:
- endt:交易日期
返回:是否满足条件(1/0)。
范例
// "OP10003265 50ETF购4月3600"在20210331日是否虚值合约
SetSysParam(pn_stock(), "OP10003265");
return OptionIsVirtualValueID2(20210331T);
// 结果:0
中间函数
####### 内容
- OptionCheckIdsEndT
- OptionIsValueID
- OptionCheckValueIds
- OptionsZLId
####### OptionCheckIdsEndT
用途:校验指定标的在指定日的期权主力合约有效性。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
返回:校验结果(1/0)。
范例
return OptionCheckIdsEndT('SH510050', 20210331T, -1, 0);
####### OptionIsValueID
用途:判断指定合约在指定日是否满足指定价态(由 flag 指定)。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
返回:是否满足条件(1/0)。
范例
// "OP10003265 50ETF购4月3600"在20210331日是否平值合约
return OptionIsValueID("OP10003265", 20210331T, 0);
// 返回:1
####### OptionCheckValueIds
用途:校验指定标的在指定日的价态合约有效性。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
返回:校验结果(1/0)。
范例
return OptionCheckValueIds('SH510050', 20210331T, 1, 0);
####### OptionsZLId
用途:获取指定标的在指定日的期权主力合约列表。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
- flag3:类型标记(按示例传入)
返回:合约代码序列。
范例
return OptionsZLId('SH510050', 20210331T, -1, 1, 0);
// 结果:OP10003264
OptionZLId3
用途:获取指定日的期权主力合约序列(支持近月/标的主力算法)。 参数:
- endt:交易日期
返回:合约代码序列。
算法
模型中提供了两种算法:
算法一:近月合约,适用所有期权
选取最近到期日且满足到期日大于等于N日的期权合约序列,即若近月到期日与指定日区间天数小于N日,则判断次近月,依此类推,直到满足到期天数>=N日;
算法二:标的主力线合约,仅适用商品期货期权
期货期权标的(商品期货)的主力线对应的当前实际合约作为标的的期权合约序列,
通过上述算法逻辑筛选出期权样本组后,再根据选择的期权类型(认购、认沽、所有)与期权合约类型(所有、平值、实值、虚值)以及对应的档位,最后筛选出符合条件的期权序列作为指定日期权主力。
范例
// 取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
用途:期权合约代码相关函数。 参数:无。 返回:处理后的结果值。
范例
// 返回50ETF为标的,20230511T交易类型为认购的近月虚值一档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractCallOTM1();
// 结果:"OP10005266"
OptionNearContractPutITM1
用途:期权合约代码相关函数。 参数:无。 返回:处理后的结果值。
范例
// 返回50ETF为标的,20230511T交易类型为认沽的近月实值一档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractPutITM1();
// 结果:"OP10005275"
OptionNearContractPutOTM1
用途:期权合约代码相关函数。 参数:无。 返回:处理后的结果值。
范例
// 返回50ETF为标的,20230511T交易类型为认沽的近月虚值一档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractPutOTM1();
// 结果:"OP10005273"
OptionNearContractPutOTM2
用途:期权合约代码相关函数。 参数:无。 返回:处理后的结果值。
范例
// 返回50ETF为标的,20230511T交易类型为认沽的近月虚值二档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractPutOTM2();
// 结果:"OP10005272"
OP_SelectOptionData
用途:期权合约代码相关函数。 参数:
- code:标的或合约代码
- endt:交易日期
返回:处理后的结果值。
范例
// 返回"AP"在20240419交易的期权合约列表信息
return OP_SelectOptionData('AP', 20240419T);
OptionNearContractCallOTM2
用途:期权合约代码相关函数。 参数:无。 返回:处理后的结果值。
范例
// 返回50ETF为标的,20230511T交易类型为认购的近月虚值二档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractCallOTM2();
// 结果:"OP10005267"
OptionNearContractCallITM1
用途:期权合约代码相关函数。 参数:无。 返回:处理后的结果值。
范例
// 返回50ETF为标的,20230511T交易类型为认购的近月实值一档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractCallITM1();
// 结果:"OP10005264"
OptionNearContractCallITM2
用途:期权合约代码相关函数。 参数:无。 返回:处理后的结果值。
范例
// 返回50ETF为标的,20230511T交易类型为认购的近月实值二档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractCallITM2();
// 结果:"OP10005263"
OptionNearContractPutITM2
用途:期权合约代码相关函数。 参数:无。 返回:处理后的结果值。
范例
// 返回50ETF为标的,20230511T交易类型为认沽的近月实值二档期权合约
SetSysParam(pn_stock(), "SH510050");
SetSysParam(pn_date(), 20230511T);
return OptionNearContractPutITM2();
// 结果:"OP10005276"
OP_SelectOption
用途:期权合约代码相关函数。 参数:
- code:标的或合约代码
- endt:交易日期
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
- flag3:类型标记(按示例传入)
- flag4:类型标记(按示例传入)
返回:处理后的结果值。
范例
// 返回50ETF为标的,20230511T交易类型为认购的近月平值期权合约列表
return OP_SelectOption("SH510050", 20230511T, 1, 0, 0, 0);
// 结果:array("OP10005274")
OP_GetOptionChainList
用途:期权合约代码相关函数。 参数:
- code:标的或合约代码
- flag:类型标记(按示例传入)
- flag2:类型标记(按示例传入)
返回:处理后的结果值。
范例
// 返回50ETF为标的,所有行权方式和期权类型的期权合约列表
return OP_GetOptionChainList("SH510050", -1, -1);
行权交收信息
内容
- OptionESIExerciseAmount
- 中间函数
OptionESIExerciseAmount
用途:行权交收信息相关函数。 参数:
- endt:交易日期
- flag:类型标记(按示例传入)
返回:处理后的结果值。
范例
SetSysParam(PN_Stock(), 'SH510050');
return OptionESIExerciseAmount(20231227T, 0);
// 结果:20893
中间函数
####### 内容
- OptionESIGetdata
####### OptionESIGetdata
用途:行权交收信息相关函数。 参数:
- code:标的或合约代码
- endt:交易日期
返回:处理后的结果值。
范例
return OptionESIGetdata('SH510050', 20231227T);