FinancialMonteCarlo.AmericanOption
— TypeStruct for Standard American Option
amOption=AmericanOption(T::num1,K::num2,isCall::Bool=true) where {num1 <: Number,num2 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.AsianFixedStrikeOption
— TypeStruct for Asian Fixed Strike Option
asOption=AsianFixedStrikeOption(T::num1,K::num2,isCall::Bool=true) where {num1 <: Number,num2 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.AsianFloatingStrikeOption
— TypeStruct for Asian Floating Strike Option
asOption=AsianFloatingStrikeOption(T::num1,isCall::Bool=true) where {num1 <: Number}
Where:
T = Time to maturity of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.BarrierOptionDownIn
— TypeStruct for Barrier Down and In Option
barOption=BarrierOptionDownIn(T::num1,K::num2,barrier::num3,isCall::Bool=true) where {num1 <: Number,num2 <: Number,num3 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
barrier = Down Barrier of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.BarrierOptionDownOut
— TypeStruct for Barrier Down and Out Option
barOption=BarrierOptionDownOut(T::num1,K::num2,barrier::num3,isCall::Bool=true) where {num1 <: Number,num2 <: Number,num3 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
barrier = Down Barrier of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.BarrierOptionUpIn
— TypeStruct for Barrier Up and In Option
barOption=BarrierOptionUpIn(T::num1,K::num2,barrier::num3,isCall::Bool=true) where {num1 <: Number,num2 <: Number,num3 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
barrier = Up Barrier of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.BarrierOptionUpOut
— TypeStruct for Barrier Up and Out Option
barOption=BarrierOptionUpOut(T::num1,K::num2,barrier::num3,isCall::Bool=true) where {num1 <: Number,num2 <: Number,num3 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
barrier = Up Barrier of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.BermudanOption
— TypeStruct for Standard Bermudan Option
bmOption=BermudanOption(T::AbstractArray{num1},K::num2,isCall::Bool=true) where {num1 <: Number,num2 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.BinaryAmericanOption
— TypeStruct for Binary American Option
binAmOption=BinaryAmericanOption(T::num1,K::num2,isCall::Bool=true) where {num1 <: Number,num2 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.BinaryEuropeanOption
— TypeStruct for Binary European Option
binOption=BinaryEuropeanOption(T::num1,K::num2,isCall::Bool=true) where {num1 <: Number,num2 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.BlackScholesProcess
— TypeStruct for Black Scholes Process
bsProcess=BlackScholesProcess(σ::num1) where {num1 <: Number}
Where:
σ = volatility of the process.
FinancialMonteCarlo.BrownianMotion
— TypeStruct for Brownian Motion
bmProcess=BrownianMotion(σ::num1,μ::num2) where {num1,num2 <: Number}
Where:
σ = volatility of the process.
μ = drift of the process.
FinancialMonteCarlo.BrownianMotionVec
— TypeStruct for Brownian Motion
bmProcess=BrownianMotionVec(σ::num1,μ::num2) where {num1,num2 <: Number}
Where:
σ = volatility of the process.
μ = drift of the process.
FinancialMonteCarlo.DoubleBarrierOption
— TypeStruct for Double Barrier Option
dbOption=DoubleBarrierOption(T::num1,K::num2,D::num3,U::num4,isCall::Bool=true) where {num1 <: Number,num2 <: Number,num3 <: Number,num4 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
D = Low Barrier of the Option.
U = Up Barrier of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.EuropeanOption
— TypeStruct for European Option
euOption=EuropeanOption(T::num1,K::num2,isCall::Bool=true) where {num1 <: Number,num2 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.EuropeanOptionND
— TypeStruct for European Option
euOption=EuropeanOptionND(T::num1,K::num2,isCall::Bool=true) where {num1 <: Number,num2 <: Number}
Where:
T = Time to maturity of the Option.
K = Strike Price of the Option.
isCall = true for CALL, false for PUT.
FinancialMonteCarlo.Forward
— TypeClass for Dispatching Forward Payoff
forward=Forward(T::num) where {num <: Number}
Where:
T = Time to maturity of the Forward.
FinancialMonteCarlo.GaussianCopulaNVariateLogProcess
— TypeStruct for MultiVariate (log moneyness x-> S0*exp(x) ) Copula Process
gaussianCopulaNVariateLogProcess=GaussianCopulaNVariateLogProcess(models::num1,λ::num2,p::num3,λ₊::num4,λ₋::num5) where {num1,num2,num3,num4,num5 <: Number}
Where:
models = the processes.
rho = correlation matrix.
FinancialMonteCarlo.GaussianCopulaNVariateProcess
— TypeStruct for MultiVariate Copula Process
gaussianCopulaNVariateProcess=GaussianCopulaNVariateProcess(models::num1,λ::num2,p::num3,λ₊::num4,λ₋::num5) where {num1,num2,num3,num4,num5 <: Number}
Where:
models = the processes.
rho = correlation matrix.
FinancialMonteCarlo.GeometricBrownianMotion
— TypeStruct for Geometric Brownian Motion
gbmProcess=GeometricBrownianMotion(σ::num1,μ::num2) where {num1,num2 <: Number}
Where:
σ = volatility of the process.
μ = drift of the process.
x0 = initial value.
FinancialMonteCarlo.GeometricBrownianMotionVec
— TypeStruct for Geometric Brownian Motion
gbmProcess=GeometricBrownianMotionVec(σ::num1,μ::num2) where {num1,num2 <: Number}
Where:
σ = volatility of the process.
μ = drift of the process.
FinancialMonteCarlo.HestonProcess
— TypeStruct for Heston Process
hstProcess=HestonProcess(σ::num1,σ₀::num2,λ::num3,κ::num4,ρ::num5,θ::num6) where {num1,num2,num3,num4,num5,num6 <: Number}
Where:
σ = volatility of volatility of the process.
σ₀ = initial volatility of the process.
λ = shift value of the process.
κ = mean reversion of the process.
ρ = correlation between brownian motions.
θ = long value of square of volatility of the process.
FinancialMonteCarlo.KouProcess
— TypeStruct for Kou Process
kouProcess=KouProcess(σ::num1,λ::num2,p::num3,λ₊::num4,λ₋::num5) where {num1,num2,num3,num4,num5 <: Number}
Where:
σ = volatility of the process.
λ = jumps intensity.
p = prob. of having positive jump.
λ₊ = positive jump size.
λ₋ = negative jump size.
FinancialMonteCarlo.LogNormalMixture
— TypeStruct for LogNormalMixture
lnmModel=LogNormalMixture(η::Array{num1},λ::Array{num2}) where {num1,num2<: Number}
Where:
η = Array of volatilities.
λ = Array of weights.
FinancialMonteCarlo.MertonProcess
— TypeStruct for Merton Process
mertonProcess=MertonProcess(σ::num1,λ::num2,μ_jump::num3,σ_jump::num4) where {num1,num2,num3,num4<: Number}
Where:
σ = volatility of the process.
λ = jumps intensity.
μ_jump = jumps mean.
σ_jump = jumps variance.
FinancialMonteCarlo.NormalInverseGaussianProcess
— TypeStruct for NIG Process
nigProcess=NormalInverseGaussianProcess(σ::num1,θ::num2,κ::num3) where {num1,num2,num3<: Number}
Where:
σ = volatility of the process.
θ = variance of volatility.
κ = skewness of volatility.
FinancialMonteCarlo.ShiftedLogNormalMixture
— TypeStruct for ShiftedLogNormalMixture
lnmModel=ShiftedLogNormalMixture(η::Array{num1},λ::Array{num2},num3) where {num1,num2,num3<: Number}
Where:
η = Array of volatilities.
λ = Array of weights.
α = shift.
FinancialMonteCarlo.Spot
— TypeClass for Dispatching Spot Payoff
spot=Spot()
FinancialMonteCarlo.SubordinatedBrownianMotion
— TypeStruct for SubordinatedBrownianMotion
subordinatedBrownianMotion=SubordinatedBrownianMotion(sigma::num,drift::num1,underlying::abstrUnderlying)
Where:
sigma = Volatility.
drift = drift.
underlying = underlying.
FinancialMonteCarlo.SubordinatedBrownianMotionVec
— TypeStruct for SubordinatedBrownianMotion
subordinatedBrownianMotion=SubordinatedBrownianMotion(sigma::num,drift::num1)
Where:
sigma = Volatility.
drift = drift.
underlying = underlying.
FinancialMonteCarlo.VarianceGammaProcess
— TypeStruct for VG Process
vgProcess=VarianceGammaProcess(σ::num1,θ::num2,κ::num3) where {num1,num2,num3<: Number}
Where:
σ = volatility of the process.
θ = variance of volatility.
κ = skewness of volatility.
FinancialMonteCarlo.confinter
— FunctionGeneral Interface for Computation of confidence interval of price
IC=confinter(mcProcess,rfCurve,mcConfig,abstractPayoff,alpha)
Where:
mcProcess = Process to be simulated.
rfCurve = Zero Rate Data.
mcConfig = Basic properties of MonteCarlo simulation
abstractPayoff = Payoff(s) to be priced
alpha = confidence level [Optional, default to 99%]
Price = Price of the derivative
FinancialMonteCarlo.delta
— FunctionGeneral Interface for Delta
Delta=delta(mcProcess,rfCurve,mcConfig,abstractPayoff,dS0)
Where:
mcProcess = Process to be simulated.
rfCurve = Zero Rate Data.
mcConfig = Basic properties of MonteCarlo simulation
abstractPayoff = Payoff(s) to be priced
dS0 = increment [optional, default to 1e-7]
Delta = Delta of the derivative
FinancialMonteCarlo.distribution
— MethodGeneral Interface for distribution
S=distribution(mcProcess,rfCurve,mcConfig,payoff_)
Where:
mcProcess = Process to be simulated.
rfCurve = Zero Rate Data.
mcConfig = Basic properties of MonteCarlo simulation
T = Time of simulation
S = distribution
FinancialMonteCarlo.payoff
— FunctionGeneral Interface for Payoff computation from MonteCarlo paths
Payoff=payoff(S,optionData,rfCurve,T1=optionData.T)
Where:
S = Paths of the Underlying.
optionData = Datas of the Option.
rfCurve = Datas of the Risk Free Curve.
T1 =Final Time of Spot Simulation (default equals Time to Maturity of the option)[Optional, default to optionData.T]
Payoff = payoff of the Option.
FinancialMonteCarlo.pricer
— MethodLow Level Interface for Pricing
Price=pricer(mcProcess,rfCurve,mcConfig,abstractPayoff)
Where:
mcProcess = Process to be simulated.
rfCurve = Zero Rate Data.
mcConfig = Basic properties of MonteCarlo simulation
abstractPayoff = Payoff(s) to be priced
Price = Price of the derivative
FinancialMonteCarlo.rho
— FunctionGeneral Interface for Rho computation
Rho=rho(mcProcess,rfCurve,mcConfig,abstractPayoff,dr)
Where:
mcProcess = Process to be simulated.
rfCurve = Zero Rate Data.
mcConfig = Basic properties of MonteCarlo simulation
abstractPayoff = Payoff(s) to be priced
dr = increment [optional, default to 1e-7]
Rho = Rho of the derivative
FinancialMonteCarlo.simulate
— MethodGeneral Interface for Stochastic Engine simulation
S=simulate(mcProcess,mcBaseData,T)
Where:
mcProcess = Process to be simulated.
mcBaseData = Basic properties of MonteCarlo simulation
T = Final time of the process
S = Matrix with path of underlying.
FinancialMonteCarlo.simulate
— MethodGeneral Interface for Stochastic Process simulation
S=simulate(mcProcess,zeroCurve,mcBaseData,T)
Where:
mcProcess = Process to be simulated.
zeroCurve = Datas of the Zero Rate Curve.
mcBaseData = Basic properties of MonteCarlo simulation
T = Final time of the process
S = Matrix with path of underlying.
FinancialMonteCarlo.variance
— MethodGeneral Interface for Computation of variance interval of price
variance_=variance(mcProcess,rfCurve,mcConfig,abstractPayoff)
Where:
mcProcess = Process to be simulated.
rfCurve = Zero Rate Data.
mcConfig = Basic properties of MonteCarlo simulation
abstractPayoff = Payoff(s) to be priced
variance_ = variance of the payoff of the derivative