public override Excel_underlyingModel_paraViewModel Clone()
        {
            Excel_geometricBMViewModel e_gbmVM = new Excel_geometricBMViewModel();

            e_gbmVM.CurrentValue_ = this.CurrentValue_;
            e_gbmVM.drift_        = this.Drift_;
            e_gbmVM.dividend_     = this.dividend_;
            e_gbmVM.volatility_   = this.volatility_;

            return(e_gbmVM);
        }
        public override Excel_underlyingModel_paraViewModel underModel(Excel_underlyingInfoViewModel excel_uivm,
                                                                       Excel_instrumentViewModel excel_instrumentViewModel,
                                                                       DateTime dateTime)
        {
            Excel_geometricBMViewModel e_gbmvm = new Excel_geometricBMViewModel();

            //excel_upvm.loadMarketData(dateTime);

            string value = Excel_loaderViewModel.loadMarketData(dateTime, excel_uivm.Excel_type_, excel_uivm.KrCode_);

            e_gbmvm.CurrentValue_ = value;

            e_gbmvm.Drift_      = this.GBMDriftSetting_.value(dateTime, excel_instrumentViewModel, excel_uivm);
            e_gbmvm.Dividend_   = this.GBMDividendSetting_.value(dateTime, excel_instrumentViewModel, excel_uivm);
            e_gbmvm.Volatility_ = this.GBMVolatilitySetting_.value(dateTime, excel_instrumentViewModel, excel_uivm);

            return(e_gbmvm);
        }
        public override Excel_underlyingModel_paraViewModel underModel(Excel_underlyingInfoViewModel excel_uivm,
                                                                       Excel_instrumentViewModel excel_instrumentViewModel, 
                                                                       DateTime dateTime)
        {
            Excel_geometricBMViewModel e_gbmvm = new Excel_geometricBMViewModel();

            //excel_upvm.loadMarketData(dateTime);

            string value = Excel_loaderViewModel.loadMarketData(dateTime, excel_uivm.Excel_type_, excel_uivm.KrCode_);

            e_gbmvm.CurrentValue_ = value;

            e_gbmvm.Drift_ = this.GBMDriftSetting_.value(dateTime, excel_instrumentViewModel, excel_uivm);
            e_gbmvm.Dividend_ = this.GBMDividendSetting_.value(dateTime, excel_instrumentViewModel, excel_uivm);
            e_gbmvm.Volatility_ = this.GBMVolatilitySetting_.value(dateTime, excel_instrumentViewModel, excel_uivm);

            return e_gbmvm;

        }
        public Excel_underlyingInfo_paraViewModel getUnderlyingParameterModel(Excel_underlyingInfoViewModel e_uivm)
        {
            Excel_underlyingInfo_paraViewModel e_uipvm = new Excel_underlyingInfo_paraViewModel();

            if (e_uivm.Excel_type_.ToUpper() == "STOCK")
            {
                e_uipvm.KrCode_ = e_uivm.KrCode_;
                //e_uipvm.UnderName_ = e_uivm.Name_;
                //e_uipvm.Model_ = "GBM";

                Excel_geometricBMViewModel e_gbmvm = new Excel_geometricBMViewModel();

                e_gbmvm.Code_ = e_uivm.KrCode_;

                e_uipvm.Excel_underlyingModel_paraViewModel_ = e_gbmvm;

            }
            else if (e_uivm.Excel_type_.ToUpper() == "INTERESTRATE")
            {
                e_uipvm.KrCode_ = e_uivm.KrCode_;
                //e_uipvm.UnderName_ = e_uivm.Name_;
                //e_uipvm.Model_ = "HullWhiteOne";

                Excel_hullWhiteOneFactorViewModel e_hwofvm = new Excel_hullWhiteOneFactorViewModel();

                Excel_interestRateViewModel e_irvm = e_uivm as Excel_interestRateViewModel;

                e_hwofvm.Code_ = e_uivm.KrCode_;

                e_hwofvm.setInterestRateInfo(e_irvm);

                e_uipvm.Excel_underlyingModel_paraViewModel_ = e_hwofvm;
            }
            else
            {
                throw new NotImplementedException();
            }

            e_uipvm.Excel_underlyingModel_paraViewModel_.parameterLoad(
                this.ParameterSettingManager_);

            return e_uipvm;
        }
Ejemplo n.º 5
0
        public Excel_underlyingInfo_paraViewModel getUnderlyingParameterModel(Excel_underlyingInfoViewModel e_uivm)
        {
            Excel_underlyingInfo_paraViewModel e_uipvm = new Excel_underlyingInfo_paraViewModel();

            if (e_uivm.Excel_type_.ToUpper() == "STOCK")
            {
                e_uipvm.KrCode_ = e_uivm.KrCode_;
                //e_uipvm.UnderName_ = e_uivm.Name_;
                //e_uipvm.Model_ = "GBM";

                Excel_geometricBMViewModel e_gbmvm = new Excel_geometricBMViewModel();

                e_gbmvm.Code_ = e_uivm.KrCode_;

                e_uipvm.Excel_underlyingModel_paraViewModel_ = e_gbmvm;
            }
            else if (e_uivm.Excel_type_.ToUpper() == "INTERESTRATE")
            {
                e_uipvm.KrCode_ = e_uivm.KrCode_;
                //e_uipvm.UnderName_ = e_uivm.Name_;
                //e_uipvm.Model_ = "HullWhiteOne";

                Excel_hullWhiteOneFactorViewModel e_hwofvm = new Excel_hullWhiteOneFactorViewModel();

                Excel_interestRateViewModel e_irvm = e_uivm as Excel_interestRateViewModel;

                e_hwofvm.Code_ = e_uivm.KrCode_;

                e_hwofvm.setInterestRateInfo(e_irvm);

                e_uipvm.Excel_underlyingModel_paraViewModel_ = e_hwofvm;
            }
            else
            {
                throw new NotImplementedException();
            }

            e_uipvm.Excel_underlyingModel_paraViewModel_.parameterLoad(
                this.ParameterSettingManager_);

            return(e_uipvm);
        }
        public Excel_underlyingCalcInfo_paraViewModel underInfo_para(Excel_underlyingCalcInfoViewModel underInfo)
        {
            Excel_underlyingCalcInfo_paraViewModel e_uc_pvm = new Excel_underlyingCalcInfo_paraViewModel();

            Excel_underlyingInfo_paraViewModel e_u_pvm = new Excel_underlyingInfo_paraViewModel();
            e_u_pvm.Excel_underlyingModel_paraViewModel_ = new Excel_geometricBMViewModel();

            e_u_pvm.CurrentValue_ = "100";

            Excel_geometricBMViewModel e_gbmvm = new Excel_geometricBMViewModel();

            e_gbmvm.Dividend_ = "0.012";
            e_gbmvm.Drift_ = "0.03";
            e_gbmvm.Volatility_ = "0.03";

            e_u_pvm.Excel_underlyingModel_paraViewModel_ = e_gbmvm;

            e_uc_pvm.Excel_underlyingInfo_paraViewModel_.Add(e_u_pvm);

            return e_uc_pvm;
        
        }
        public Excel_underlyingCalcInfo_paraViewModel underInfo_para(Excel_underlyingCalcInfoViewModel underInfo)
        {
            Excel_underlyingCalcInfo_paraViewModel e_uc_pvm = new Excel_underlyingCalcInfo_paraViewModel();

            Excel_underlyingInfo_paraViewModel e_u_pvm = new Excel_underlyingInfo_paraViewModel();

            e_u_pvm.Excel_underlyingModel_paraViewModel_ = new Excel_geometricBMViewModel();

            e_u_pvm.CurrentValue_ = "100";

            Excel_geometricBMViewModel e_gbmvm = new Excel_geometricBMViewModel();

            e_gbmvm.Dividend_   = "0.012";
            e_gbmvm.Drift_      = "0.03";
            e_gbmvm.Volatility_ = "0.03";

            e_u_pvm.Excel_underlyingModel_paraViewModel_ = e_gbmvm;

            e_uc_pvm.Excel_underlyingInfo_paraViewModel_.Add(e_u_pvm);

            return(e_uc_pvm);
        }
 private void ViewModelChanged(object sender, DependencyPropertyChangedEventArgs e)
 {
     this.viewModel_ = this.DataContext as Excel_geometricBMViewModel;
     //this.gbmPanel_.DataContext = this.viewModel_;
 }
        public string set_gbmModel(string underCode, double currentValue, double drift, double dividend, double constVol)
        {
            try
            {
                Excel_standardSwapParaViewModel e_sspvm = this.InstVM_.Excel_parameterViewModel_ as Excel_standardSwapParaViewModel;

                bool setFlag = false;

                foreach (var item in e_sspvm.Excel_underlyingCalcInfo_paraViewModel_.Excel_underlyingInfo_paraViewModel_)
                //foreach (var item in InstVM_.Excel_interfaceViewModel_.Excel_underlyingCalcInfoViewModel_.Excel_underlyingInfoViewModel_)
                {
                    if (underCode.ToUpper() == item.KrCode_.ToUpper())
                    {
                        Excel_geometricBMViewModel e_gbmvm = new Excel_geometricBMViewModel();

                        e_gbmvm.CurrentValue_ = currentValue.ToString();
                        e_gbmvm.Drift_ = drift.ToString();
                        e_gbmvm.Dividend_ = dividend.ToString();
                        e_gbmvm.Volatility_ = constVol.ToString();

                        item.Excel_underlyingModel_paraViewModel_ = e_gbmvm;

                    }
                }

                if (!setFlag)
                {
                    throw new Exception( underCode + " doesn't exist");
                }

                return "set gbm_model complete : " + underCode;
            }
            catch (Exception e)
            {
                string errStr = "set fail: " + e.Message;

                return errStr;
            }
        }
 private void ViewModelChanged(object sender, DependencyPropertyChangedEventArgs e)
 {
     this.viewModel_ = this.DataContext as Excel_geometricBMViewModel;
     //this.gbmPanel_.DataContext = this.viewModel_;
 }
        public override Excel_underlyingModel_paraViewModel Clone()
        {
            Excel_geometricBMViewModel e_gbmVM = new Excel_geometricBMViewModel();

            e_gbmVM.CurrentValue_ = this.CurrentValue_;
            e_gbmVM.drift_ = this.Drift_;
            e_gbmVM.dividend_ = this.dividend_;
            e_gbmVM.volatility_ = this.volatility_;

            return e_gbmVM;
        }