外汇波动率曲面相关函数
大约 9 分钟
外汇波动率曲面相关函数
构建函数
Excel: =McpFXVolSurface2(args1, args2, args3, args4, args5, fmt='VP')
Python: McpFXVolSurface2(*args)
- 功能:构造双边外汇波动率曲面(使用的利率曲线和远期曲线均为双边)。
- 参数:
args1~args5或*args:参数组,支持以下三种传参方式:- 第一种参数:
ReferenceDate:交易日或估值日。Tenors:期限数组。DeltaStrings:Delta 类型数组(如25RR、25BF、ATM、25CALL、25PUT)。BidVolatilities:Bid 方向的波动率。AskVolatilities:Ask 方向的波动率。FxForwardPointsCurve2:远期曲线对象。ForeignCurve2:货币 1 的利率曲线对象。DomesticCurve2:货币 2 的利率曲线对象。CalculatedTarget:计算目标(枚举值)。SmileInterpMethod:插值方式(枚举值)。Calendar:节假日对象(默认空对象)。DateAdjusterRule:调整规则(枚举值)。DeltaType:Delta 类型(枚举值)。PremiumAdjusted:是否调整溢价(默认True)。IsATMFwd:是否为 ATM Forward(默认False)。SpotDate:即期起息日(默认1901-01-01)。FXVolInterpType:波动率插值类型(默认SPLINE_VOLATILITY)。DayCounter:计息规则。
- 第二种参数:
- 类似第一种,但增加
DeltaTypes和AtmVolTypes数组。
- 类似第一种,但增加
- 第三种参数:
ReferenceDate:交易日或估值日。FXVolSurface2_1:波动率曲面 1 对象。FXVolSurface2_2:波动率曲面 2 对象。Correlation:相关系数。IsCur1Direct:货币对 1 是否是直盘货币对。IsCur2Direct:货币对 2 是否是直盘货币对。Calendar:节假日对象(默认空对象)。DateAdjusterRule:调整规则(枚举值)。CalculatedTarget:计算目标(枚举值)。SmileInterpMethod:插值方式(枚举值)。UsingExternalForwardPointCurve:是否使用外部远期曲线。ExternalForwardPointCurve2:外部远期曲线对象。DeltaType:Delta 类型(枚举值)。PremiumAdjusted:是否调整溢价(默认True)。IsATMFwd:是否为 ATM Forward(默认False)。SpotDate:即期起息日(默认1901-01-01)。CrossFXSpot:是否使用交叉即期价格(默认True)。BidFXSpotRate:Bid 方向的即期价格(默认0)。AskFXSpotRate:Ask 方向的即期价格(默认0)。SwapPointScaleFactor:掉期点缩放因子(默认10000)。QuoteUnit:报价单位(默认1)。QuoteUnit1:货币对 1 的报价单位(默认1)。QuoteUnit2:货币对 2 的报价单位(默认1)。
- 第一种参数:
fmt:参数格式(默认VP),Excel专用参数。
- 返回:双边外汇波动率曲面对象。
服务器端通过波动率曲面简称构造波动率对象
Excel: =McpVolSurfaces(identifiers)
- 功能:通过波动率曲面简称构造双边波动率对象。
- 参数:
identifiers:波动率曲面简称。
- 返回:一个双边波动率对象,用于后续计算。
Excel: =McpFXVolSurface(args1, args2, args3, args4, args5, fmt='DT|VP|HD')
Python: McpFXVolSurface(*args)
- 功能:构造单边外汇波动率曲面(使用的利率曲线和远期曲线均为单边)。
- 参数:
args1~args5或*args:参数组,支持以下五种传参方式:- 第一种参数:
ReferenceDate:交易日或估值日。spotPx:即期价格。Tenors:期限数组。DeltaStrings:Delta 类型数组。Strikes:执行价数组。Volatilities:波动率数组。ForeignCurve:货币 1 的利率曲线对象。DomesticCurve:货币 2 的利率曲线对象。Calendar:节假日对象。DateAdjusterRule:调整规则(枚举值)。DeltaType:Delta 类型(枚举值)。SmileInterpMethod:插值方式(枚举值)。FxForwardPointsCurve:远期曲线对象。PremiumAdjusted:是否调整溢价(默认True)。IsATMFwd:是否为 ATM Forward(默认False)。SpotDate:即期起息日。CalculatedTarget:计算目标(默认CCY1)。
- 第二种参数:
- 类似第一种,但使用
MaturityDates代替Tenors。
- 类似第一种,但使用
- 第三种参数:
- 类似第一种,但增加
FXVolInterpType(默认SPLINE_VOLATILITY)。
- 类似第一种,但增加
- 第四种参数:
- 类似第一种,但增加
DeltaTypes和AtmVolTypes数组。
- 类似第一种,但增加
- 第五种参数:
- 类似第一种,但增加
FXVolInterpType和DeltaTypes。
- 类似第一种,但增加
- 第一种参数:
fmt:参数格式(默认DT|VP|HD),Excel专用参数。
- 返回:单边外汇波动率曲面对象。
外汇类使用函数
Excel: =FXVolSurface2GetReferenceDate(vs)
Python: GetReferenceDate()
- 功能:从双边构造的波动率曲面获取参考日期。
- 参数:
vs:双边构造的波动率曲面对象,Python Api不需要这个参数。
- 返回:参考日期。
Excel: =FXVolSurfaceGetReferenceDate(vs)
Python: GetReferenceDate()
- 功能:从单边构造的波动率曲面获取参考日期。
- 参数:
vs:单边构造的波动率曲面对象,Python Api不需要这个参数。
- 返回:参考日期。
Excel: =FXVolSurface2GetSpotDate(vs)
Python: GetSpotDate()
- 功能:从双边构造的波动率曲面获取即期日期。
- 参数:
vs:双边构造的波动率曲面对象,Python Api不需要这个参数。
- 返回:即期日期。
Excel: =FXVolSurfaceGetSpotDate(vs)
Python: GetSpotDate()
- 功能:从单边构造的波动率曲面获取即期日期。
- 参数:
vs:单边构造的波动率曲面对象,Python Api不需要这个参数。
- 返回:即期日期。
Excel: =FXVolSurface2GetStrike(vs, deltaString, tenor, bidMidAsk)
Python: GetStrike(*args)
- 功能:从双边构造的波动率曲面获取指定delta、期限和方向的执行价。
- 参数:
vs:双边构造的波动率曲面对象。deltaString:delta值。tenor:期限。bidMidAsk:指定方向,值为bid、mid或ask。*args:是一个字典,不需要vs参数,其他参数同Excel的参数。
- 返回:执行价。
Excel: =FXVolSurfaceGetStrike(vs, deltaString, tenor)
Python: GetStrike(deltaString, tenor)
- 功能:从单边构造的波动率曲面获取指定delta和期限的执行价。
- 参数:
vs:单边构造的波动率曲面对象,Python Api不需要这个参数。deltaString:delta值。tenor:期限。
- 返回:执行价。
Excel: =FXVolSurface2GetSpot(Vs, BidMidAsk)
Python: GetSpot(*args)
- 功能:从双边外汇波动率曲面获取指定方向的即期价格。
- 参数:
Vs:双边外汇波动率曲面对象。BidMidAsk:指定方向(bid、mid或ask)。*args:是一个字典,不需要Vs参数,其他参数同Excel的参数。
- 返回:指定方向的即期价格。
Excel: =FXVolSurfaceGetSpot(Vs)
Python: GetSpot()
- 功能:从单边外汇波动率曲面获取即期价格。
- 参数:
Vs:单边外汇波动率曲面对象,Python Api不需要这个参数。
- 返回:即期价格。
Excel: =FXVolSurface2GetATMVol(vs, expiryDate, bidMidAsk)
Python: GetATMVol(*args)
- 功能:从双边外汇波动率曲面获取指定到期日的 ATM 波动率。
- 参数:
vs:双边外汇波动率曲面对象。expiryDate:到期日。bidMidAsk:指定方向(bid、mid或ask)。*args:是一个字典,不需要vs参数,其他参数同Excel的参数。
- 返回:指定方向的 ATM 波动率。
Excel: =FXVolSurfaceGetATMVol(vs, expiryDate)
Python: GetATMVol( expiryDate)
- 功能:从单边外汇波动率曲面获取指定到期日的 ATM 波动率。
- 参数:
vs:单边外汇波动率曲面对象,Python Api不需要这个参数。expiryDate:到期日。
- 返回:ATM 波动率。
Excel: =FXVolSurface2GetVolatility(vs, strike, expiryDate, bidMidAsk, midForward=0.0, bidInputDeltaVolPair='', askInputDeltaVolPair='')
Python: GetVolatility(*args)
- 功能:从双边外汇波动率曲面获取指定到期日和方向的波动率。
- 参数:
vs:双边外汇波动率曲面对象。strike:执行价。maturityDate:到期日。bidMidAsk:指定方向(bid、mid或ask)。midForward:远期价格的中间价。bidInputDeltaVolPair:bid方向指定Delta值和对应的隐含波动率。askInputDeltaVolPair:ask方向用于指定Delta值和对应的隐含波动率。*args:是一个字典,不需要vs参数,其他参数同Excel的参数。
- 返回:指定方向的波动率。
Excel: =FXVolSurfaceGetVolatility(vs, strike, expiryDate, forward=0.0, inputDeltaVolPair='')
Python: GetVolatility(*args)
- 功能:从单边外汇波动率曲面获取指定到期日的波动率。
- 参数:
vs:单边外汇波动率曲面对象。strike:执行价。expiryDate:到期日。forward:远期价格。InputDeltaVolPair:用于指定Delta值和对应的隐含波动率。*args:是一个字典,不需要vs参数,其他参数同Excel的参数。
- 返回:波动率。
Excel: =FXVolSurface2GetForeignRate(vs, expiryOrDeliveryDate, isDeliveryDate, bidMidAsk)
Python: GetForeignRate(*args)
- 功能:从双边外汇波动率曲面获取指定到期日或交割日的外币利率。
- 参数:
vs:双边外汇波动率曲面对象。expiryOrDeliveryDate:到期日或交割日。isDeliveryDate:布尔值,表示expiryOrDeliveryDate是否为交割日(true为交割日,false为到期日)。bidMidAsk:指定方向,取值为bid、mid或ask。*args:是一个字典,不需要vs参数,其他参数同Excel的参数。
- 返回:ccy1利率。
Excel: =FXVolSurfaceGetForeignRate(vs, expiryOrDeliveryDate, isDeliveryDate)
Python: GetForeignRate(expiryOrDeliveryDate, isDeliveryDate=False)
- 功能:从单边外汇波动率曲面获取指定到期日的外币利率。
- 参数:
vs:单边外汇波动率曲面对象,Python Api不需要这个参数。expiryOrDeliveryDate:到期日或交割日。isDeliveryDate:布尔值,表示expiryOrDeliveryDate是否为交割日(true为交割日,false为到期日)。
- 返回:ccy1利率。
Excel: =FXVolSurface2GetDomesticRate(vs, expiryOrDeliveryDate, isDeliveryDate, bidMidAsk)
Python: GetDomesticRate(*args)
- 功能:从双边外汇波动率曲面获取指定到期日或交割日的本币利率。
- 参数:
vs:双边外汇波动率曲面对象。expiryOrDeliveryDate:到期日或交割日。isDeliveryDate:布尔值,表示expiryOrDeliveryDate是否为交割日(true为交割日,false为到期日)。bidMidAsk:指定方向,取值为bid、mid或ask。*args:是一个字典,不需要vs参数,其他参数同Excel的参数。
- 返回:ccy2的利率。
Excel: =FXVolSurfaceGetDomesticRate(vs, expiryOrDeliveryDate, isDeliveryDate)
Python: GetDomesticRate(expiryOrDeliveryDate, isDeliveryDate=False)
- 功能:从单边外汇波动率曲面获取指定到期日的本币利率。
- 参数:
vs:单边外汇波动率曲面对象,Python Api不需要这个参数。expiryOrDeliveryDate:到期日或交割日。isDeliveryDate:布尔值,表示expiryOrDeliveryDate是否为交割日(true为交割日,false为到期日)。
- 返回:ccy2的利率。
Excel: =FXVolSurface2GetForward(vs, expiryOrDeliveryDate, isDeliveryDate, bidMidAsk)
Python: GetForward(*args)
- 功能:从双边外汇波动率曲面获取指定到期日或交割日的远期汇率。
- 参数:
vs:双边外汇波动率曲面对象。expiryOrDeliveryDate:到期日或交割日。isDeliveryDate:布尔值,表示expiryOrDeliveryDate是否为交割日(true为交割日,false为到期日)。bidMidAsk:指定方向,取值为bid、mid或ask。*args:是一个字典,不需要vs参数,其他参数同Excel的参数。
- 返回:远期汇率。
Excel: =FXVolSurfaceGetForward(vs, expiryOrDeliveryDate, isDeliveryDate)
Python: GetForward(expiryOrDeliveryDate, isDeliveryDate=False)
- 功能:从单边外汇波动率曲面获取指定到期日或交割日的远期汇率。
- 参数:
vs:单边外汇波动率曲面对象,Python Api不需要这个参数。expiryOrDeliveryDate:到期日或交割日。isDeliveryDate:布尔值,表示expiryOrDeliveryDate是否为交割日(true为交割日,false为到期日)。
- 返回:远期汇率。
Excel: =FXVolSurface2GetForwardPoint(vs, expiryOrDeliveryDate, isDeliveryDate, bidMidAsk)
Python: GetForwardPoint(*args)
- 功能:从双边外汇波动率曲面获取指定到期日或交割日的远期点。
- 参数:
vs:双边外汇波动率曲面对象。expiryOrDeliveryDate:到期日或交割日。isDeliveryDate:布尔值,表示expiryOrDeliveryDate是否为交割日(true为交割日,false为到期日)。bidMidAsk:指定方向,取值为bid、mid或ask。*args:是一个字典,不需要vs参数,其他参数同Excel的参数。
- 返回:远期点。
Excel: =FXVolSurfaceGetForwardPoint(vs, expiryOrDeliveryDate, isDeliveryDate)
Python: GetForwardPoint(expiryOrDeliveryDate, isDeliveryDate)
- 功能:从单边外汇波动率曲面获取指定到期日或交割日的远期点。
- 参数:
vs:单边外汇波动率曲面对象,Python Api不需要这个参数。expiryOrDeliveryDate:到期日或交割日。isDeliveryDate:布尔值,表示expiryOrDeliveryDate是否为交割日(true为交割日,false为到期日)。
- 返回:远期点。
