Assets and Futures

The following payoffs are used to model FX, Equity, Inflation and Futures instruments.

DiffFusion.AssetType
struct Asset <: Leaf
    obs_time::ModelTime
    key::String
end

The price of a tradeable asset S(t) at observation time t.

A tradeable asset is typically an FX rate, equity/index price or spot inflation index.

source
DiffFusion.ForwardAssetType
struct ForwardAsset <: Leaf
    obs_time::ModelTime
    maturity_time::ModelTime
    key::String
end

The forward price E_t[S(T)] of a tradeable asset S at observation time t and with maturity time T. Expectation is calculated in T-forward measure.

source
DiffFusion.ForwardIndexType
struct ForwardIndex <: Leaf
    obs_time::ModelTime
    maturity_time::ModelTime
    key::String
end

Expectation Et^T[ST] of a tradeable asset.

This is used in particular for inflation modelling.

source
DiffFusion.FutureIndexType
struct FutureIndex <: Leaf
    obs_time::ModelTime
    maturity_time::ModelTime
    key::String
end

Risk-neutral expectation Et^T[ST] of a price index.

This is used in particular for Future modelling.

source

Convexity Adjustment

DiffFusion.AssetConvexityAdjustmentType
struct AssetConvexityAdjustment <: Leaf
    obs_time::ModelTime
    first_time::ModelTime
    second_time::ModelTime
    pay_time::ModelTime
    key::String
end

Convexity adjustment factor for YoY asset payoffs.

source
DiffFusion.IndexConvexityAdjustmentType
struct IndexConvexityAdjustment <: Leaf
    obs_time::ModelTime
    first_time::ModelTime
    second_time::ModelTime
    pay_time::ModelTime
    key::String
end

Convexity adjustment factor for YoY index payoffs.

source

Asset Option Payoffs

DiffFusion.VanillaAssetOptionType
struct VanillaAssetOption <: Payoff
    obs_time::ModelTime
    expiry_time::ModelTime
    forward_price::ForwardAsset
    strike_price::Payoff
    call_put::ModelValue
end

The time-t forward price of an option paying [ϕ(F-K)]^+. Forward asset price F is determined at expiry_time.

Option forward price is calculated as expectation in T-forward measure where T corresponds to the expiry time. Conditioning (for time-t price) is on information at obs_time.

Strike price strike_price must be time-t (obs_time) measurable. Otherwise, we look into the future.

source
DiffFusion.BarrierAssetOptionType
struct BarrierAssetOption <: Payoff
    obs_time::ModelTime
    expiry_time::ModelTime
    forward_price::ForwardAsset
    strike_price::Payoff
    call_put::ModelValue
    barrier_level::Payoff
    barrier_direction::ModelValue
    barrier_type::ModelValue
    rebate_price::ModelValue
    no_hit_times::AbstractVector
end

The time-t forward price of an option paying [ϕ(F-K)]^+. Forward asset price F is determined at expiry_time.

Option forward price is calculated as expectation in T-forward measure where T corresponds to the expiry time. Conditioning (for time-t price) is on information at obs_time. This requires particular care when using Black-Scholes pricing functions.

Strike price strike_price and barrier level barrier_level must be time-t (obs_time) measurable. Otherwise, we look into the future.

barrier_direction is -1 for up-barrier and +1 for down-barrier. barrier_type is -1 for in-barrier and +1 for out-barrier. See also black_scholes_barrier_price.

no_hit_times is a list of times where past hit events are observed and with which no-hit probability is estimated. First time is zero and last time is obs_time. Must be of length 2 or more.

source