price_geometric_asian: Price Geometric Asian Option with Price Impact

View source: R/geometric_asian.R

price_geometric_asianR Documentation

Price Geometric Asian Option with Price Impact

Description

Computes the exact price of a geometric Asian option (call or put) using the Cox-Ross-Rubinstein (CRR) binomial model with price impact from hedging activities. Uses exact enumeration of all 2^n paths.

Usage

price_geometric_asian(
  S0,
  K,
  r,
  u,
  d,
  lambda,
  v_u,
  v_d,
  n,
  option_type = "call",
  validate = TRUE
)

Arguments

S0

Initial stock price (must be positive)

K

Strike price (must be positive)

r

Gross risk-free rate per period (e.g., 1.05)

u

Base up factor in CRR model (must be > d)

d

Base down factor in CRR model (must be positive)

lambda

Price impact coefficient (non-negative)

v_u

Hedging volume on up move (non-negative)

v_d

Hedging volume on down move (non-negative)

n

Number of time steps (positive integer)

option_type

Character; either "call" (default) or "put"

validate

Logical; if TRUE, performs input validation

Details

Computes exact prices for geometric Asian options using complete path enumeration in a binomial tree. Price impact from hedging activities modifies the stock dynamics through adjusted up/down factors and risk-neutral probability.

This function enumerates all 2^n possible paths in the binomial tree for exact pricing (no approximation or sampling). For large n (> 20), this requires significant computation time and memory. See the package vignettes and reference paper for detailed mathematical formulations.

Value

Geometric Asian option price (numeric).

References

Tiwari, P., & Majumdar, S. (2025). Asian option valuation under price impact. arXiv preprint. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.48550/arXiv.2512.07154")}

See Also

arithmetic_asian_bounds, compute_p_adj

Examples

# Basic example
price_geometric_asian(
  S0 = 100, K = 100, r = 1.05, u = 1.2, d = 0.8,
  lambda = 0, v_u = 0, v_d = 0, n = 10
)

# With price impact
price_geometric_asian(
  S0 = 100, K = 100, r = 1.05, u = 1.2, d = 0.8,
  lambda = 0.1, v_u = 1, v_d = 1, n = 15
)

# Put option
price_geometric_asian(
  S0 = 100, K = 100, r = 1.05, u = 1.2, d = 0.8,
  lambda = 0.1, v_u = 1, v_d = 1, n = 10,
  option_type = "put"
)


AsianOption documentation built on Dec. 23, 2025, 1:08 a.m.