MyNixOS website logo
Description

Asian Option Pricing under Price Impact.

Implements the framework of Tiwari and Majumdar (2025) <doi:10.48550/arXiv.2512.07154> for valuing arithmetic and geometric Asian options under transient and permanent market impact. Provides three pricing approaches: Kemna-Vorst frictionless benchmarks, exogenous diffusion pricing (closed-form for geometric, Monte Carlo for arithmetic), and endogenous Hamilton-Jacobi-Bellman valuation via a tree-based Bellman scheme producing indifference bid-ask prices.

AsianOption: Asian Option Pricing with Price Impact

R-CMD-check CRAN status

Overview

AsianOption implements binomial tree pricing for Asian options incorporating market price impact from hedging activities. The package extends the Cox-Ross-Rubinstein (CRR) binomial model to account for price movements caused by large hedging trades.

Installation

# Install from CRAN
install.packages("AsianOption")

# Development version from GitHub
# install.packages("devtools")
devtools::install_github("plato-12/AsianOption")

Quick Start

Geometric Asian Option Pricing

library(AsianOption)

# Price a geometric Asian call option with price impact
price <- price_geometric_asian(
  S0 = 100,      # Initial stock price
  K = 100,       # Strike price
  r = 1.05,      # Gross risk-free rate (5%)
  u = 1.2,       # Up factor
  d = 0.8,       # Down factor
  lambda = 0.1,  # Price impact coefficient
  v_u = 1,       # Hedging volume (up)
  v_d = 1,       # Hedging volume (down)
  n = 10         # Time steps
)
print(price)

Arithmetic Asian Option Bounds

# Compute bounds for arithmetic Asian options
bounds <- arithmetic_asian_bounds(
  S0 = 100, K = 100, r = 1.05,
  u = 1.2, d = 0.8,
  lambda = 0.1, v_u = 1, v_d = 1, n = 5
)
print(bounds)

Monte Carlo for Large n

# For n > 20, Monte Carlo is automatically used
result <- 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 = 50
)
#> Using Monte Carlo method for n=50 (> 20) with 100000 simulations

# Get full Monte Carlo output with error estimates
mc_result <- price_geometric_asian_mc(
  S0 = 100, K = 100, r = 1.05, u = 1.2, d = 0.8,
  lambda = 0.1, v_u = 1, v_d = 1, n = 50,
  n_simulations = 100000, seed = 42
)
print(mc_result)
#> Geometric Asian Option Price (Monte Carlo)
#> ==========================================
#> Price:       13.899166
#> Std Error:   0.109300 (0.79%)
#> 95% CI:      [13.684937, 14.113395]
#> Simulations: 100000

Main Functions

  • price_geometric_asian(): Price geometric Asian options (calls/puts)
  • price_geometric_asian_mc(): Monte Carlo pricing with error estimates
  • arithmetic_asian_bounds(): Bounds for arithmetic Asian options
  • compute_p_adj(): Compute adjusted risk-neutral probability
  • check_no_arbitrage(): Validate no-arbitrage conditions

Citation

If you use this package in your research, please cite:

Tiwari, P., & Majumdar, S. (2025). Asian option valuation under price impact. arXiv preprint. https://doi.org/10.48550/arXiv.2512.07154

License

GPL (>= 3)

Metadata

Version

0.2.0

License

Unknown

Platforms (78)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows