quantsupport 0.1.6

Rust quantitative finance library for derivatives pricing, yield-curve bootstrapping, AAD risk, Monte Carlo exposure, and XVA.
Documentation
//! Prelude module for convenient imports.
//!
//! Re-exports the most commonly used types so that
//! `use quantsupport::prelude::*;` brings everything into scope.

pub use crate::{
    ad::{
        dual::{Dual, DualFwd},
        forward::{ADForward, Fwd, Fwd1, Fwd2, Fwd3, Fwd4},
        scalar::Scalar,
        tape::Tape,
    },
    core::{
        collateral::{
            DiscountPolicy, Discountable, FixedIncomeDiscountPolicy, SingleCurveCSADiscountPolicy,
        },
        elements::{
            curveelement::{
                ADCurveElement, CreditCurveElement, DiscountCurveElement, DividendCurveElement,
            },
            montecarlosimulationelement::{
                ADMonteCarloSimulationElement, MonteCarloSimulationElement,
            },
            volatilitycubelement::{ADVolatilityCubeElement, VolatilityCubeElement},
            volatilitysurfaceelement::{ADVolatilitySurfaceElement, VolatilitySurfaceElement},
        },
        evaluationresults::{CashflowsTable, EvaluationResults, SensitivityMap},
        instrument::{AssetClass, Instrument},
        marketdatahandling::{
            constructedelementrequest::ConstructedElementRequest,
            constructedelementstore::{ConstructedElementStore, SharedElement},
            discountrequest::DiscountRequest,
            fixingrequest::FixingRequest,
            forwardraterequest::ForwardRateRequest,
            fxrequest::FxRequest,
            marketdata::{MarketData, MarketDataProvider, MarketDataRequest},
            pathdependentrequest::PathDependentRequest,
            spotrequest::SpotRequest,
        },
        pillars::Pillars,
        pricer::Pricer,
        pricerstate::PricerState,
        pricingcontext::PricingContext,
        request::{
            HandleCashflows, HandleFairRate, HandleModifiedDuration, HandleSensitivities,
            HandleValue, HandleYieldToMaturity, LegsProvider, Request,
        },
        trade::{Side, Trade},
        visitable::{Visitable, Visitor},
    },
    currencies::{currency::Currency, currencydetails::CurrencyDetails},
    indices::{
        fxpair::FxPair,
        marketindex::{MarketIndex, MarketIndexDetails},
        quotetype::QuoteType,
        rateindex::RateIndexDetails,
    },
    instruments::{
        cashflows::{
            cashflow::{Cashflow, SimpleCashflow},
            cashflowtype::CashflowType,
            coupons::{LinearCoupon, NonLinearCoupon},
            fixedratecoupon::FixedRateCoupon,
            floatingratecoupon::FloatingRateCoupon,
            leg::Leg,
            makeleg::{MakeLeg, PaymentStructure, RateType},
        },
        credit::creditdefaultswap::{CdsTrade, CreditDefaultSwap},
        equity::{
            equityeuropeanoption::{
                EquityEuropeanOption, EquityEuropeanOptionTrade, EuroOptionType,
            },
            equityforward::{EquityForward, EquityForwardTrade},
            futures::{Futures, FuturesTrade},
            makeequityforward::MakeEquityForward,
            makefutures::MakeFutures,
        },
        fixedincome::{
            fixedratebond::{FixedRateBond, FixedRateBondTrade},
            fixedratedeposit::{FixedRateDeposit, FixedRateDepositTrade},
            floatingratenote::{FloatingRateNote, FloatingRateNoteTrade},
            makefixedratebond::MakeFixedRateBond,
            makefixedratedeposit::MakeFixedRateDeposit,
            makefloatingratenote::MakeFloatingRateNote,
        },
        fx::{
            fxforward::{FxForward, FxForwardSettlement, FxForwardTrade},
            fxoption::{FxOption, FxOptionTrade, FxOptionType},
            makefxforward::MakeFxForward,
            makefxoption::MakeFxOption,
        },
        rates::{
            basisswap::{BasisSwap, BasisSwapTrade},
            capfloor::{CapFloor, CapFloorTrade, CapFloorType},
            capletfloorlet::{CapletFloorlet, CapletFloorletTrade, CapletFloorletType},
            europeanswaption::{EuropeanSwaption, EuropeanSwaptionTrade, SwaptionType},
            fixfloatcrosscurrencyswap::{
                FixFloatCrossCurrencySwap, FixFloatCrossCurrencySwapTrade,
            },
            floatfloatcrosscurrencyswap::{
                FloatFloatCrossCurrencySwap, FloatFloatCrossCurrencySwapTrade,
            },
            makebasisswap::MakeBasisSwap,
            makecapfloor::MakeCapFloor,
            makeeuropeanswaption::MakeSwaption,
            makefixfloatcrosscurrencyswap::MakeFixFloatCrossCurrencySwap,
            makefloatfloatcrosscurrencyswap::MakeFloatFloatCrossCurrencySwap,
            makeratefutures::MakeRateFutures,
            makeswap::MakeSwap,
            ratefutures::{RateFutures, RateFuturesTrade},
            swap::{Swap, SwapTrade},
        },
    },
    math::{
        interpolation::interpolator::{Interpolate, Interpolator, StaticInterpolate},
        probability::norm_cdf::NormCDF,
        solvers::{bisection::Bisection, newtonraphson::NewtonRaphson},
    },
    models::{
        hullwhite::{
            hullwhitecalibration::HullWhiteTimeDependentVolatility,
            hullwhitecalibrationquality::{
                HullWhiteCalibrationQuality, HullWhiteCalibrationRecord,
            },
            hullwhitemodel::HullWhite,
        },
        lgm::{
            lgmcomponents::{LgmEquityModel, LgmFxModel, LgmRateModel},
            lgmmarketmodel::LgmMarketModel,
        },
        modelconfiguration::{ModelConfiguration, SimulationConfiguration},
        montecarloengine::{PathGenerator, TimeDependentVolatility},
    },
    pricers::{
        cashflows::discountedcashflowpricer::DiscountedCashflowPricer,
        credit::cdspricer::CdsPricer,
        equity::{
            blackeuropeanoptionpricer::BlackEuropeanOptionPricer,
            blackmceuropeanoptionpricer::BlackMCEuropeanOptionPricer,
        },
        fx::{fxforwardpricer::FxForwardPricer, fxoptionpricer::FxOptionPricer},
        rates::{
            closedformblackcapletpricer::ClosedFormBlackCapletPricer,
            closedformblackcappricer::ClosedFormBlackCapPricer,
            closedformhullwhiteswaptionpricer::ClosedFormHullWhiteSwaptionPricer,
            ratefuturespricer::RateFuturesPricer,
        },
    },
    quotes::{
        fixingstore::FixingStore,
        fxstore::{FxRateRecord, FxStore},
        quote::{Level, Quote, QuoteDetails, QuoteInstrument, QuoteLevels},
        quoteselector::QuoteSelector,
        quotestore::{QuoteRecord, QuoteStore, QuoteStoreRecords},
        scenario::{Scenario, ScenarioType},
    },
    rates::{
        bootstrapping::{
            bootstrapdiscountpolicy::BootstrapDiscountPolicy,
            creditcurvebootstrapper::CreditCurveBootstrapper,
            creditcurveconfiguration::CreditCurveConfiguration,
            curveconfiguration::CurveConfiguration, multicurvebootstrapper::MultiCurveBootstrapper,
        },
        compounding::Compounding,
        interestrate::{InterestRate, RateDefinition},
        yieldtermstructure::{
            discounttermstructure::DiscountTermStructure,
            flatforwardtermstructure::FlatForwardTermStructure,
            interestratestermstructure::InterestRatesTermStructure,
        },
    },
    scripting::{
        nodes::event::{CodedEvent, Event, EventStream},
        product::ScriptedProduct,
        request::SimulationDataRequest,
        runtime::{
            ExpectedCashflow, ParallelScriptEvaluation, ScriptEngine, ScriptModelCallback,
            ScriptModelSetup,
        },
        utils::errors::ScriptingError,
        visitors::evaluator::Value as ScriptValue,
    },
    simulations::{
        generatedsimulation::GeneratedMonteCarloSimulation, simulation::MonteCarloSimulation,
        simulationbuilder::SimulationBuilder,
    },
    time::{
        calendar::Calendar,
        calendars::traits::{ImplCalendar, IsCalendar},
        date::{Date, NaiveDateExt},
        daycounter::DayCounter,
        enums::{
            BusinessDayConvention, DateGenerationRule, Frequency, IMMMonth, Month, TimeUnit,
            Weekday,
        },
        imm::IMM,
        period::Period,
        schedule::{MakeSchedule, Schedule},
    },
    utils::errors::{QSError, Result},
    utils::plot::Plot,
    volatility::{
        interpolatedvolatilitycube::InterpolatedVolatilityCube,
        interpolatedvolatilitysurface::InterpolatedVolatilitySurface,
        modelcalibration::{CalibrationSource, ModelCalibrationConfiguration},
        orientedfxvolsurface::OrientedFxVolSurface,
        volatilitycube::VolatilityCube,
        volatilitycubebuilder::VolatilityCubeBuilder,
        volatilitycubeconfiguration::VolatilityCubeConfiguration,
        volatilityindexing::{SmileType, Strike, VolatilityType},
        volatilitysource::{
            bootstrap_black_term_volatility, ConstantVolatility, CubeTermVolatility,
            PiecewiseConstantVolatility, SurfaceTermVolatility, VolatilitySourceConfiguration,
        },
        volatilitysurface::VolatilitySurface,
        volatilitysurfacebuilder::VolatilitySurfaceBuilder,
        volatilitysurfaceconfiguration::VolatilitySurfaceConfiguration,
    },
    xva::{
        aggregator::{
            CreditCurveCvaFactory, CvaAggregator, CvaFactory, DvaAggregator, DvaFactory,
            FundingCurveFvaFactory, FvaAggregator, FvaFactory, PfeAggregator, PfeAggregatorFactory,
        },
        contigentclaim::ContingentClaim,
        csa::{CsaTerms, FundingSpreadCurve},
        engine::{FxModelConfig, LgmModelConfig, XvaEngine, XvaEngineConfig},
        makecontigentclaim::IntoContingentClaims,
        nettingset::NettingSet,
        visitors::{
            claimcompressionpreprocessor::ClaimCompressionPreprocessor,
            claimpreprocessor::ClaimPreprocessor,
            exposureevaluator::{ExposureEvaluator, ExposureResult, NpvCube, XvaValue},
            fixingpreprocessor::FixingPreprocessor,
            marketmodel::MarketModel,
            preprocessorexecutor::PreprocessorExecutor,
        },
    },
};