外汇波动率曲面相关函数
大约 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: =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
为到期日)。
- 返回:远期点。