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

41 KiB
Raw Blame History

期权

内容
  • 基本信息
  • 期权熔断机制
  • 活跃成交持仓
  • 期权风险指标
  • 期权结算参数
  • 期权基本函数
  • 期权主力合约
  • 期权合约代码
  • 行权交收信息
基本信息
内容
  • 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月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类型标记按示例传入

返回:成交量合计值。

范例

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);