Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Avhz RustQuant Asay82 Model

From Leeroopedia


Knowledge Sources
Domains Option_Pricing, Futures_Options, Quantitative_Finance
Last Updated 2026-02-07 19:00 GMT

Overview

Concrete tool for Asay (1982) margined futures option pricing provided by the RustQuant library.

Description

The Asay82 struct defines the parameter set for the Asay (1982) margined futures option model. This is a specialization of the Generalized Black-Scholes-Merton framework where both the cost of carry b and the risk-free rate r are set to zero, reflecting the economics of margined (mark-to-market) futures options.

In a margined futures option, no upfront premium is paid; instead, the option position is marked to market daily, similar to a futures contract. This eliminates the need for discounting and for a cost-of-carry adjustment, hence r = 0 and b = 0.

The struct stores two parameters:

  • f -- The futures price (used as the underlying spot price s in the GBS framework).
  • v -- The volatility of the futures price.

The actual option pricing, Greeks, and implied volatility computations are provided by the shared Generalized Black-Scholes-Merton engine in the RustQuant_instruments crate, which dispatches based on the s(), r(), and b() accessor methods.

Usage

Use the Asay82 model for pricing options on margined futures contracts, where the option premium is settled via daily variation margin rather than paid upfront. This is common in certain exchange-traded commodity and interest rate futures options markets.

Code Reference

Source Location

Signature

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Asay82 {
    f: f64,  // Futures price
    v: f64,  // Volatility
}

impl Asay82 {
    pub fn new(f: f64, v: f64) -> Self;
    fn s(&self) -> f64;  // Returns f (futures price as spot)
    fn r(&self) -> f64;  // Returns 0.0
    fn b(&self) -> f64;  // Returns 0.0
}

Import

use RustQuant::models::Asay82;

I/O Contract

Inputs

Name Type Required Description
f f64 Yes Futures price of the underlying.
v f64 Yes Volatility of the futures price.

Outputs

Name Type Description
s() f64 Returns the futures price f as the effective spot price for the GBS framework.
r() f64 Returns 0.0 (no discounting for margined options).
b() f64 Returns 0.0 (zero cost of carry for margined futures).

Usage Examples

use RustQuant::models::Asay82;
use RustQuant::instruments::{BlackScholesMerton, TypeFlag};

// Create Asay82 model for a margined futures option
let model = Asay82::new(
    100.0,  // futures price
    0.20,   // volatility (20%)
);

// The Asay82 model parameters feed into the Generalized BSM pricer:
// s = 100.0 (futures price), r = 0.0, b = 0.0
// These are used by the shared GBS option pricing engine.

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment