Esempio n. 1
0
        VanillaOption makeOption(StrikedTypePayoff payoff, Exercise exercise, Quote u, YieldTermStructure q,
                                 YieldTermStructure r, BlackVolTermStructure vol, EngineType engineType, int binomialSteps, int samples)
        {
            GeneralizedBlackScholesProcess stochProcess = makeProcess(u, q, r, vol);

            IPricingEngine engine;

            switch (engineType)
            {
            case EngineType.Analytic:
                engine = new AnalyticEuropeanEngine(stochProcess);
                break;

            case EngineType.JR:
                engine = new BinomialVanillaEngine <JarrowRudd>(stochProcess, binomialSteps);
                break;

            case EngineType.CRR:
                engine = new BinomialVanillaEngine <CoxRossRubinstein>(stochProcess, binomialSteps);
                break;

            case EngineType.EQP:
                engine = new BinomialVanillaEngine <AdditiveEQPBinomialTree>(stochProcess, binomialSteps);
                break;

            case EngineType.TGEO:
                engine = new BinomialVanillaEngine <Trigeorgis>(stochProcess, binomialSteps);
                break;

            case EngineType.TIAN:
                engine = new BinomialVanillaEngine <Tian>(stochProcess, binomialSteps);
                break;

            case EngineType.LR:
                engine = new BinomialVanillaEngine <LeisenReimer>(stochProcess, binomialSteps);
                break;

            case EngineType.JOSHI:
                engine = new BinomialVanillaEngine <Joshi4>(stochProcess, binomialSteps);
                break;

            case EngineType.FiniteDifferences:
                engine = new FDEuropeanEngine(stochProcess, binomialSteps, samples);
                break;

            case EngineType.Integral:
                engine = new IntegralEngine(stochProcess);
                break;

            //case EngineType.PseudoMonteCarlo:
            //  engine = MakeMCEuropeanEngine<PseudoRandom>(stochProcess)
            //      .withSteps(1)
            //      .withSamples(samples)
            //      .withSeed(42);
            //  break;
            //case EngineType.QuasiMonteCarlo:
            //  engine = MakeMCEuropeanEngine<LowDiscrepancy>(stochProcess)
            //      .withSteps(1)
            //      .withSamples(samples);
            //  break;
            default:
                throw new ArgumentException("unknown engine type");
            }

            VanillaOption option = new EuropeanOption(payoff, exercise);

            option.setPricingEngine(engine);
            return(option);
        }
Esempio n. 2
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FDEuropeanEngine obj) {
   return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
 }
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FDEuropeanEngine obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }