访问猛犸期权定价系统,支持外汇期权和结构化产品定价估值!

亚洲期权是一种期权,其最终的支付基于一段时间内标的资产价格的平均水平。采样频率、平均期间和平均类型的数学定义可以有多种变化。
亚洲期权包括平均汇率期权和平均行权价期权。平均汇率期权支付标的资产价格的平均值与行权价之间的差额,而平均行权价期权支付到期时标的资产价格与标的资产价格的平均值之间的差额。后者的行权价因此在期权到期时确定。
符号表示法:
- S 标的资产价格(现货价格)
- K 期权的行权价
- Σ 到期时的标的资产波动率
- T 到期时间(年)
- T 到计算日期的时间间隔(年)
- T - t 到期日的剩余时间(年)
- R 到期时的连续无风险利率
- Q 期权生存期间的连续红利收益率
- B 持有标的证券的资金成本率
- Π 看涨或看跌期权权利金
- C 看涨期权权利金
- P 看跌期权权利金
- N(x) 累积正态分布函数:
N(x)=−∞∫x2π1×e−2x2dX
n(x)=2π1×e−2x2
τ=365Expiry−Calcdate
如果
F=365Calcdate−Startdate≤0
(还没有到第一个定息日) ,设定 j=0 以及 B=1
否则
j=F+τn−F
(整数),以及
B=Bsa(j)
AGERATECall/Put=w×S×Asα(j)xe−q×T1N(w×d+w×σ×T2)−w×K×e−πN(w×d)Where:Asa(j)=e−r×(τ−T1)−σ2×(T1−T2)/2×Bsa(j)Bsa(0)=1,Bsa(j)=(i=1∏jSS(τ−[n−i]h))for 1≤j≤n1/nd=σT2ln(KS)+(r−q−21σ2)×T1+ln[Bsa(j)]T1=nn−j×[τ−2h(n−j−1)]T2=τ×(nn−j)2−6n2(n−j)(n−j−1)(4n−4j+1)h
AGESTRKCall/Put=w×S×[e−q×tN(w×d1)−Asa(j)×e−q×T1N(w×d2)]Where:Asa(j)=e−r×(τ−T1)−σ2×(T1−T2)/2×Bsa(j)d2=στe−ln[Bsa(j)]+(r−q−21σ2)×(τ−T1)+σ2(ρτ×T2−1)一d1=d2+στeT1=nn−j×[τ−2h(n−j−1)]T2=τ×(nn−j)2−6n2(n−j)(n−j−1)(4n−4j+1)hτe=τ−2ρτ×T2+T2p=σ2τ×T2[σ2+(r−d−21σ2)2τ](τ−2n−1h)−[r−d−21σ2]2τ×T1
一个亚洲算术汇率期权必须使用对数正态近似方法进行评估,因为即使标的资产价格服从对数正态分布,算术平均值却不服从对数正态分布。
AROCall/Put[S(0),K]Where:d1=να−ln(K)+ν2d2=d1−v=we−rtNE∗max[A(tN)−K,0]=w(eα+21ν2−rtN1N(w×d1)−e−rtNK×N(w×d2))
α=2×lnE∗[A(tN)]−21lnE∗[A(tN)2]v=lnE∗[A(tN)2]−2×lnE∗[A(tN)]
亚洲算术行权期权(Asian arithmetic strike option)必须使用对数正态近似方法进行评估,因为即使标的资产价格服从对数正态分布,算术平均值仍然不服从对数正态分布。
初始期权(Starting Option)
ASOCall/Put[S(0),K]=we−rTE∗max[S(T)−A(tN),0]=w(S(t)e−qTN(w×d1)−eα+21ν2−rTN(w×d2))Where:dl=Σln[S(t)]+(r−q)T−α−21ν2+21Σ2d2=d1−ΣΣ=ν2+σT2−2ρνσσT=σTα=2×lnE∗[A(tN)]−21lnE∗[A(tN)2]v2=lnE∗[A(tN)2]−2×lnE∗[A(tN)]ρvσT=lnE∗[A(ιN)S(T)]−[α+lnS(t)+(r−q)T]−21ν2
已开始的期权(Option Already Started)
ASOCall/Put[S(0),K]=we−rTE∗max[S(T)−A(tN),0]=w(S2(t)e−qTN(w×d1)−[S(t)+X]e(μ−r)TN(w×d2))
下面公式:
- NbDone : NbFixings−NbToGo
- Ave:Average
X=NbToGoNbDone×AveΣ=ν2+σT2−2ρνσTσT=σTρνσT=lnE∗[A(tN)S(T)]−[α+lnS(t)+(r−q)T]−21ν2α=2×lnE∗[A(tN)]−21lnE∗[A(tN)2]v2=lnE∗[A(tN)2]−2×lnE∗[A(tN)]S2(t)=NbToGoNbFixings×S(t)Sig1=Tν2q1=r+TlnS(t)−α−21ν2Rho1=ν2TσρνσT=ν2TσlnE∗[A(tN)S(T)]−[α+lnS(t)+(r−q)T]−21ν2μ=(TS(t)+X)ln[S(t)×e(r−q1)T+X]
B1=TlnS(t)2(X2+S(t)2×e[2x(r−q1)+(Sig1)2]T+2×X×S(t)×e[r−q1]T)
volat=B1−2×μsigma=volat2+σ2−2×Rho1×volat×σ
d1=sigmaTln[S(t)+XS2(t)]+(−μ+r−q+21sigma2)T
d2=d1−sigmaT
考虑一个亚洲几何行权认购期权,到期日为1999年1月1日。
- 现货价格为190
- 行权价格为200
- 国内无风险利率为每年7%
- 股息为5%
- 波动率为每年20%。
import math
# Given data
S = 190
K = 200
R = 0.07
Q = 0.05
sigma = 0.2
CalcDate = "01JAN98"
FirstFixingDate = "01JAN98"
ExpiryDate = "01JAN99"
NbFixings = 12
# Calculations
h = (1 + 0) / NbFixings
T1 = (NbFixings - 0) / NbFixings * (1 - h * (NbFixings - 0 - 1) / 2)
T2 = 1 * ((NbFixings - 0) / NbFixings) ** 2 - ((NbFixings - 0) * (NbFixings - 0 - 1) * (4 * NbFixings - 4 * 0 + 1)) / (6 * NbFixings ** 2) * h
A_sa0 = math.exp(-R * (1 - T1) - sigma ** 2 * (T1 - T2) / 2) * 1 # Assuming B_sa0 = 1
Te = 1 - 2 * A_sa0 * math.sqrt(1 * T1) + T1
d2_prime = (-math.log(A_sa0) + (R - Q - sigma ** 2 / 2) * (1 - T1) + sigma ** 2 * (math.sqrt(1 * T2) - 1)) / (sigma * math.sqrt(Te))
d = d2_prime + sigma * math.sqrt(Te)
print("A_sa0:", A_sa0)
print("Te:", Te)
print("d2_prime:", d2_prime)
print("d:", d)