// Process1D 생성용 //내부사용함.
        private static StochasticProcess1D buildProcess1D(Underlying under) 
        {
            Date today = Settings.evaluationDate();

            CurveSetting curveSetting = new CurveSetting();
            ProcessSetting processSetting = new ProcessSetting();

            ProcessType proType = processSetting.processType(under);

            StochasticProcess1D process;

            if (proType == ProcessType.BlackScholesMertonProcess)
            {
                Handle<Quote> quite = new Handle<Quote>();//under.quoteValue(today);

                Handle<YieldTermStructure> driftTS = curveSetting.driftCurve(under);
                Handle<YieldTermStructure> dividendTS = curveSetting.dividendCurve(under);
                Handle<BlackVolTermStructure> volTS = curveSetting.volCurve(under);

                process = new BlackScholesMertonProcess(quite,driftTS,dividendTS,volTS);
            }
            else if (proType == ProcessType.GemetricBrownianMotion)
            {
                throw new NotImplementedException();
            }
            else if ( proType == ProcessType.HullWhite )
            {
                throw new NotImplementedException();
            }
            else if (proType == ProcessType.Vasicek)
            {
                throw new NotImplementedException();
            }
            else 
            {
                throw new NotImplementedException();
            }

            return process;

        }
Exemplo n.º 2
0
        // Process1D 생성용 //내부사용함.
        private static StochasticProcess1D buildProcess1D(Underlying under)
        {
            Date today = Settings.evaluationDate();

            CurveSetting   curveSetting   = new CurveSetting();
            ProcessSetting processSetting = new ProcessSetting();

            ProcessType proType = processSetting.processType(under);

            StochasticProcess1D process;

            if (proType == ProcessType.BlackScholesMertonProcess)
            {
                Handle <Quote> quite = new Handle <Quote>();//under.quoteValue(today);

                Handle <YieldTermStructure>    driftTS    = curveSetting.driftCurve(under);
                Handle <YieldTermStructure>    dividendTS = curveSetting.dividendCurve(under);
                Handle <BlackVolTermStructure> volTS      = curveSetting.volCurve(under);

                process = new BlackScholesMertonProcess(quite, driftTS, dividendTS, volTS);
            }
            else if (proType == ProcessType.GemetricBrownianMotion)
            {
                throw new NotImplementedException();
            }
            else if (proType == ProcessType.HullWhite)
            {
                throw new NotImplementedException();
            }
            else if (proType == ProcessType.Vasicek)
            {
                throw new NotImplementedException();
            }
            else
            {
                throw new NotImplementedException();
            }

            return(process);
        }