QLNet.ImpliedVolatilityHelper.clone C# (CSharp) Метод

clone() публичный статический Метод

public static clone ( QLNet.GeneralizedBlackScholesProcess process, SimpleQuote volQuote ) : QLNet.GeneralizedBlackScholesProcess
process QLNet.GeneralizedBlackScholesProcess
volQuote SimpleQuote
Результат QLNet.GeneralizedBlackScholesProcess
        public static GeneralizedBlackScholesProcess clone(GeneralizedBlackScholesProcess process, SimpleQuote volQuote)
        {
            Handle<Quote> stateVariable = process.stateVariable();
            Handle<YieldTermStructure> dividendYield = process.dividendYield();
            Handle<YieldTermStructure> riskFreeRate = process.riskFreeRate();

            Handle<BlackVolTermStructure> blackVol = process.blackVolatility();
            var volatility = new Handle<BlackVolTermStructure>(new BlackConstantVol(blackVol.link.referenceDate(),
                                                               blackVol.link.calendar(), new Handle<Quote>(volQuote),
                                                               blackVol.link.dayCounter()));

            return new GeneralizedBlackScholesProcess(stateVariable, dividendYield, riskFreeRate, volatility);
        }

Usage Example

Пример #1
0
        public double impliedVolatility(double targetValue, GeneralizedBlackScholesProcess process, double accuracy, int maxEvaluations, double minVol, double maxVol)
        {
            if (!(!isExpired()))
            {
                throw new ApplicationException("option expired");
            }

            SimpleQuote volQuote = new SimpleQuote();

            GeneralizedBlackScholesProcess newProcess = ImpliedVolatilityHelper.clone(process, volQuote);

            // engines are built-in for the time being
            IPricingEngine engine = null;

            switch (exercise_.type())
            {
            case Exercise.Type.European:
                engine = new AnalyticBarrierEngine(newProcess);
                break;

            case Exercise.Type.American:
            case Exercise.Type.Bermudan:
                throw new ApplicationException("Engine not available for non-European barrier option");

            default:
                throw new ApplicationException("unknown exercise type");
            }

            return(ImpliedVolatilityHelper.calculate(this, engine, volQuote, targetValue, accuracy, maxEvaluations, minVol, maxVol));
        }
All Usage Examples Of QLNet.ImpliedVolatilityHelper::clone
ImpliedVolatilityHelper